Pierwszą rzeczą, którą musimy osiągnąć, jest wyłączenie myszy, ale tylko w X. Do tego moglibyśmy użyć xinput
.
Musimy odkryć urządzenia wejściowe podłączone do komputera (do serwera X):
pbm@tauri ~ $ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ A4Tech USB Mouse id=10 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
[...]
Urządzenie, które musimy wykorzystać to A4Tech USB Mouse
z id=10
. Następnie musimy sprawdzić właściwości tego urządzenia:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
Aby wyłączyć urządzenie, musimy zmienić właściwość Device Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Żeby to włączyć:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
Następnie wykonaj to automatycznie ...;) W tym przykładzie wyłączymy mysz za pomocą skrótu klawiaturowego i włączymy ją, naciskając lewy + prawy przycisk myszy.
W tym celu moglibyśmy użyć actkbd - demona skrótów klawiszowych (ale nie tylko), który działa poza serwerem X.
Po pierwsze musimy utworzyć pusty plik konfiguracyjny dla actkbd: touch /etc/actkbd.conf
. Następną rzeczą jest wykrycie urządzeń podłączonych do komputera:
pbm@tauri ~ $ cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10
[...]
W tej części najciekawsze w użyciu są nazwy i funkcje obsługi klawiatury i myszy.
Najpierw zajmujemy się wyłączaniem myszy za pomocą skrótu klawiaturowego, dlatego musimy odkryć identyfikatory kluczy:
pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `
Kiedy wiemy, jakie są identyfikatory kluczy, musimy umieścić je w pliku config ( /etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Aby to przetestować, musimy uruchomić actkbd
w trybie demona:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
W ten sam sposób musimy obsługiwać zdarzenie „włącz”:
- Sprawdź procedury obsługi myszy
- Sprawdź kody klawiszy lewego i prawego przycisku myszy za pomocą
actkbd
- Połóż to
actkbd.conf
- Uruchom demona actkbd, aby monitorować urządzenie wejściowe myszy
Uruchomione demony mogą być realizowane jako skrypt inicjujący lub skrypt autorun w środowisku.
Aby automatycznie wyłączyć mysz, możemy monitorować urządzenie wejściowe ( cat /dev/input/event5
) i wyłączać je, gdy nie ma wejścia ...
Mam nadzieję, że moje krótkie wprowadzenie pomoże ci ...;)
actkbd
! Po opublikowaniu pytania zastanawiałem się, jak go użyćxinput
, ale nie dowiedziałem się, jak ponownie włączyć mysz, naciskając przyciski myszy.