ปิดใช้งานเมาส์ (ไม่ใช่ทัชแพด!) ใน Xorg ขณะที่ไม่ได้ใช้งาน


17

ฉันเป็นผู้ใช้แป้นพิมพ์ตัวยง แต่ฉันก็ยังต้องการใช้เมาส์เป็นระยะ ๆ เพื่อลดการเดินทางด้วยมือฉันมีเม้าส์ที่อยู่ด้านล่างคีย์บอร์ดของฉัน (ในหมายเหตุด้านใช้เมาส์ด้วยวิธีนี้รู้สึกเป็นธรรมชาติมากขึ้นในมือของฉัน)

ฉันกำลังใช้unclutterเพื่อซ่อนตัวชี้ในขณะที่ฉันไม่ได้ใช้เมาส์ โชคไม่ดีที่ฉันกำลังสะกิดมันอยู่ตลอดเวลาขณะพิมพ์ซึ่งทำให้ตัวชี้ปรากฏขึ้นอีกครั้ง บางครั้งสิ่งนี้จะย้ายตัวชี้ไปที่หน้าต่างอื่นซึ่งหันโฟกัสออกไปจากหน้าต่างปัจจุบันของฉัน (ฉันใช้โฟกัสที่เลอะเทอะและการเปลี่ยนแปลงนี้ไม่ใช่ตัวเลือก)

ตอนนี้ฉันกำลังค้นหาความเป็นไปได้ที่จะไม่เพียงซ่อนตัวชี้หลังจากช่วงเวลาที่ไม่ได้ใช้งาน แต่ปิดการใช้งานเมาส์โดยสิ้นเชิง การคลิกปุ่มเมาส์หรือใช้ล้อเมาส์ควรเปิดใช้งานเมาส์อีกครั้ง

คำตอบ:


16

สิ่งแรกที่เราต้องทำให้สำเร็จคือการปิดเม้าส์ แต่ใช้กับ 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.confactkbd: สิ่งต่อไปคือการค้นหาอุปกรณ์ที่เชื่อมต่อกับคอมพิวเตอร์:

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

ในทำนองเดียวกันเราต้องจัดการกับเหตุการณ์ "เปิด":

  1. ตรวจสอบตัวจัดการอุปกรณ์เมาส์
  2. ตรวจสอบรหัสคีย์ของปุ่มซ้าย + ขวาของเมาส์โดยใช้ actkbd
  3. นำไปใช้ actkbd.conf
  4. รัน actkbd daemon เพื่อมอนิเตอร์อุปกรณ์อินพุตเมาส์

การเรียกใช้ daemons สามารถรับรู้ในฐานะสคริปต์เริ่มต้นหรือสคริปต์การทำงานอัตโนมัติในสภาพแวดล้อม

ในการปิดเมาส์อัตโนมัติเราสามารถตรวจสอบอุปกรณ์อินพุต ( cat /dev/input/event5) และปิดเมื่อไม่มีอินพุต ...

ฉันหวังว่าคำนำสั้น ๆ ของฉันจะช่วยคุณ ... ;)


ขอบคุณสำหรับคำใบ้ด้วยactkbd! หลังจากโพสต์คำถามของฉันฉันพบว่าจะใช้xinputแล้ว แต่ฉันไม่พบว่าฉันจะเปิดใช้งานเมาส์ได้อย่างไรโดยกดปุ่มเมาส์
igor

นี่เป็นคำตอบที่เขียนได้ดีมาก
pjc50

ขอบคุณสำหรับข้อมูลนั้นโดยเฉพาะอย่างยิ่งสำหรับคำแนะนำด้วย atkkbd

แทนที่จะใช้ตัวเลือก - set-prop พร้อมกับคุณสมบัติ“ เปิดใช้งานอุปกรณ์ / ปิดการใช้งาน” เราสามารถใช้ - เปิดใช้งานและ - ปิดการใช้งานตัวเลือกได้เช่นกัน xinput - เปิดใช้งาน [อุปกรณ์] และ xinput - ปิดใช้งาน [อุปกรณ์] .
thebodzio

1

คุณลองใช้แอปเพล็ต "Pointer Capture" Gnomeหรือไม่

ตัวชี้เมาส์สามารถล็อคเข้ากับพื้นที่ของหน้าจอเพื่อให้อุปกรณ์ชี้ตำแหน่งนั้นว่างสำหรับงานอื่น ๆ ตัวอย่างเช่นความสามารถนี้ช่วยให้ผู้ใช้ powerchair ควบคุมทั้ง powerchair และตัวชี้เมาส์ด้วยจอยสติ๊ก powerchair เดียว

แอปเพล็ตพาเนลตัวชี้จับภาพสร้างพื้นที่ดังกล่าวบนแผงซึ่งผู้ใช้สามารถล็อคตัวชี้จนกระทั่งปล่อยออกมาตามที่กำหนด

คุณสามารถติดตั้งแอปเพล็ตพาเนลตัวชี้จับภาพโดยคลิกขวาที่แถบเมนู / แผงระบบของ GNOME เดสก์ท็อปเลือกเพิ่มไปที่พาเนลเลือกจับภาพตัวชี้แล้วคลิกปุ่มเพิ่ม

ในกรณีที่คำอธิบายจาก gnome.org ไม่ชัดเจนสิ่งนี้จะสร้างพื้นที่ในพาเนลที่เมื่อเมาส์เข้า (หรือคุณคลิก) เคอร์เซอร์จะหายไปและจะไม่ปรากฏขึ้นอีกจนกว่าจะมีการกระทำที่กำหนดไว้เช่น คลิกครั้งที่สอง เสียงเหมือนสิ่งที่คุณต้องการ?


ฉันใช้สิ่งนี้ แต่สร้างปัญหาบางอย่าง ฉันไม่สามารถใช้Alt + F1เพื่อเปิดโดยเมนูแอปพลิเคชัน ฉันไม่รู้ว่าอะไรทำให้เกิดสิ่งนั้น ฉันเป็นผู้ใช้อูบุนตู
balki
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.