***My Config: ***
T440s with the latest Synaptics Touchpad/TrackPoint with Physical Buttons (same as on 2015 series of Lenovo)
Tumbleweed Linux 4.0.0-1-desktop #1 SMP PREEMPT Fri Apr 24 12:39:28 UTC 2015 (27299c0) x86_64 x86_64 x86_64 GNU/Linux
So, with the latest release of kernel 4.0 this problem has been solved more or less. Though few other distributions had patched Synaptics drivers to resolve the issue with physical buttons not working due to re-arrangement of buttons mappings, prior to the availability of kernel 4.0.
Reference: https://bugs.freedesktop.org/show_bug.cgi?id=88609
Now the issue with latest kernel 4.0 is that “libinput” is being made as the default X.Org input driver, replacing the synaptics and evdev … a good idea but currently this is bringing many probs related with the settings of the touchpad and the trackpoint (speed, clicking, tapping, etc). If you have synaptics, evdev and libinput installed, libinput is been given the priority thus saking the other 2 drivers even if they are installed. Till this gets properly resolved, i.e. libinput properly implemented (at least in KDE environment, via kcm-touhpad for touchpad and the standard mouse settings for TrackPoint) I recommend to uninstall the libinput packages:
libinput-udev and libinput10 and xf86-input-libinput
Make sure that the other two are present - evdev and synaptics.
Here are how my related files are setup respectively [/etc/X11/xorg.conf.d/…]
50-synaptics.conf
# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
# Option "OptionName" "value"
#
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
MatchDevicePath "/dev/input/event*"
Option "VertTwoFingerScroll" "on"
Option "HorizEdgeScroll" "1"
Option "HorizTwoFingerScroll" "on"
# enable tap-to-click as default (bnc#722457)
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
EndSection
Section "InputClass"
Identifier "touchpad ignore duplicates"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/mouse*"
Option "Ignore" "on"
EndSection
# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# This option is only interpreted by clickpads.
Section "InputClass"
Identifier "Default clickpad buttons"
MatchDriver "synaptics"
#Option "SoftButtonAreas" "4000 0 4063 0 3000 4000 4063 0"
Option "SoftButtonAreas" "60% 0 82% 0 40% 59% 82% 0"
#Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%"
EndSection
# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
Identifier "Disable clickpad buttons on Apple touchpads"
MatchProduct "Apple|bcm5974"
MatchDriver "synaptics"
Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection
With this and the KCM-touchpad settings all the buttons at the bottom of the touchpad work, including middle click.
10-evdev.conf is the defaul one, and the driver itself is responsible for TrackPoint and the Physical Buttons:
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
And the 11-evdev.conf to make the middle button to function for scrolling:
Section "InputClass"
# Novell Bugs #597214, #780626, #843333, #861813
Identifier "Trackpoint Wheel Emulation"
MatchProduct "TPPS/2 IBM TrackPoint|ThinkPad USB Keyboard with TrackPoint"
MatchIsPointer "on"
Driver "evdev"
Option "EmulateWheel" "on"
Option "EmulateWheelButton" "2"
# Since middle button is in use now these button events need to be emulated (bnc#869097)
Option "Emulate3Buttons" "on"
EndSection
I haven’t tried, but the above should work on other DE’s as wel - Gnome, XFCE, etc. Hope the above will be helpful for many to resolve the issue … till libinput gets mature enough.