เป็นไปได้ไหมที่จะทำการแมปปุ่มย้อนกลับ / ไปข้างหน้าของแป้นพิมพ์ Thinkpad USB บน Linux?


9

บนแล็ปท็อป Thinkpad ของฉันฉันสามารถเปลี่ยนปุ่มย้อนกลับ / ไปข้างหน้าเป็นอย่างอื่นได้อย่างง่ายดาย (ฉันมักจะจับคู่กับ PageDown / PageUp) เนื่องจากมีรหัสของตัวเอง (166 และ 167):

xmodmap -e 'keycode 166=Prior'
xmodmap -e 'keycode 167=Next'

อย่างไรก็ตามบนแป้นพิมพ์ USB ของ Thinkpad ปุ่ม Back / Forward ดูเหมือนว่าจะถูกแมปอย่างยากลำบากกับ Alt + Left และ Alt + Right ตามลำดับดังนั้นฉันไม่สามารถใช้ xmodmap เพื่อทำการแมปใหม่ได้ มีวิธีอื่นที่ฉันสามารถแมปใหม่ได้หรือไม่ ฉันได้ลอง xautomation แล้วแต่ไม่ได้ผล

นี่คือสิ่งที่ 'xev' แสดงให้ฉันเห็นเมื่อฉันกดปุ่มส่งต่อ:

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x8, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x0, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

1
หากกุญแจมีรหัสพวกเขาสามารถทำการแมปใหม่ได้ใช่ไหม มันแตกต่างจากปุ่มล็อคแคปหรือไม่? หน้านี้ทำการแมปใหม่ดูดี ฉันไม่ได้ลองเลย เพียงแค่แนะนำ efod.se/writings/linuxbook/html/caps-lock-to-ctrl.html
Bibhas

ปัญหาคือว่ามันไม่มีรหัสและแทนที่จะเป็นสายยากที่จะ alt- ซ้าย / alt- ขวา
Guilherme Salgado

คำตอบ:


0
  1. ติดตั้งxdotool
  2. สร้างสคริปต์หรือชื่อแทนเชลล์สำหรับคำสั่ง keypress ที่คุณต้องการเรียกใช้ ( xdotool key --clearmodifiers Page_Down)
  3. ผูกสคริปต์ / นามแฝงนั้นกับคอมโบที่ส่ง (Alt + Left) ในการกำหนดค่า Hotkey / Shortcut ของสภาพแวดล้อมเดสก์ทอปของคุณ

โปรดทราบว่าใน gnome-control-center ดูเหมือนจะไม่สามารถกำหนดปุ่มย้อนกลับ / ไปข้างหน้าของแป้นพิมพ์ USBให้กับทางลัด (คุณสามารถกำหนดได้จริง แต่คำสั่ง / การกระทำที่คุณแมปไว้จะไม่ถูกเรียกใช้ / เกิดขึ้น) ดังนั้นคุณอาจต้องใช้อย่างอื่นเช่นคอมมานด์ปลั๊กอินคำสั่ง


1
ขอบคุณสำหรับคำแนะนำ @sighighboy ฉันลองด้วยxautomationแต่มันไม่ทำงาน ดูคำตอบของฉันเองด้านล่างทำไม
Guilherme Salgado

1
ที่จริงแล้วนี่ควรเป็นคำตอบสุดท้ายและฉันจะอธิบายที่นี่ทำไมมันไม่ทำงาน คำสั่งที่เรียกใช้ควรxdotool key --clearmodifiers Page_Upและด้วยเหตุผลบางประการที่กำหนดปุ่มย้อนกลับ / ไปข้างหน้าเป็นส่วนช่วยเร่งของทางลัดในศูนย์ควบคุมคำพังเพยดูเหมือนจะไม่ทำงาน แต่ถ้าคุณใช้ปลั๊กอิน 'คำสั่ง' compiz มันจะทำงาน
Guilherme Salgado

1

ฉันใส่สิ่งนี้ใน. bashrc ของฉัน:

# this maps the previous and next page buttons to pgup and pgdown 
xmodmap -e "keycode 167 = Next" 
xmodmap -e "keycode 166 = Prior"

ใช้งานได้ดี แต่ดูเหมือนจะไม่ตัดใน virtualbox 6 ด้วยเหตุผลบางอย่าง

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