xkb 和 Ubuntu 20.10

xkb 和 Ubuntu 20.10

我喜欢自定义键盘布局,通常使用修改后的/usr/share/X11/xkb/symbols/us文件来获得我想要的效果。从 Ubuntu 20.04 开始,现在有了 20.10,我的修改不再被考虑。但令人惊讶的是,在查看键盘布局时,settings->Region and Language->Input Sources会显示修改后的布局。是否需要额外的步骤才能使自定义布局正常工作?我使用 Gnome Shell 和 Wayland。

我补充说/usr/share/X11/xkb/symbols/us

xkb_symbols "basic" {
...
    key <AC10> {
        type="MY_CONTROL_LEVEL3",
        symbols[Group1]= [ semicolon, colon, asciicircum ]
    };
    key <AC11> {
        type="MY_CONTROL_LEVEL3",
        symbols[Group1]= [ apostrophe,  quotedbl, mu ]
    };
    key <BKSP> {
        type="MY_CONTROL_LEVEL3",
        symbols[Group1]= [ BackSpace, Delete, Delete ]
    };
    key <AB08> {
        type="MY_CONTROL_LEVEL3",
        symbols[Group1]= [  comma,   less,  underscore ]
    };
    key <SPCE> {
        type="MY_CONTROL_LEVEL3",
        symbols[Group1]= [ space, space, paragraph ]
    };

...
};

我制作了一个文件,内容my-us如下:

// Allow Shift and Control modifiers
partial default xkb_types "default" {
    type "MY_CONTROL_LEVEL3" {
        modifiers = Shift+Control;
        map[Shift] = Level2;
        map[Control] = Level3;
        level_name[Level1] = "Base";
        level_name[Level2] = "Shift";
        level_name[Level3] = "Control";
    };
};

这是设置应用程序的屏幕截图:

设置里的键盘布局

xkbmap -print给出:

        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+inet(evdev)"     };
        xkb_geometry  { include "pc(pc105)"     };
};```

答案1

我通过使用 Alacritty 终端仿真器部分解决了我的问题,该仿真器允许在终端级别定义键盘映射。

最近,升级到 Ubuntu 21.10 并切换回 X11 后,我的设置对所有应用程序均再次有效。

答案2

请尝试Alt-F2,然后在弹出窗口中输入单个字符r,然后提交。这将重新启动 Gnome。

相关内容