Hal pertama yang perlu kita selesaikan adalah mematikan mouse, tetapi hanya dalam X. Untuk ini kita bisa menggunakan xinput
.
Kita perlu menemukan perangkat input yang terhubung ke komputer (ke 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)]
[...]
Perangkat yang perlu kita gunakan adalah A4Tech USB Mouse
dengan id=10
. Selanjutnya kita perlu memeriksa properti perangkat itu:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
Untuk mematikan perangkat kita perlu mengubah properti Device Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Untuk mengaktifkannya:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
Hal berikutnya adalah melakukannya secara otomatis ...;) Dalam contoh ini kita akan menonaktifkan mouse dengan cara pintas keyboard dan mengaktifkannya dengan menekan tombol kiri + kanan mouse.
Untuk ini, kita dapat menggunakan daemon pintasan actkbd - keyboard (tetapi tidak hanya) yang berfungsi di luar X server.
Pertama kita perlu membuat file konfigurasi kosong untuk actkbd: touch /etc/actkbd.conf
. Hal berikutnya adalah menemukan perangkat yang terhubung ke komputer:
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
[...]
Pada bagian ini yang paling menarik untuk digunakan adalah nama dan pengendali perangkat keyboard dan mouse.
Pertama-tama kita menangani mematikan mouse dengan pintasan keyboard, jadi kita perlu menemukan id kunci:
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 + `
Ketika kita tahu apa itu id kunci, kita perlu meletakkannya di file konfigurasi ( /etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Untuk mengujinya kita perlu menjalankan actkbd
dalam mode daemon:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
Dengan cara yang sama kita perlu menangani acara "nyalakan":
- Periksa penangan perangkat mouse
- Periksa kode kunci tombol kiri + kanan menggunakan mouse
actkbd
- Masukkan ke
actkbd.conf
- Jalankan actkbd daemon untuk memantau perangkat input mouse
Menjalankan daemon dapat diwujudkan sebagai skrip init atau skrip autorun di lingkungan.
Untuk mematikan mouse secara otomatis, kita dapat memonitor perangkat input ( cat /dev/input/event5
) dan mematikannya ketika tidak ada input ...
Saya harap intro pendek saya akan membantu Anda ...;)
actkbd
! Setelah memposting pertanyaan saya, saya sudah menemukan cara untuk menggunakanxinput
, tetapi saya tidak tahu bagaimana saya akan mengaktifkan kembali mouse dengan menekan tombol mouse.