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

Modified on: Thu, 07 Feb 2019 09:20:03 +0800

在我的Thinkpad笔记本电脑上,我可以轻松地将后退/前进键更改为其他内容(我通常将它们映射到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. 安装xdotool
  2. 为要运行的keypress命令创建脚本或shell别名(xdotool key --clearmodifiers Page_Down
  3. 将该脚本/别名绑定到桌面环境的热键/快捷键配置中的已发送组合(Alt + Left)。
  4. 醇>

    请注意,在gnome-control-center中,似乎无法将USB键盘的后退/前进按钮分配给快捷方式(您可以实际分配它们,但命令/映射到它的动作永远不会被调用/发生),所以你可能需要使用其他东西,比如compiz'Commands plugin。


相关问答

添加新评论