Synaptics
synaptics is the open source input driver for Synaptics and ALPS touchpads.
Installation[edit | edit source]
Kernel[edit | edit source]
You need to activate the following kernel options:
Device Drivers ---> Input device support ---> <*> Event interface [*] Mice ---> <*> PS/2 mouse
You may also need additional drivers under the Mice menu to support your touchpad. i.e. "Synaptics PS/2 mouse protocol extension". The touchpad may also be USB, not PS/2. If you are unsure, select multiple drivers and check what the kernel uses later with "lspci -k".
Driver[edit | edit source]
/etc/portage/make.conf
Set INPUT_DEVICESINPUT_DEVICES="synaptics libinput"
After setting the INPUT_DEVICES variable remember to update the system using the following command so the changes take effect:
root #
emerge --ask --changed-use --deep @world
Configuration[edit | edit source]
The driver has a lot options to tune it to your needs. See the synaptics man page for more information.
Fixed configuration[edit | edit source]
Referring to xorg.conf there should have a /etc/X11/xorg.conf.d directory on the system. If there is none create one:
root #
mkdir /etc/X11/xorg.conf.d
Configure file /etc/X11/xorg.conf.d/50-synaptics.conf as in the example below:
/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" Option "VertEdgeScroll" "on" Option "CircularScrolling" "on" Option "VertScrollDelta" "-111" Option "HorizScrollDelta" "-111" Option "TapButton1" "1" EndSection
Configuration at runtime[edit | edit source]
You need to enable above option to be able to configure the driver also at runtime. Changes at runtime will be lost with the next start of the X-server. To keep them, add them to the above config file.
You can configure the driver with the program synclient
. Some examples:
List all parameters:
user $
synclient -l
Cut the right side of the touch area to expand the vertical scroll area:
user $
synclient RightEdge=5000
Finding the right edge parameter:
user $
synclient -m 50
Disable the mouse click function:
user $
synclient MaxTapTime=0
Finally, You can dump Your handpicked configuration to the 99-synaptics file pasting output of the following command inside the InputClass
section:
user $
synclient -l | sed -e '1d' -e 's/^ \+/Option\t"/g' -e 's/ \+= /"\t"/g' -e 's/$/"/g'
Alternatively there is the KDE systemsettings module kde-misc/synaptiks:
root #
emerge --ask kde-misc/synaptiks
Troubleshooting[edit | edit source]
My Touchpad is not recognized[edit | edit source]
If your touchpad does not show in either lsusb
nor lspci
, that might be due to your PS/2 controller and how it is handled by the kernel[1]. One indication is if
user $
dmesg | grep i8042
returns something along the lines of
i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
That AUX port is where the touchpad is connected[2]. Try adding the following to your kernel command line, e.g. in /etc/default/grub:
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... i8042.noloop i8042.nomux i8042.nopnp i8042.reset ..."
Now, you should update your grub.cfg:
root #
grub-mkconfig -o /boot/grub/grub.cfg
If, after rebooting with these parameters, you get a generic Logitech PS/2 mouse
input device, you may need to add the appropriate PS/2 extension driver to your Kernel config:
Device Drivers ---> Input device support ---> <*> Event interface [*] Mice ---> <*> PS/2 mouse [ /*] Elantech PS/2 protocol extension [ /*] Sentelic Finger Sensing Pad PS/2 protocol extension [ /*] eGalax TouchKit PS/2 protocol extension
After rebooting, your touchpad should be recognized correctly.
See also[edit | edit source]
- libinput - A drop-in replacement for the "slowly deprecating evdev and synaptics input drivers".