Xinput i gładzik

Jeżeli nie pracuję akurat na Gnomie, KDE, Xfce, czy innym dużym środowisku graficznym, muszę sobie samemu ustawić różne rzeczy, między innymi touchpad. Zależy mi na dwóch rzeczach: klikaniu przez dotyk oraz „naturalnym przewijaniu”, czyli imitowaniu zachowania dotykowego ekranu.

Od kilku lat w Linuksie mamy libinput, czyli następcę Synaptics. Konfiguruje się go całkiem prosto. Najpierw sprawdzam numery dostępnych urządzeń:

$ xinput --list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                	id=12	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ HD WebCam                               	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=11	[slave  keyboard (3)]
    ↳ Acer WMI hotkeys                        	id=13	[slave  keyboard (3)]

i na tej liście widać, że gładzik dostał id 12. Jest to ważne, gdyż do konfiguracji urządzenia podaje się jego numer. Następnie można sprawdzić, co dokładnie można skonfigurować:

$ xinput list-props 12
Device 'ETPS/2 Elantech Touchpad':
	Device Enabled (147):	1
	Coordinate Transformation Matrix (149):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (284):	1
	libinput Tapping Enabled Default (285):	0
	libinput Tapping Drag Enabled (286):	1
	libinput Tapping Drag Enabled Default (287):	1
	libinput Tapping Drag Lock Enabled (288):	0
	libinput Tapping Drag Lock Enabled Default (289):	0
	libinput Tapping Button Mapping Enabled (290):	1, 0
	libinput Tapping Button Mapping Default (291):	1, 0
	libinput Accel Speed (292):	0.000000
	libinput Accel Speed Default (293):	0.000000
	libinput Natural Scrolling Enabled (294):	1
	libinput Natural Scrolling Enabled Default (295):	0
	libinput Send Events Modes Available (269):	1, 1
	libinput Send Events Mode Enabled (270):	0, 0
	libinput Send Events Mode Enabled Default (271):	0, 0
	libinput Left Handed Enabled (296):	0
	libinput Left Handed Enabled Default (297):	0
	libinput Scroll Methods Available (298):	1, 1, 0
	libinput Scroll Method Enabled (299):	1, 0, 0
	libinput Scroll Method Enabled Default (300):	1, 0, 0
	libinput Disable While Typing Enabled (301):	1
	libinput Disable While Typing Enabled Default (302):	1
	Device Node (272):	"/dev/input/event5"
	Device Product ID (273):	2, 14
	libinput Drag Lock Buttons (303):	
	libinput Horizontal Scroll Enabled (304):	1

Jak widać, całkiem sporo. Jak napisałem, interesują mnie dwie rzeczy: dotyk oraz naturalne przewijanie. Na powyższej liście widać, że są to opcje numer 284 oraz 294. Do roboty:

$ xinput set-prop 12 284 1
$ xinput set-prop 12 294 1

Gotowe. Skoro to takie proste, to gdzie jest haczyk? Ano jest taki, że te numery opcji od czasu do czasu się zmieniają. Po każdej aktualizacji libnput czasem trzeba je przejrzeć i ustawić ponownie.
W każdym razie jest to kolejny krok do odstawienia dużych kobył i wygodnej pracy w jakikolwiek środowisku graficznym.