使用 HJKL 作为箭头的自定义键盘布局无法正常工作

avi*_*ila 6 keyboard-layout shortcut-keys xkb 14.04

我将键盘布局设置/usr/share/X11/xkb/symbols/为使用 HJKL 键作为向左、向下、向上和向右箭头作为第三和第四个移位级别。我大部分时间都在关注这个帖子。正确的 Alt 是我的替代字符键。

虽然此自定义“基本上”有效,但我无法通过将其与SHIFT. 举例来说,我不能按选择文本Alt Gr+ Shift+ H,因为它将做Shift+ Left。但我可以用Ctrl.

HJKL 的工作方式与 Firefox 中的箭头完全相同(带有shiftCtrl),但不适用于 Gedit、Rhythmbox 或 Chrome,甚至可能更多...

有任何想法吗?我正在使用 Ubuntu 14.04。


编辑:我正在使用带有AltGr. 文件如下:

链接到键盘布局

(希望链接现在有效)

Dam*_*aru 5

通过添加转到xkb/types/iso9995并编辑"THREE_LEVEL"类型

  preserve[Shift+LevelThree] = Shift;
Run Code Online (Sandbox Code Playgroud)

所以它看起来像这样

  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";
    };
};
Run Code Online (Sandbox Code Playgroud)

然后转到您的符号文件并使用此格式

    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 ]     }; 
Run Code Online (Sandbox Code Playgroud)

是一个相关的问题,我可以从中找出你的答案。