如何将上下文菜单重新映射到 linux 中的另一个键?

Jho*_*nes 24 keyboard-layout shortcut-keys

我刚刚购买了联想 thinkpad,我为里面的一切感到自豪。感觉就像 Linux 内核一样坚如磐石:P。

问题是联想决定删除上下文菜单键,该键是执行右键单击操作的键。他们用打印屏幕键代替了它。我的键盘有数字部分,上面有一些按钮。有一个放大镜键,我想重新映射以打开上下文菜单或成为右键单击键。是否有可能做到这一点?

我尝试搜索其他相关问题,但我只找到了有关如何向 Nautilus 上下文菜单添加选项的问答。我想映射键盘的物理键以打开此菜单。就像以前那样。戴尔似乎也在他们的 inspiron 键盘中删除了这个键。我不知道发生了什么,因为我使用键盘而不是鼠标。

提前致谢。

Ed *_*gas 15

这有点复杂,但你可以做到。按着这些次序:

检测键码

  1. 运行xev以检测密钥代码:

    xev | grep keycode
    
            state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
            state 0x0, keycode 107 (keysym 0xff67, Menu), same_screen YES,
            state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    
    Run Code Online (Sandbox Code Playgroud)
  2. 按下要重新配置的键。终端中的输出将显示keycode(小心,可能有几个)。

测试映射

  1. 临时设置新映射,对我来说是keycode 107

    xmodmap -e "keycode  107 = Return NoSymbol Return"
    
    Run Code Online (Sandbox Code Playgroud)

如果键的行为符合预期,您可以保存配置。

保存您的配置

  1. 将您当前的键盘映射表保存到您的$HOME, 以覆盖默认值:

    xmodmap -pke > ~/.Xmodmap
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建或编辑~/.xinitrc以加载您的配置:

    $EDITOR ~/.xinitrc
    
    Run Code Online (Sandbox Code Playgroud)
  3. 添加以下几行

    if [ -f $HOME/.Xmodmap ]; then
            /usr/bin/xmodmap $HOME/.Xmodmap
    fi
    
    Run Code Online (Sandbox Code Playgroud)

享受

以上大部分信息来自ArchWiki 文章


Bah*_*hax 12

我在这里发现使用:shift+F10打开上下文菜单。

我知道这不是最好的解决方案,但我认为它可以帮助临时使用!

PS:我也有 e530c,我在 Debian 7 (Wheezy) 上测试过。


Han*_*ans 5

我最近购买了一台 Lenovo E550 并遇到了同样的问题,我通过使用xte(from xautomation) 和解决了它xmodmap

为什么其他答案不能完全起作用?

  1. @Ed Villegas(也不是@Null Pointer)答案不起作用,因为位于数字部分上方的一些键本身并不是唯一的键(例如,Super锁定键与+组合相关L)。当xev用于尝试查找锁键键码时,它会同时返回SuperL键码,您只需xev逐行解释输出即可。

  2. 对于@Bahax@John FineganShift+F10是上下文菜单键,它不适用于所有应用程序,并且不提供与 相同的功能Menu。如果您在文件资源管理器中选择一个文件,然后按 该文件本身的上下文菜单,则应弹出该文件本身,而使用+组合Menu不会发生这种情况,而是会为窗口提供一个上下文菜单。ShiftF10

  3. @Danial Behzadi采用与第二项中的人员类似的方法,但是通过击键模拟器将键盘组合链接到一个键,它将将该键链接到 +ShiftF10提供相同的结果。

有效的答案

重要的是要考虑到 ThinkPad 键盘中不存在的键是Menu(这就是它的名称),如下图所示:

菜单键

尽管密钥不存在,但它的密钥代码应该存在于您的计算机中,您可以通过打印密钥代码表来找到它,xmodmap -pke | grep Menu该表应该为您提供如下内容:

xmodmap 输出

考虑到这一点,请像@Danial Behzadixautomation答案中那样安装(以便用于xte击键模拟):

sudo apt-get install xautomation

并创建一个自定义快捷方式,在触发器中按您想要成为快捷方式的键,然后在粘贴Actionxte 'key Menu'应用并测试。