Wczytywanie konfiguracji TouchPada – xinput

20/04/2010 – 18:44

Kiedy wspominałem, że gsynaptics zastąpiono przez gpointing-device-settings, nie zwróciłem uwagi na jeden szczególny fakt… gpointing-device-settings może i ma większe możliwości konfiguracji, ale co z tego, skoro nigdzie nie ma możliwości wczytania tych ustawień podcza uruchamiania środowiska graficznego/menadżera okien? Aby dokonane wcześniej korekty dotyczące touchpada zostały ponownie wczytane, należało uruchomić program i – co więcej – pobawić się każdym suwakiem/przyciskiem. Gdyby wystarczyło samo uruchomienie – pół biedy. Należy również ubolewać nad faktem, że nie można uruchomić programu z żadnym parametrem/argumentem, np. do wczytania ustawień.

W repozytorium nie znalazłem żadnego inne programu graficznego do konfiguracja touchpada. Pozostała więc ostatnia opcja – wszystko zrobić z poziomu konsoli. Nie mogłem się jedna zdecydować pomiędzy konfiguracją touchpada w xorg.conf, a między plikami udev’a. Jak na ironię – przypadkowo w tym czasie natknąłem się na prosty programik xinput, z którym postanowiłem się zapoznać. Dość szybko przypadł mi do gustu, dlatego też z jego poziomu wczytuję teraz swoją konfigurację touchpada.

Krótki poradnik jak korzystać z xinput.
Aby dokonać konfiguracji jakiegoś urządzenia, tudzież touchpada, wpierw trzeba sprawdź jakie id jest jemu przypisane.

Należy wpisać w konsoli xinput list. W moim przypadku wynik jest następujący:

"Virtual core pointer" id=0 [XPointer]
"Virtual core keyboard" id=1 [XKeyboard]
"Generic Keyboard" id=2 [XExtensionKeyboard]
"default pointer" id=3 [XExtensionPointer]
"SynPS/2 Synaptics TouchPad" id=4 [XExtensionPointer]

Jak widać, u mnie touchpad ma id równe 4.
Następnie za pomocą polecenia xinput list-props 4 możemy sprawdzić aktualne opcje naszego urządzenia wskazującego. Mój wynik (skrócony):

Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (115): 1
Synaptics Edges (244): 1752, 5192, 1620, 4236
Synaptics Finger (245): 24, 29, 255
Synaptics Tap Time (246): 180
Synaptics Tap Move (247): 221
Synaptics Tap Durations (248): 180, 180, 100
Synaptics Tap FastTap (249): 1
Synaptics Middle Button Timeout (250): 75
Synaptics Two-Finger Pressure (251): 280
Synaptics Two-Finger Width (252): 7
Synaptics Scrolling Distance (253): 100, 100
Synaptics Edge Scrolling (254): 1, 0, 0
Synaptics Two-Finger Scrolling (255): 0, 0
Synaptics Move Speed (256): 0.400000, 0.084444, 0.000000, 0.000000
Synaptics Edge Motion Pressure (257): 29, 159
Synaptics Edge Motion Speed (258): 1, 401
Synaptics Edge Motion Always (259): 0
[...]

Jak teraz ustawić daną wartość np. podczas startu systemu? Wystarczy dodać do autostartu środowiska graficznego następujące polecenie:

xinput --set-prop --type=TYPE --format=FORMAT DEVICE NAZWA_ZMIENNEJ WARTOSC1 WARTOSC2

Gdzie:

  • TYPE – podajemy typ wartości jaką zmieniamy. Do dyspozycji mamy: atom, float, lub int. Najczęściej jest to int.
  • FORMAT – długość wartości (??). Mamy trzy możliwości: 8, 16 lub 32.
  • DEVICE – id urządzenia bądź pełna jego nazwa.
  • NAZWA_ZMIENNEJ – zmienna, której wartość chcemy zmienić.
  • WARTOSC1, WARTOSC2, itd. – wartości jakie mają zostać nadane zmiennym, np. 0.400000 0.084444

Podam teraz przykład odpowiednio uzupełnionego polecenia:

xinput --set-prop --type=float --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Move Speed" 0.400000 0.084444 0.000000 0.000000

I to wszystko. Napisałem sobie prosty skrypt, który jest uruchamiany przy starcie KDE4. Dokonuje on zmiany wszystkich wartości konfiguracji touchpada, a w przypadku niepowodzenia, wyświetla odpowiednie okienko z informacją. Może Ci się na coś przyda. Pobierz skrypt.

Napisz komentarz