使用 grp:caps_switch 和 xkbmap 实现自定义键盘快捷键

使用 grp:caps_switch 和 xkbmap 实现自定义键盘快捷键

我希望按下I J K L时它能起到箭头键的作用。为此,我将以下内容粘贴到文件底部:CapsLock/usr/shar/X11/xkb/symbols/pc

partial  partial alphanumeric_keys
xkb_symbols "alpha_arrows" {

    key <AC07>  { symbols[Group2]=[ Left,      Left,      Left,      Left      ] };
    key <AC08>  { symbols[Group2]=[ Down,      Down,      Down,      Down      ] };
    key <AC09>  { symbols[Group2]=[ Right,     Right,     Right,     Right     ] };
    key <AD08>  { symbols[Group2]=[ Up,        Up,        Up,        Up        ] };

};

然后我将以下命令添加到我的.bashrc文件中:

setxkbmap -option grp:caps_switch

这确实禁用CapsLock并允许Alt-CapsLock切换大写锁定命令。我的理解是按住CapsLock应该会激活我上面设置的“Group2”键绑定...但这根本就不会发生。

我尝试过多次使用 清除缓存rm -rf /var/lib/xkb/*并重启机器。仍然没有成功。值得注意的是,我能够交换Left-ControlLeft-Super,所以我知道这xkb/symbols/pc是要编辑的正确文件。

问题:

  • 有没有办法检查/确认“Group2”已激活?您可能已经看出来,我对此的工作原理了解不多。

  • 将该代码块粘贴到文件底部是否有效xkb/symbols/pc

  • Home有没有同样简单的替代方法来重新映射这些键?我还对重新映射、End等感兴趣...

让我走到这一步的参考资料:

笔记:这个问题似乎在互联网上以各种形式被问到过,我犹豫着是否要给系统增加更多噪音。但我读到的很多东西xmodmap现在(显然)已经过时了。AutoKey 让我想刺瞎自己的眼睛。

答案1

我刚刚将我的自定义布局添加到 elementary OS Loki 中的 GUI 中。

要添加我的自定义布局,我执行以下操作:

  1. 编辑现有的 xkb/symbols/ru 文件以在那里添加我的布局;
  2. 编辑 evdev.xml 文件以添加适当的变体;
  3. 编辑evdev.lst文件以添加适当的变体;
  4. 编辑基础文件文件以添加适当的变体;
  5. 编辑基础列表文件以添加适当的变体;

看来您没有执行步骤#3、4、5。

你能尝试一下并报告结果吗?

编辑:

  1. 我已经做了一些测试,准备说,布局肯定出现在 GUI 中编辑 evdev.xml 和 evdev.lst 后。

  2. 适当的变体似乎是:xkb_symbols“alpha_arrows“因此应该在 evdev.lst 中添加以下行:

    alpha_arrows gb: Doms l33t 布局

  3. 编辑 base.xml 和 base.lst 似乎是多余的和不必要的。

编辑2:此外,还有似乎是初始指南中的一个错误. 应该添加到 evdev.xml

<layout>
  <configItem>
    <name>alpha_arrows</name>
    <shortDescription>endom</shortDescription>
    <description>Dom's l33t layout</description>
    <languageList>
      <iso639Id>eng</iso639Id>
    </languageList>
  </configItem>
  <variantList />
</layout>

GUI 中的自定义布局屏幕

相关内容