![自定义键盘布局使用 HJKL 作为箭头键无法正常工作](https://linux22.com/image/1047986/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80%E4%BD%BF%E7%94%A8%20HJKL%20%E4%BD%9C%E4%B8%BA%E7%AE%AD%E5%A4%B4%E9%94%AE%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C.png)
我设置了键盘布局,以使用键、、、作为箭头、和/usr/share/X11/xkb/symbols/
作为H第三和第四个移位级别。我主要遵循JKLLeftDownUpRight这个帖子。这R. Alt是我的替代字符键。
虽然这种自定义“基本”可行,但我无法通过同时键入 来选择文本Shift。例如,我无法通过按Alt Gr+ Shift+来选择文本,就像使用+H一样。但我可以使用 跳过整个单词。ShiftLeftCtrl
、、、H的工作方式与Firefox 中的箭头完全相同(带有和) J,但在 Gedit、Rhythmbox 或 Chrome 上则不然,可能在更多情况下......KLShiftCtrl
有什么想法吗?我正在使用 Ubuntu 14.04。
编辑:我正在使用带有的德语键盘AltGr。文件如下:
(希望链接现在能用)
答案1
转到xkb/types/iso9995
并编辑"THREE_LEVEL"
类型,添加
preserve[Shift+LevelThree] = Shift;
所以看起来像这样
partial default xkb_types "default" {
// A key type which can be used to implement
// an ISO9995-style level-three shift.
virtual_modifiers LevelThree;
type "THREE_LEVEL" {
modifiers = Shift+LevelThree;
map[None] = Level1;
map[Shift] = Level2;
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level3;
preserve[Shift+LevelThree] = Shift;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Level3";
};
};
然后转到您的符号文件并使用此格式
key <AC06> { type="THREE_LEVEL", [ h, H, Left ] };
key <AC07> { type="THREE_LEVEL", [ j, J, Down ] };
key <AC08> { type="THREE_LEVEL", [ k, K, Up ] };
key <AC09> { type="THREE_LEVEL", [ l, L, Right ] };
这是一个相关问题,从中我可以从中找到你的答案。