Crunchbang sa ku mne dostal pred nejakým časom úplnou náhodou. Vyskúšal som ho a vzápätí som si ho zamiloval. A vymenil. Smutný príbeh. Pre Ubuntu. Aj keď je Crunchbang celkovo veľmi dobré distro, nie je dokonalé. Po inštalácii som objavil pár nedostatkov a jedným z nich je nefungujúca klávesová skratka pre zapnutie a vypnutie touchpadu. Problém som vyriešil a rozhodol sa podeliť so skúsenosťami aj iným. Snáď to niekomu pomôže, postup sa dá aplikovať aj na iné modely modely notebookov.
Poďme teda na to!
Najprv si musíme zistiť ID a názov touchpadu. Do terminálu zadáme príkaz:
xinput list
Výpis bude vyzerať nejak takto:
Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ A4TECH USB Device id=10 [slave pointer (2)] ⎜ ↳ A4TECH USB Device id=11 [slave pointer (2)] ⎜ ↳ ETPS/2 Elantech Touchpad id=14 [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)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Asus Laptop extra buttons id=12 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)] ↳ ACPI Virtual Keyboard Device id=15 [slave keyboard (3)] ↳ USB 2.0 Camera id=9 [slave keyboard (3)]
Nás zaujíma riadok, ktorý patrí touchpadu. V našom prípade vidíme, že touchpad sa nazýva ETPS/2 Elantech Touchpad a jeho ID je 14.
#!/bin/bash
if [ $(xinput list-props 14 | grep 'Device Enabled'|awk '{print $4}') = 1 ]; then xinput disable 'ETPS/2 Elantech Touchpad' notify-send "Touchpad Disabled" else xinput enable 'ETPS/2 Elantech Touchpad' notify-send "Touchpad Enabled" fi
Ak máte iný model, jednoducho prepíšete ID a názov touchpadu. Skript si uložíme niekam na disk a vyskúšame. Ak je všetko ok, tak skript skopírujeme do /usr/local/bin a nastavíme chmod
/usr/local/bin# chmod +x mojtp.sh
Teraz potrebujeme zistiť keycode Fn kombinácie (v mojom prípade FN+F9). Na to nám dobre poslúži príkaz xev. Zadáme príkaz do terminálu a stlačíme požadovanú klávesu.
Príklad výpisu:
KeyRelease event, serial 35, synthetic NO, window 0x3200001,
root 0xa8, subw 0x0, time 134912, (196,383), root:(883,524), state 0x10, keycode 191 (keysym 0x1008ff81, XF86Tools), same_screen YES, XKeysymToKeycode returns keycode: 179 XLookupString gives 0 bytes: XFilterEvent returns: False
Nás zaujíma keycode, v našom prípade teda 191. Príkazom
printf "0x%x\n" 191
dostaneme hexa kód 0×bf, ktorý už Openbox akceptuje.
V nastaveniach Crunchbangu (Settings – Openbox – Edit rc.xml) si klávesu nabindujeme na náš skript. Pre Asus K52JE bude kód vyzerať takto:
<keybind key="0xbf"> <action name="Execute"> <startupnotify> <enabled>true</enabled> <name>Touchpad</name> </startupnotify> <command>mojtp.sh</command> </action> </keybind>
Súbor uložíme. V nastaveniach Crunchbangu (Settings – Openbox – Restart) reštartneme Openbox a máme hotovo. Klávesová skratka by mala fungovať.