Configuring touchpads on linux

So, after recently installing arch linux on my machine I had to reconfigure how my touchpad works. By defualt on most linux distros (i3, mate, awesome) things like multi touch, tap to touch are disabled.

I referred the Arch Wiki for figuring out how to configure various touchpad configurations.

First, I used xinput list command to find out what is the name of my touchpad. After this I installed the package xf86-input-synaptics. This package is available by default on Arch Repo. I must warn you that this package is no longer actively maintained, modern desktop environments like KDE, Gnome rely on libinput , still xf86-input-synaptics is pretty stable and works in most of the cases.

The configuration file

Generally the configuration file is located in /etc/X11/xorg.conf.d/70-synaptics.conf , if it doesn’t exist then create it. You will need super user priveleges for editing/creating the file.

Syntax is Option "<option name>" "<option value>" 1” is for Mouse button 1, that’s left click “2” is for Mouse button 2, that’s middle click “3” is for Mouse button 3, that’s right click

My configuration

Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "RBCornerButton" "3"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "2"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "0"
        Option "FingerLow" "30"
        Option "FingerHigh" "50"
        Option "MaxTapTime" "125"
EndSection

Lets go over some interesting entries-

TapButton1

(integer) configures which mouse-button is reported on a non-corner, one finger tap.

TapButton2

(integer) configures which mouse-button is reported on a non-corner, two finger tap

TapButton3

(integer) configures which mouse-button is reported on a non-corner, three finger tap

RBCornerButton

(integer) configures which mouse-button is reported on a right bottom corner, one finger tap (use Option “RBCornerButton” “3” to achieve Ubuntu style tap behaviour for right mouse button in lower right corner)

VertEdgeScroll

(boolean) enables vertical scrolling while dragging across the right edge of the touch pad.

HorizEdgeScroll

(boolean) enables horizontal scrolling while dragging across the bottom edge of the touch pad.

VertTwoFingerScroll

(boolean) enables vertical scrolling using two fingers.

HorizTwoFingerScroll

(boolean) enables horizontal scrolling using two fingers.

After editing the configuration file the next you will have to restart for your settings to take effect. You can also check if a certain setting works using synclient which will get installed with the xf86-input-synaptics package. More details here

Comment below if you face any issues.

Comments