XKB erkennt mein benutzerdefiniertes Layout nicht

XKB erkennt mein benutzerdefiniertes Layout nicht

Ich habe ein benutzerdefiniertes Tastaturlayout (die Datei heißt „brc“) basierend auf Colemak für mein Lubuntu 18.04 erstellt und es nach /usr/share/X11/xkb/symbols kopiert:

default partial
xkb_symbols "basic" {
    name[Group1]= "brc";

    // Alphanumeric section
    key <TLDE> { [   apostrophe,        quotedbl,        notsign,          notsign ] };
    key <AE01> { [            1,          exclam,    onesuperior,   exclamdown ] };
    key <AE02> { [            2,              at,    twosuperior,          onehalf ] };
    key <AE03> { [            3,      numbersign,  threesuperior,    threequarters ] };
    key <AE04> { [            4,          dollar,       sterling,       onequarter ] };
    key <AE05> { [            5,         percent,           cent,     threeeighths ] };
    key <AE06> { [            6,  dead_diaeresis,        notsign,        diaeresis ] };
    key <AE07> { [            7,       ampersand,      braceleft,     seveneighths ] };
    key <AE08> { [            8,        asterisk,    bracketleft,        trademark ] };
    key <AE09> { [            9,       parenleft,   bracketright,        plusminus ] };
    key <AE10> { [            0,      parenright,     braceright,           degree ] };
    key <AE11> { [        minus,      underscore,         endash,     questiondown ] };
    key <AE12> { [        equal,            plus,        section,      dead_ogonek ] };
    key <AE13> { [ bracketright,      braceright,      masculine,        masculine ] };
    key <BKSP> { [    BackSpace,       BackSpace,      BackSpace,        BackSpace ] };

    key <AD01> { [            q,               Q,          slash,            slash ] };
    key <AD02> { [            w,               W,       question,         question ] };
    key <AD03> { [            f,               F,       EuroSign,         EuroSign ] };
    key <AD04> { [            p,               P,          thorn,            THORN ] };
    key <AD05> { [            g,               G                                   ] }; 
    key <AD06> { [            j,               J,            yen                   ] };
    key <AD07> { [            l,               L                                   ] };
    key <AD08> { [            u,               U                                   ] };
    key <AD09> { [            y,               Y,         oacute,           Oacute ] };
    key <AD10> { [     ccedilla,        Ccedilla,                                  ] };
    key <AD11> { [   dead_acute,      dead_grave,         acute,             grave ] };
    key <AD12> { [  bracketleft,       braceleft,    ordfeminine,      dead_macron ] };

    key <AC01> { [            a,               A,             ae,               AE ] }; 
    key <AC02> { [            r,               R,     registered,       registered ] };
    key <AC03> { [            s,               S                                   ] };
    key <AC04> { [            t,               T                                   ] };
    key <AC05> { [            d,               D                                   ] };
    key <AC06> { [            h,               H                                   ] };
    key <AC07> { [            n,               N                                   ] };
    key <AC08> { [            e,               E                                   ] };
    key <AC09> { [            i,               I                                   ] };
    key <AC10> { [            o,               O,             oe,           OE     ] };
    key <AC11> { [   dead_tilde, dead_circumflex,     asciitilde,     asciicircum  ] };
    key <AC12> { [        slash,        question,   questiondown                   ] };

    key <AB01> { [            z,               Z,  guillemotleft                   ] };
    key <AB02> { [            x,               X, guillemotright                   ] };
    key <AB03> { [            c,               C       copyright,        copyright ] }; 
    key <AB04> { [            v,               V                                   ] }; 
    key <AB05> { [            b,               B                                   ] };
    key <AB06> { [            k,               K                                   ] };
    key <AB07> { [            m,               M,             mu,               mu ] };
    key <AB08> { [        comma,            less                                   ] };
    key <AB09> { [       period,         greater                                   ] };
    key <AB10> { [    semicolon,           colon                                   ] }; 

    key <SPCE> { [        space,           space,          space,     nobreakspace ] };

// Configures the "," for the numeric keypad
    include "kpdl(comma)"

// Configures the use of the AltGr key
    include "level3(ralt_switch)"
};

Ich habe außerdem die folgenden Dateien in /usr/share/X11/xkb/rules geändert:

in evdev.xml

    <layout>
      <configItem>
        <name>brc</name>
        <shortDescription>custom-clmk</shortDescription>
        <description>custom-colemak-abnt2</description>
        <languageList>
           <iso639Id>por</iso639Id>
        </languageList>
      </configItem>
      <variantList/>
    </layout>

in evdev.lst

! layout
  brc             abnt2+colemak

Und das ist das Ergebnis:

~$ setxkbmap -v brc
Warning! Multiple definitions of keyboard layout
         Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+brc+inet(evdev)
geometry:   pc(pc105)
Error loading new keyboard description

Dies ist außerdem mein aktuelles Layout:

~$ setxkbmap -v
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+br+inet(evdev)
geometry:   pc(pc105)

Wie kann ich xkb dazu bringen, mein benutzerdefiniertes Layout zu erkennen?

Antwort1

Nach Ccedilla scheint ein Komma zu stehen, das die Definition aufhebt, AD10wenn Sie nur zwei Ebenen festlegen möchten. Die anderen Schlüssel, für die Sie auch nur zwei Ebenen festlegen, scheinen in Ordnung zu sein.

Außerdem fehlt in AB03 zwischen C und Copyright ein Komma.

    key <AD10> { [     ccedilla,        Ccedilla                                   ] };
    //    ...
    key <AB03> { [            c,               C,      copyright,        copyright ] }; 
...

Antwort2

Ich habe mich entschieden, Xmodmap auszuprobieren, um mein Tastaturlayout anstelle von XKB neu zuzuordnen, und es hat perfekt funktioniert. Das Erstellen benutzerdefinierter Layouts in XKB scheint im Vergleich zu Xmodmap einfach zu komplex zu sein, und ich empfehle Xah Lees Tutorialzu Letzterem. Danke für eure Hilfe.

Antwort3

Für diejenigen, die das korrigierte Layout ausprobieren möchten:

default partial
xkb_symbols "basic" {
    name[Group1]= "brc";

    // Alphanumeric section
    key <TLDE> { [   apostrophe,        quotedbl,        notsign,          notsign ] };
    key <AE01> { [            1,          exclam,    onesuperior,   exclamdown ] };
    key <AE02> { [            2,              at,    twosuperior,          onehalf ] };
    key <AE03> { [            3,      numbersign,  threesuperior,    threequarters ] };
    key <AE04> { [            4,          dollar,       sterling,       onequarter ] };
    key <AE05> { [            5,         percent,           cent,     threeeighths ] };
    key <AE06> { [            6,  dead_diaeresis,        notsign,        diaeresis ] };
    key <AE07> { [            7,       ampersand,      braceleft,     seveneighths ] };
    key <AE08> { [            8,        asterisk,    bracketleft,        trademark ] };
    key <AE09> { [            9,       parenleft,   bracketright,        plusminus ] };
    key <AE10> { [            0,      parenright,     braceright,           degree ] };
    key <AE11> { [        minus,      underscore,         endash,     questiondown ] };
    key <AE12> { [        equal,            plus,        section,      dead_ogonek ] };
    key <BKSL> { [ bracketright,      braceright,      masculine,        masculine ] };
    key <BKSP> { [    BackSpace,       BackSpace,      BackSpace,        BackSpace ] };

    key <AD01> { [            q,               Q,          slash,            slash ] };
    key <AD02> { [            w,               W,       question,         question ] };
    key <AD03> { [            f,               F,       EuroSign,         EuroSign ] };
    key <AD04> { [            p,               P,          thorn,            THORN ] };
    key <AD05> { [            g,               G                                   ] }; 
    key <AD06> { [            j,               J,            yen                   ] };
    key <AD07> { [            l,               L                                   ] };
    key <AD08> { [            u,               U                                   ] };
    key <AD09> { [            y,               Y,         oacute,           Oacute ] };
    key <AD10> { [     ccedilla,        Ccedilla                                   ] };
    key <AD11> { [   dead_acute,      dead_grave,         acute,             grave ] };
    key <AD12> { [  bracketleft,       braceleft,    ordfeminine,      dead_macron ] };

    key <AC01> { [            a,               A,             ae,               AE ] }; 
    key <AC02> { [            r,               R,     registered,       registered ] };
    key <AC03> { [            s,               S                                   ] };
    key <AC04> { [            t,               T                                   ] };
    key <AC05> { [            d,               D                                   ] };
    key <AC06> { [            h,               H                                   ] };
    key <AC07> { [            n,               N                                   ] };
    key <AC08> { [            e,               E                                   ] };
    key <AC09> { [            i,               I                                   ] };
    key <AC10> { [            o,               O,             oe,           OE     ] };
    key <AC11> { [   dead_tilde, dead_circumflex,     asciitilde,     asciicircum  ] };

    key <LSGT> { [    backslash,             bar,      masculine                   ] };
    key <AB01> { [            z,               Z,  guillemotleft                   ] };
    key <AB02> { [            x,               X, guillemotright                   ] };
    key <AB03> { [            c,               C,      copyright,        copyright ] }; 
    key <AB04> { [            v,               V                                   ] }; 
    key <AB05> { [            b,               B                                   ] };
    key <AB06> { [            k,               K                                   ] };
    key <AB07> { [            m,               M,             mu,               mu ] };
    key <AB08> { [        comma,            less                                   ] };
    key <AB09> { [       period,         greater                                   ] };
    key <AB10> { [    semicolon,           colon                                   ] };
    key <AB11> { [        slash,        question,   questiondown                   ] };

    key <SPCE> { [        space,           space,          space,     nobreakspace ] };

    key <KPPT> { [ period ] };

// Configures the "," for the numeric keypad
    include "kpdl(comma)"

// Configures the use of the AltGr key
    include "level3(ralt_switch)"
};

verwandte Informationen