ฉันมีเมาส์ Logitech g502 Proteus และต้องการใช้ปุ่มเมาส์ "ย้อนกลับ" และ "ไปข้างหน้า" (โดยทั่วไปจะใช้กับเบราว์เซอร์)
ฉันตรวจสอบกับ xev
ตรวจพบการกดปุ่มเมาส์ ฉันติดตั้ง xbindkeys
และใช้การตั้งค่าการอ้างอิงออนไลน์ต่างๆ .xbindkeysrc
เพื่อจับคู่ปุ่มเมาส์ (6 และ 7) เพื่อกดชุดปุ่มต่างๆ เพื่อจำลองลักษณะการทำงานที่ถูกต้อง
"xte 'คีย์เ'"
b:6 + รีลีส
"xte 'keydown Alt_L' 'keydown ขวา' 'keyup ขวา' 'keyup Alt_L'"
b:7 + รีลีส
ปัญหาคือ การรีแมปจะดำเนินการสองครั้ง หนึ่งครั้งเมื่อกด และอีกครั้งเมื่อปล่อย ฉันคิดว่าตัวดัดแปลง "Release" จะแก้ปัญหานี้ได้ แต่ก็ยังดำเนินต่อไป ฉันยืนยันสิ่งนี้โดยใส่รีแมปจำลองลงในจดหมาย 'ที'
กดปุ่มเมาส์ค้างไว้และเห็นปุ่มหนึ่ง 'ที'
แทรกตามด้วยอีกอัน 'ที'
เมื่อฉันปล่อยวาง
ฉันฆ่ากระบวนการ xbindkeys ทั้งหมดก่อนที่จะทำการทดสอบด้วย วิ่ง xbindkeys --verbose --nodaemon
แสดงกิริยาไม่ปกติ กล่าวคือ ก กด
และ ปล่อย
ทั้งสองจะถูกบันทึกเมื่อฉันกดปุ่มเมาส์ แม้ว่าฉันจะไม่ได้ปล่อยปุ่มเมาส์ที่กดอยู่ก็ตาม ต่อไปนี้ดูเหมือนว่าฉันกดและปล่อยปุ่มสองครั้ง แต่เพียงครั้งเดียว:
วงเริ่มต้น...
กดปุ่ม !
เช่น xbutton.button=6
e.xbutton.state=16
ปลดกระดุม !
เช่น xbutton.button=6
e.xbutton.state=16
"xte 'คีย์ t' "
ปล่อย + m:0x0 + b:6 (เมาส์)
ได้หน้าจอ 0 สำหรับ window 510
เริ่มโปรแกรมด้วยการเรียก fork+exec
กดปุ่ม !
เช่น xbutton.button=6
e.xbutton.state=16
ปลดกระดุม !
เช่น xbutton.button=6
e.xbutton.state=16
"xte 'คีย์เ' "
ปล่อย + m:0x0 + b:6 (เมาส์)
ได้หน้าจอ 0 สำหรับ window 510
บรรทัด xte เองบนบรรทัดคำสั่งจะพิมพ์ 't' เพียงหนึ่งบรรทัด ความคิดใด ๆ เกี่ยวกับวิธีการแก้ไข / วิธีแก้ปัญหานี้?