La première chose que nous devons accomplir est d'éteindre la souris, mais uniquement dans X. Pour cela, nous pourrions utiliser xinput
.
Nous devons découvrir les périphériques d'entrée connectés à l'ordinateur (au serveur 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)]
[...]
L'appareil que nous devons utiliser est A4Tech USB Mouse
avec id=10
. Ensuite, nous devons vérifier les propriétés de cet appareil:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
Pour éteindre l'appareil, nous devons changer la propriété Device Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Pour l'allumer:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
La prochaine chose est de le faire automatiquement ...;) Dans cet exemple, nous allons désactiver la souris par raccourci clavier et l'activer en appuyant sur le bouton gauche + droit de la souris.
Pour cela, nous pourrions utiliser actkbd - démon de raccourci clavier (mais pas seulement) qui fonctionne en dehors du serveur X.
D' abord , nous devons créer un fichier de configuration vide pour actkbd: touch /etc/actkbd.conf
. La prochaine étape consiste à découvrir les appareils connectés à l'ordinateur:
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
[...]
Dans cette partie, les noms et gestionnaires de périphériques de clavier et de souris sont les plus intéressants à utiliser.
Tout d'abord, nous gérons la désactivation de la souris par un raccourci clavier, nous devons donc découvrir les identifiants clés:
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 + `
Lorsque nous savons quels sont les identifiants des clés, nous devons les mettre dans le fichier de configuration ( /etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Pour le tester, nous devons exécuter actkbd
en mode démon:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
De la même manière, nous devons gérer l'événement "allumer":
- Vérifier les gestionnaires de souris
- Vérifiez les codes clés du bouton gauche + droit de la souris en utilisant
actkbd
- Mettez-le à
actkbd.conf
- Exécutez le démon actkbd pour surveiller le périphérique d'entrée de la souris
L'exécution de démons peut être réalisée en tant que script init ou script autorun dans l'environnement.
Pour éteindre automatiquement la souris, nous pourrions surveiller le périphérique d'entrée ( cat /dev/input/event5
) et l'éteindre lorsqu'il n'y a pas d'entrée ...
J'espère que ma courte introduction vous aidera ...;)
actkbd
! Après avoir posté ma question, j'avais déjà trouvé à utiliserxinput
, mais je n'ai pas trouvé comment je réactiverais la souris en appuyant sur les boutons de la souris.