XKB - 使用 CAPS LOCK 作为 CTRL 时,某些 CTRL + SHIFT + 组合键不起作用

XKB - 使用 CAPS LOCK 作为 CTRL 时,某些 CTRL + SHIFT + 组合键不起作用

Ubuntu 20.04

我使用 xkb 创建了一个新的键盘键盘映射,并将 Caps Lock 键重新映射为左控制键,但是,一些键盘组合键(例如 ctrl+shift+c 和 ctrl+shift+s)不起作用(使用 xev 时没有输出)。

但是,当我使用右控制键时,这些快捷键似乎有效。当控制键映射到另一个键(例如退格键)时,它们也有效。直观地讲,我尝试将 Caps Lock 重新映射到右控制键,但这也不起作用,事实上,这导致实际的右控制键也不起作用。

我怀疑这是键码的问题,因为将“c”映射到另一个键并不能解决问题,而且其他布局(例如 Colemak)也存在此问题。

这是我能够用在另一台计算机上重现该问题的 xkb 源文件。

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        partial alphanumeric_keys
xkb_symbols "colemak-programmer" {

    include "pc"
    include "us(basic)"
    name[Group1]= "English (Programmer Colemak)";

    key <TLDE> { [        grave,       asciitilde           ] };
    key <AE01> { [            1,           exclam           ] };
    key <AE02> { [            2,               at           ] };
    key <AE03> { [            3,       numbersign           ] };
    key <AE04> { [            4,           dollar           ] };
    key <AE05> { [            5,          percent           ] };
    key <AE06> { [            6,      asciicircum           ] };
    key <AE07> { [            7,        ampersand           ] };
    key <AE08> { [            8,         asterisk           ] };
    key <AE09> { [            9,        parenleftquotemark  ] };
    key <AE10> { [            0,       parenrightequotemark ] };
    key <AE11> { [        minus,       underscore           ] };
    key <AE12> { [        equal,             plus           ] };

    key <AD01> { [            q,            Q ] };
    key <AD02> { [            w,            W ] };
    key <AD03> { [            f,            F ] };
    key <AD04> { [            p,            P ] };
    key <AD05> { [            b,            B ] };
    key <AD06> { [            j,            J ] };
    key <AD07> { [            l,            L ] };
    key <AD08> { [            u,            U ] };
    key <AD09> { [            y,            Y ] };
    key <AD10> { [    semicolon,        colon ] };
    key <AD11> { [  BackSpace ] };
    key <AD12> { [  BackSpace ] };
    key <BKSL> { [    backslash,          bar ] };

    key <AC01> { [            a,            A,          bracketleft   ] };
    key <AC02> { [            r,            R,          braceleft     ] };
    key <AC03> { [            s,            S,          equal         ] };
    key <AC04> { [            t,            T,          parenleft     ] };
    key <AC05> { [            g,            G,          asterisk      ] };
    key <AC06> { [            k,            K,          minus         ] };
    key <AC07> { [            n,            N,          parenright    ] };
    key <AC08> { [            e,            E,          underscore    ] };
    key <AC09> { [            i,            I,          braceright    ] };
    key <AC10> { [            o,            O,          bracketright  ] };
    key <AC11> { [   apostrophe,     quotedbl ] };

    key <AB01> { [            x,            X ] };
    key <AB02> { [            c,            C ] };
    key <AB03> { [            d,            D ] };
    key <AB04> { [            v,            V ] };
    key <AB05> { [        ISO_Level3_Shift    ] };
    key <AB06> { [            m,            M ] };
    key <AB07> { [            h,            H ] };
    key <AB08> { [        comma,         less ] };
    key <AB09> { [       period,      greater ] };
    key <AB10> { [        slash,     question ] };

    key <LSGT> { [        minus,   underscore ] };
    key <SPCE> { [        space,        space ] };
    key <CAPS> { [      Control_L             ] };
    key <BKSP> {   [       0,       BackSpace ] };
    key <LCTL> {  [ z, Z ] };

}; 

        xkb_geometry  { include "pc(pc101)"     };
};

相关内容