La prima cosa che dobbiamo compiere è disattivare il mouse, ma solo in X. Per questo potremmo usare xinput
.
Dobbiamo scoprire i dispositivi di input collegati al computer (al server 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)]
[...]
Il dispositivo che dobbiamo usare è A4Tech USB Mouse
con id=10
. Quindi dobbiamo controllare le proprietà di quel dispositivo:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
Per spegnere il dispositivo è necessario modificare la proprietà Device Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Accenderlo:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
La prossima cosa è farlo automaticamente ...;) In questo esempio disabiliteremo il mouse con la scorciatoia da tastiera e la abiliteremo premendo il tasto sinistro + destro del mouse.
Per questo potremmo usare actkbd - demone scorciatoia da tastiera (ma non solo) che funziona al di fuori di X server.
In primo luogo abbiamo bisogno di creare file di configurazione vuoto per actkbd: touch /etc/actkbd.conf
. La prossima cosa è scoprire i dispositivi collegati al computer:
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
[...]
In questa parte più interessanti per l'uso sono nomi e gestori di dispositivi tastiera e mouse.
Per prima cosa gestiamo lo spegnimento del mouse tramite la scorciatoia da tastiera, quindi dobbiamo scoprire gli ID chiave:
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 + `
Quando sappiamo quali sono gli ID chiavi, dobbiamo metterli nel file di configurazione ( /etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Per provarlo dobbiamo eseguire actkbd
in modalità demone:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
Allo stesso modo dobbiamo gestire l'evento "attiva":
- Controllare i gestori del dispositivo mouse
- Controllare i codici chiave del tasto sinistro + destro del mouse utilizzando
actkbd
- Mettilo a
actkbd.conf
- Esegui il demone actkbd per monitorare il dispositivo di input del mouse
I demoni in esecuzione potrebbero essere realizzati come script di init o script di esecuzione automatica in ambiente.
Per disattivare automaticamente il mouse, potremmo monitorare il dispositivo di input ( cat /dev/input/event5
) e spegnerlo quando non c'è input ...
Spero che la mia breve introduzione ti aiuti ...;)
actkbd
! Dopo aver pubblicato la mia domanda, avevo già capito di usarexinput
, ma non ho scoperto come riattivare il mouse premendo i pulsanti del mouse.