Sou iniciante nos sistemas derivados de Linux, hoje é literalmente meu quarto dia. Também tenho pouquíssimo conhecimento sobre programação e coisas relacionadas.
Eu estudo Fonologia e gostaria de criar um layout de teclado especial para mim, pois, nesse campo de estudos, é preciso trabalhar o tempo todo com caracteres especiais do IPA (Internationtal Phonetic Alphabet).
Mas tenho encontrado dificuldades para poder fazer um teclado próprio.
Em Configurações/Teclado/Fontes de entrada/Adicionar fonte de entrada/Outro, aparece a opção A user-defined custom Layout:
Não consegui achar um jeito de fazer a opção funcionar, sempre aparece vazio:
Procurando um pouco, cheguei nesta discussão do Reddit: Reddit - Please wait for verification
Cheguei até os arquivos que foram apontados por moigagoo:
- Symbols (BR): /usr/share/X11/xkb/symbols/br (a postagem aponta para “us”, mas para mim faz sentido ir no “br”)
- Rules Evdev: /usr/share/X11/xkb/rules/evdev.XML
Seguindo o que entendo ser a lógica do que está escrito no arquivo br, escrevi o seguinte texto(?) e coloquei-o no final do arquivo:
//
// TECLADO PT-BR PESSOAL
//
// Jacobus Sanctorum 2026-04-11
//
xkb_symbols "my_custom_layout" {
include "latin"
name[Group1]="Portuguese (Brazil)(Pessoal)";
// Numeric row
key <TLDE> { [ apostrophe, quotedbl ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { [ 2, at, twosuperior ] };
key <AE03> { [ 3, numbersign, threesuperior ] };
key <AE04> { [ 4, dollar, sterling ] };
key <AE05> { [ 5, percent, cent ] };
key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus, section ] };
// Upper row
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W, 0x01000289 ] };
key <AD03> { [ e, E, 0x0100025B ] };
key <AD04> { [ r, R, 0x0100027E, 0x0100027D ] };
key <AD05> { [ t, T, 0x0100027B ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U, 0x0100028A ] };
key <AD08> { [ i, I, 0x0100026A ] };
key <AD09> { [ o, O, 0x01000254 ] };
key <AD10> { [ p, P ] };
key <AD11> { [ dead_acute, dead_grave, 0x010002C8, 0x010002CC ] };
key <AD12> { [ bracketleft, braceleft, ordfeminine, dead_macron ] };
// Central row
key <AC01> { [ a, A, 0x01000250, 0x01000259 ] };
key <AC02> { [ s, S, 0x01000283 ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F, 0x01000279 ] };
key <AC05> { [ g, G, 0x01000261 ] };
key <AC06> { [ h, H, 0x01000266 ] };
key <AC07> { [ j, J, 0x01000268 ] };
key <AC08> { [ k, K, 0x0100028E ] };
key <AC09> { [ l, L, 0x0100026B ] };
key <AC10> { [ ç, Ç ] };
key <AC11> { [ dead_tilde, dead_circumflex, 0x01000303 ] };
key <BKSL> { [ bracketright, braceright, masculine, dead_breve ] };
// Lower row
key <LSGT> { [ backslash, bar ] };
key <AB01> { [ z, Z, 0x01000292 ] };
key <AB02> { [ x, X, 0x01000263 ] };
key <AB03> { [ c, C, 0x010003C7, 0x01000281 ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N, 0x01000272 ] };
key <AB07> { [ m, M, 0x0100014B ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ semicolon, colon ] };
key <SPCE> { [ space, space ] };
key <AB11> { [ backslash, bar, degree, questiondown ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
Não adiantou…
Fui atrás do arquivo evdev, não compreendi uma palavra dele,
.
Alguém saberia como fazer isso?
De preferência, sem baixar nenhum programa.





