![XKB não reconhece meu layout personalizado](https://rvso.com/image/192248/XKB%20n%C3%A3o%20reconhece%20meu%20layout%20personalizado.png)
Criei um layout de teclado personalizado (o arquivo é chamado “brc”) baseado no Colemak para meu Lubuntu 18.04 e copiei-o para /usr/share/X11/xkb/symbols:
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)"
};
Também alterei os seguintes arquivos em /usr/share/X11/xkb/rules:
em evdev.xml
<layout>
<configItem>
<name>brc</name>
<shortDescription>custom-clmk</shortDescription>
<description>custom-colemak-abnt2</description>
<languageList>
<iso639Id>por</iso639Id>
</languageList>
</configItem>
<variantList/>
</layout>
em evdev.lst
! layout
brc abnt2+colemak
E este é o resultado:
~$ 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
Além disso, este é meu layout atual:
~$ 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)
Como posso fazer com que o xkb reconheça meu layout personalizado?
Responder1
Parece haver uma vírgula após Ccedilla que quebra a definição AD10
se você deseja definir apenas dois níveis. As outras teclas para as quais você também definiu apenas dois níveis parecem boas.
Também falta uma vírgula em AB03 entre C e copyright.
key <AD10> { [ ccedilla, Ccedilla ] };
// ...
key <AB03> { [ c, C, copyright, copyright ] };
...
Responder2
Decidi experimentar o Xmodmap para remapear o layout do meu teclado em vez do XKB e funcionou perfeitamente. Criar layouts personalizados no XKB parece ser muito complexo em comparação com o Xmodmap, e eu recomendo Tutorial de Xah Leeneste último. Obrigado pela ajuda.
Responder3
Para quem quiser experimentar o layout corrigido:
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)"
};