XKB - 配置无法正常工作

XKB - 配置无法正常工作

我添加了以下内容/usr/share/X11/xkb/symbols/us

key <AC06> {        [         h, H, Left            ]       };
key <AC07> {        [         j, J, Down            ]       };
key <AC08> {        [         k, K, Up              ]       };
key <AC09> {        [         l, L, Right           ]       };
key <AD08> { [ i, I, Home, Home          ] };
key <AB08> { [ comma, less, End, End         ] };
key <CAPS> { [ ISO_Level3_Shift ] }; 

因为方向键和 Home/End 键实在太远了。问题是,这些修改在某些程序中被忽略。

它们在浏览器和一些文本编辑器(如 vscode 和 emacs gui)中运行良好,但在 Sublime Text 和 Konsole(KDE 终端)等中则不然。

有解决方法吗?如果重要的话我正在使用 Fedora。

答案1

我刚刚拼凑了以下解决方案。它不仅适用于 Sublime Text,还允许选择带有shift.

  1. 添加。preserve[Shift+LevelThree] = Shift;…/xdb/types/iso9995详细信息阿库本图
  2. type="THREE_LEVEL"actions[Group1]= [NoAction(), NoAction(), RedirectKey(keycode=<UP>, clearmods=Lock)(最多)添加到 中的条目中/usr/share/X11/xkb/symbols/us

我的条目的键略有不同,如下所示:

key <AD07> { type="THREE_LEVEL",
   symbols[Group1]= [ u,            U,         Home,        Home ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<HOME>, clearmods=Lock) ]
};
key <AD08> { type="THREE_LEVEL",
   symbols[Group1]= [ i,            I,         Up,        Up ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<UP>, clearmods=Lock) ]
};
key <AD09> { type="THREE_LEVEL",
   symbols[Group1]= [ o,            O,         End,        End ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<END>, clearmods=Lock) ]
};
key <AC07> { type="THREE_LEVEL",
   symbols[Group1]= [ j,            J,         Left,      Left ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<LEFT>, clearmods=Lock) ]
};
key <AC08> { type="THREE_LEVEL",
   symbols[Group1]= [ k,            l,         Down,      Down ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<DOWN>, clearmods=Lock) ]
};
key <AC09> { type="THREE_LEVEL",
   symbols[Group1]= [ l,            L,         Right,      Right ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<RGHT>, clearmods=Lock) ]
};

Archlinux Wiki 上的这篇文章更多细节。

如果您不想使用 来选择文本shift,也许您可​​以跳过 1. 和类型声明。

相关内容