สิ่งแรกที่เราต้องทำให้สำเร็จคือการปิดเม้าส์ แต่ใช้กับ X เท่านั้นสำหรับสิ่งนี้เราสามารถxinput
ใช้ได้
เราจำเป็นต้องค้นหาอุปกรณ์อินพุตที่เชื่อมต่อกับคอมพิวเตอร์ (ไปยังเซิร์ฟเวอร์ 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)]
[...]
อุปกรณ์ที่เราจำเป็นต้องใช้งานด้วยA4Tech USB Mouse
id=10
ต่อไปเราต้องตรวจสอบคุณสมบัติของอุปกรณ์นั้น:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
ในการปิดอุปกรณ์เราจำเป็นต้องเปลี่ยนคุณสมบัติDevice Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
วิธีเปิดใช้งาน:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
สิ่งต่อไปคือการทำมันโดยอัตโนมัติ ... ;) ในตัวอย่างนี้เราจะปิดใช้งานเมาส์โดยใช้แป้นพิมพ์ลัดและเปิดใช้งานโดยกดปุ่มซ้าย + ขวาของเมาส์
สำหรับสิ่งนี้เราสามารถใช้actkbd - keyboard (แต่ไม่เพียง แต่) daemon ทางลัดที่ทำงานนอกเซิร์ฟเวอร์ X
ก่อนอื่นเราต้องสร้างไฟล์กำหนดค่าที่ว่างเปล่าสำหรับ actkbd: touch /etc/actkbd.conf
actkbd: สิ่งต่อไปคือการค้นหาอุปกรณ์ที่เชื่อมต่อกับคอมพิวเตอร์:
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
[...]
ในส่วนนี้ที่น่าสนใจที่สุดสำหรับการใช้งานคือชื่อและตัวจัดการของอุปกรณ์แป้นพิมพ์และเมาส์
ก่อนอื่นเราจัดการปิดเม้าส์ด้วยแป้นพิมพ์ลัดดังนั้นเราต้องค้นหารหัสคีย์:
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 + `
เมื่อเรารู้ว่ารหัส id คืออะไรเราจำเป็นต้องวางมันลงในไฟล์ config ( /etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
ในการทดสอบเราต้องรันactkbd
ในโหมด daemon:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
ในทำนองเดียวกันเราต้องจัดการกับเหตุการณ์ "เปิด":
- ตรวจสอบตัวจัดการอุปกรณ์เมาส์
- ตรวจสอบรหัสคีย์ของปุ่มซ้าย + ขวาของเมาส์โดยใช้
actkbd
- นำไปใช้
actkbd.conf
- รัน actkbd daemon เพื่อมอนิเตอร์อุปกรณ์อินพุตเมาส์
การเรียกใช้ daemons สามารถรับรู้ในฐานะสคริปต์เริ่มต้นหรือสคริปต์การทำงานอัตโนมัติในสภาพแวดล้อม
ในการปิดเมาส์อัตโนมัติเราสามารถตรวจสอบอุปกรณ์อินพุต ( cat /dev/input/event5
) และปิดเมื่อไม่มีอินพุต ...
ฉันหวังว่าคำนำสั้น ๆ ของฉันจะช่วยคุณ ... ;)
actkbd
! หลังจากโพสต์คำถามของฉันฉันพบว่าจะใช้xinput
แล้ว แต่ฉันไม่พบว่าฉันจะเปิดใช้งานเมาส์ได้อย่างไรโดยกดปุ่มเมาส์