我添加了以下内容/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.
- 添加。
preserve[Shift+LevelThree] = Shift;
…/xdb/types/iso9995
详细信息阿库本图。 - 将
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. 和类型声明。