xmodmap
วิธีหนึ่งที่จะประสบความสำเร็จที่จะผ่าน คุณสามารถเรียกใช้xev
เพื่อรับเหตุการณ์สำคัญ ในการใช้xev
กล่องควรปรากฏขึ้นและคุณสามารถมุ่งเน้นและกดปุ่มที่คุณต้องการแลกเปลี่ยน มันควรจะส่งออกรายละเอียดคล้ายกับที่Altสำคัญ:
KeyPress event, serial 28, synthetic NO, window 0x8800001,
root 0x25, subw 0x0, time 2213877115, (126,91), root:(1639,475),
state 0x0, keycode 14 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
ฉันใช้พีซีและไม่มี "คีย์คำสั่ง" แต่มี "คีย์ Windows" ที่เทียบเท่าและ xev ให้:
KeyPress event, serial 28, synthetic NO, window 0x8000001,
root 0x25, subw 0x0, time 2213687746, (111,74), root:(1624,98),
state 0x0, keycode 93 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
เนื่องจาก xmodmap ไม่มีความคิดstate
และสามารถแบ่งการแมปที่สำคัญได้ง่ายฉันจึงขอแนะนำให้คุณทำ:
xmodmap -pke > defaults
จากนั้นเราสร้างไฟล์ xmodmap:
keycode 14 = Alt_L
keycode 93 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L
สังเกตว่าฉันใช้รหัสที่xev
ส่งคืนอย่างไร นอกจากนี้ที่นี่ฉันแค่แทนที่ปุ่มซ้ายสุดและปุ่ม alt (และปล่อยปุ่มที่ถูกต้องให้เป็นแบบเก่า) จากนั้นเราสามารถเรียกใช้xmodmap
เพื่อตั้งค่าคีย์เหล่านี้:
$ xmodmap -v modmap.file
! modmap:
! 1: keycode 14 = Alt_L
keycode 0xe = Alt_L
! 2: keycode 93 = Super_L
keycode 0x5d = Super_L
! 3: remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0xe
remove mod1 = 0xe
! 4: remove Mod4 = Super_L
! Keysym Super_L (0xffeb) corresponds to keycode(s) 0x5d
remove mod4 = 0x5d
! 5: add Mod1 = Super_L
add mod1 = Super_L
! 6: add Mod4 = Alt_L
add mod4 = Alt_L
!
! executing work queue
!
keycode 0xe = Alt_L
keycode 0x5d = Super_L
remove mod1 = 0xe
remove mod4 = 0x5d
add mod1 = Super_L
add mod4 = Alt_L
คุณสามารถเรียกใช้โดยไม่มี-v
สวิตช์ (verbose) สำหรับการทำงานแบบเงียบ แต่ฉันพบว่ามีประโยชน์หากคุณทำผิดพลาดในไฟล์ modmap ของคุณ หากสิ่งต่าง ๆ ยุ่งเหยิงเพียงแค่ใช้ค่าเริ่มต้นของคุณใหม่:
xmodmap defaults
Modmap มักจะวิ่งที่เริ่มต้นขึ้นของ X เพื่อให้คุณสามารถได้เหล่านี้นำไปใช้เป็นค่าเริ่มต้นถ้าคุณใส่คำสั่ง modmap ~/.xmodmaprc
คุณใน