Điều đầu tiên mà chúng ta cần thực hiện là tắt chuột, nhưng chỉ trong X. Đối với điều này, chúng ta có thể sử dụng xinput
.
Chúng ta cần khám phá các thiết bị đầu vào được kết nối với máy tính (với máy chủ 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)]
[...]
Thiết bị mà chúng ta cần sử dụng là A4Tech USB Mouse
với id=10
. Tiếp theo chúng ta cần kiểm tra thuộc tính của thiết bị đó:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
Để tắt thiết bị, chúng ta cần thay đổi thuộc tính Device Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Bật lên:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
Điều tiếp theo là tự động làm điều đó ...;) Trong ví dụ này, chúng tôi sẽ vô hiệu hóa chuột bằng phím tắt và bật nó bằng cách nhấn nút chuột trái + chuột phải.
Để làm điều này, chúng ta có thể sử dụng Actkbd - daemon bàn phím (nhưng không chỉ) hoạt động bên ngoài máy chủ X.
Đầu tiên chúng ta cần tạo tập tin cấu hình trống cho actkbd : touch /etc/actkbd.conf
. Điều tiếp theo là khám phá các thiết bị kết nối với máy tính:
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
[...]
Trong phần này thú vị nhất để sử dụng là tên và trình xử lý của các thiết bị bàn phím và chuột.
Đầu tiên chúng tôi xử lý tắt chuột bằng phím tắt, vì vậy chúng tôi cần khám phá các id chính:
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 + `
Khi chúng ta biết id khóa là gì, chúng ta cần đặt chúng vào tệp cấu hình ( /etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Để kiểm tra nó, chúng ta cần chạy actkbd
trong chế độ daemon:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
Theo cùng một cách chúng ta cần xử lý sự kiện "bật":
- Kiểm tra xử lý của thiết bị chuột
- Kiểm tra mã khóa của nút chuột trái + chuột phải bằng cách sử dụng
actkbd
- Đặt nó vào
actkbd.conf
- Chạy trình nền Actkbd để theo dõi thiết bị nhập chuột
Chạy trình tiện ích có thể được nhận ra dưới dạng init script hoặc autorun script trong môi trường.
Để tự động tắt chuột, chúng tôi có thể theo dõi thiết bị đầu vào ( cat /dev/input/event5
) và tắt nó khi không có đầu vào ...
Tôi hy vọng rằng phần giới thiệu ngắn của tôi sẽ giúp bạn ...;)
actkbd
! Sau khi đăng câu hỏi của tôi, tôi đã tìm ra cách sử dụngxinput
, nhưng tôi đã không tìm ra cách tôi sẽ kích hoạt lại chuột bằng cách nhấn các nút chuột.