สรุปคำถาม:ฉันต้องการให้ปุ่มเมาส์ปุ่มใดปุ่มหนึ่งของฉันลงทะเบียนเป็นปุ่ม Windows ด้านซ้ายSuper_Lโดย X11
ในโปรแกรมจัดการหน้าต่างฉันสามารถย้ายหน้าต่างไปรอบ ๆ ได้โดยกดปุ่ม "left Windows" (Left Super) ค้างไว้แล้วลากหน้าต่างด้วยปุ่มซ้ายของเมาส์ ฉันต้องการที่จะทำเช่นนั้นโดยไม่ต้องสัมผัสแป้นพิมพ์ดังนั้นฉันต้องการแมปปุ่ม Super key ที่ปุ่มซ้ายของเมาส์ 11 เพื่อที่ฉันจะสามารถกดปุ่มเมาส์ค้างไว้ 11 แล้วคลิก + ลากหน้าต่าง
ทางออกที่ชัดเจนที่สุดคือการใช้ xbindkeys และ xte เช่นนี้ ( .xbindkeysrc
):
"xte 'keydown Super_L'"
b:11
"xte 'keyup Super_L'"
b:11 + release
สิ่งนี้ได้ผลเช่นนี้:
- เมื่อฉันกดปุ่มเม้าส์ 11 Super_Lก็กดลงเช่นกัน
- เมื่อฉันปล่อยปุ่มเมาส์ 11 Super_Lก็จะถูกปล่อยออกมาเช่นกัน
แต่มีปัญหา: ฉันไม่สามารถย้ายหน้าต่างโดยใช้Super_L+ Mouse1หากฉันกดปุ่มเมาส์ค้างไว้อีกปุ่มหนึ่งเช่นปุ่มเมาส์ 11 โดยใช้วิธีการแก้ปัญหาด้านบนปุ่มเมาส์ 11 ยังคงถูกลงทะเบียนเป็นแบบกดและปล่อยออกมา การทำงานของตัวจัดการหน้าต่างทำงาน
ฉันได้ลองแล้วโดยใช้ทั้ง Cinnamon และ Awesome WM และไม่มีการSuper_Lรวมแป้นพิมพ์ใด ๆ เลยในขณะที่ปุ่มเมาส์ 10 หรือ 11 ถูกระงับ
แฮ็ค subpar
ขณะนี้ฉันกำลังแก้ไขปัญหานี้โดยทำให้เมาส์ 11 คลิกเพื่อSuper_Lกดปุ่มค้างไว้เป็นระยะเวลาหนึ่ง ด้วยวิธีนี้ฉันสามารถคลิกปุ่มเม้าส์แล้วลากสิ่งต่าง ๆ ในช่วงเวลาสั้น ๆ หลังจากนั้น:
"xte 'keydown Super_L' 'usleep 250000' 'keyup Super_L'"
b:11
ความพยายามอื่น
ตามที่แนะนำโดย totti ฉันลองxbindkeys
กำหนดค่านี้:
"xte 'mouseup 10' 'keydown Super_L'"
b:10
"xte 'keyup Super_L'"
b:10 + Release
มันไม่ทำงาน ดูเหมือนว่าจะมีการกดSuper_Lแป้นค้างไว้เพราะทันทีที่ฉันปล่อยปุ่ม 10 มันจะยังคงค้างอยู่ตลอดกาล (จนกว่าฉันจะกดSuper_Lปุ่มอีกครั้งบนแป้นพิมพ์) แต่ปุ่มเมาส์ยังคงลงทะเบียนเพราะฉันไม่สามารถคลิก & ลากหน้าต่าง . ฉันไม่คิดว่าฉันจะสามารถใช้งานxbindkeys
และใช้งานxte
ได้