ทำการแมปปุ่มด้านข้างใหม่บน Microsoft Sculpt Comfort Mouse


12

ฉันเพิ่งซื้อ Microsoft Sculpt Comfort Mouse มันใช้บลูทู ธ เพื่อเชื่อมต่อกับแล็ปท็อปของฉันและปุ่มเมาส์ทั่วไปทำงานได้อย่างสมบูรณ์ภายใต้ทั้งลินุกซ์และ Windows 7 สิ่งที่แตกต่างเกี่ยวกับเมาส์นี้คือมันมีปุ่มพิเศษWindows/ Superปุ่มด้านข้างที่เปิดใช้เมนูเริ่ม นอกจากนี้ยังมีเซ็นเซอร์สัมผัสที่ตรวจจับเมื่อปุ่มด้านข้างถูกลูบขึ้นหรือลงและสั่นเมาส์เพื่อรับทราบว่าเปิดใช้งานแล้ว

แน่นอนใน Windows มีโปรแกรมที่ให้ฉันเปลี่ยนสิ่งที่จังหวะทำและปิดการสั่นสะเทือน

ใน Linux นั้น xev จะตรวจจับการกดแป้นปกติเท่านั้นเมื่อกดหรือกดปุ่มด้านข้าง Xev ไม่รายงานการกดปุ่มเมาส์ใด ๆ

ดังนั้นคำถามของฉันคือฉันสามารถเปลี่ยนสิ่งที่กดปุ่มจะถูกส่งเมื่อภายใต้ Linux?

ฉันชอบที่จะเปลี่ยนการเชื่อมโยงคีย์จากtabเป็นdown, backspaceเป็นup, (สิ่งที่รายงาน xev) เป็นctrl+ alt+ left/ rightเพื่อสลับระหว่างพื้นที่ทำงาน

ขอบคุณสำหรับความช่วยเหลือใด ๆ !


คุณตรวจสอบวิธีการสำหรับหนูที่help.ubuntu.com/community/ManyButtonsMouseHowto ?
ubfan1

1
ขอบคุณสำหรับคำแนะนำ ubfan1, xinput get-button-map ทำให้ฉันมี 13 ปุ่ม รายงานการทดสอบ xev และ xinput เฉพาะปุ่ม 1-7 ฉันลองแมปปุ่ม 8-13 ใหม่โดยใช้ xinput set-button-map และ xbindkeys จากลิงก์แต่ไม่มีอะไรเปลี่ยนแปลง กดปุ่มรายงานด้านข้างที่สำคัญกด 133 (super) ปัดขึ้นรายงานปุ่มกด 22 (backspace) กวาดนิ้วลงที่ปุ่มรายงาน 23 (แท็บ)
user223544

คำตอบ:


5

ฉันเพิ่งซื้อมาเองและพบว่างานต่อไปนี้สมบูรณ์แบบสำหรับฉัน

  1. เปิด dconf-editor ( sudo apt-get install dconf-editorหากยังไม่ได้ติดตั้ง)
  2. นำทางไปยัง org -> gnome -> desktop -> wm -> keybindings
  3. เปลี่ยนค่าของswitch-to-workspace-downเป็น

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    และมูลค่าของswitch-to-workspace-up to

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']


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

2

ดังนั้นเนื่องจาก Microsoft Sculpt Comfort Mouse ไม่ได้ลงทะเบียนกดปุ่มเมาส์สำหรับท่าทางที่เฉียบแหลม แต่เป็นการลงทะเบียนกดแป้นคีย์บอร์ดฉันจึงใช้แพ็คเกจ 'xautomation' และ 'xbindkeys' เพื่อฟังการกดปุ่มเหล่านั้นและส่งCtrl+ Alt+ Right/ Leftเพื่อสลับระหว่างพื้นที่ทำงาน มันไม่ใช่โซลูชันที่สมบูรณ์แบบ แต่ทำงานได้ 8 จาก 10 ครั้ง

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

สิ่งที่สคริปต์ xbindkeys นี้ทำคือฟังปุ่มกดที่เมาส์เลื่อนขึ้นและปัดนิ้วลงเพื่อส่งไปยังคอมพิวเตอร์ หากตรวจพบ xautomation ส่งการกดแป้นพิมพ์สก์ท็อปย้ายมาตรฐานcontrol+ alt+ /leftright

รูดขึ้นท่าทางบนเมาส์จะส่งการกดแป้นพิมพ์ของleft control+ +left super backspaceรูดลงท่าทางเมาส์ส่งการกดแป้นพิมพ์left control+ +left super tabm: 0x4 + mod4 + m: 0x0 + c22 เป็นรหัสชุดคีย์จริงที่ตรวจพบโดย xbindkeys

ฉันจะยุ่งกับมันอีกเล็กน้อยเพื่อดูว่าฉันสามารถปรับปรุงประสิทธิภาพได้หรือไม่ แต่สำหรับตอนนี้สิ่งนี้จะทำให้งานเสร็จ ฉันแค่หวังtabและbackspaceผลลัพธ์ของเมาส์ก็จะไม่ไปยุ่งกับงานที่ฉันทำ


1
คุณช่วยอธิบายวิธีการแก้ปัญหาได้อย่างไร เมาส์กำลังส่งControl_L+Super_L+Tab(Control_L + Super_L มาจากไหน) หรือคุณจับคู่ปุ่มเมาส์กับm:0x4+mod4+m:0x0+c:23(คุณดูเหมือนจะบอกว่าไม่มีเหตุการณ์เมาส์เกิดขึ้นในคำถาม)?
Volker Siegel

ฉันแก้ไขวิธีการแก้ปัญหาของฉันเพื่ออธิบายว่า Control_L + Super_L มาจากไหน ฉันยังอธิบายถึงวัตถุประสงค์ของ m: 0x0 + mod4 + m: 0x0 + c: 23
user223544

0

ฉันต้องการแมปปุ่มเดียวกันเพื่อไปยังแท็บต่างๆใน Firefox ทั้งสองทิศทาง ฉันใช้ xbindkeys และ xmacro มันใช้งานได้ดี!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.