是否可以在Linux上重新映射Thinkpad USB键盘的后退/前进键?


8

在我的Thinkpad笔记本电脑上,我可以轻松地将Back / Forward键更改为其他键(通常将它们映射到PageDown / PageUp),因为它们具有自己的键码(166和167):

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

但是,在我的Thinkpad USB键盘上,后退/前进键似乎分别映射为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 2012年

问题恰恰是它没有键码,而是硬连线到alt-left / alt-right
Guilherme Salgado 2012年

Answers:


0
  1. 安装xdotool
  2. 为您要运行的keypress命令创建脚本或shell别名(xdotool key --clearmodifiers Page_Down
  3. 将该脚本/别名绑定到桌面环境的“热键/快捷方式”配置中的已发送组合(Alt + Left)。

请注意,在gnome-control-center中,似乎无法将USB键盘的“后退/前进”按钮分配给快捷方式(您可以实际分配它们,但是映射到它的命令/动作将永远不会被调用/ happen),因此您可能需要使用其他功能,例如compiz的Commands插件。


1
感谢您的建议@sleighboy。我用xautomation尝试过,但是没有用。关于原因,请参阅下方我自己的答案
Guilherme Salgado 2012年

1
实际上,这应该是最终答案,在这里我将解释为什么它不起作用。运行命令应该是xdotool key --clearmodifiers Page_Up出于某种原因,并且出于某种原因,将“后退/前进”按钮分配为gnome-control-center上快捷方式的加速器似乎无效,但是如果您使用compiz的“ Commands”插件,它将可以正常工作。
Guilherme Salgado 2012年

0

我把它放在我的.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中将其削减。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.