Nota : o Wayland usa xkb, mas muitos xTools pararam de funcionar corretamente (xdotool por exemplo)
Nota : este é um tutorial não exaustivo. É mais útil para um indivíduo que procura criar um novo layout de oito níveis e entender a sintaxe.
Nota: É fornecida uma solução rápida e suja. Inclui uma planilha que gera automaticamente o código que você precisa.
Compreendendo o diretório XKB
cd /usr/share/X11/xkb/ && ls
-
types - Como as chaves produzidas são alteradas por Modificadores Ativos . (Shift, Ctrl, Alt ~)
Importante se você quiser personalizar o Teclas modificadoras. -
geometry - Usado para desenhar gráficos de teclado.
Importante se você estiver projetando um hardware não padrão de teclado. -
rules - Buscando a configuração apropriada para sua configuração atual.
Você precisará definir isso -
keycodes - O intérprete dos códigos de tecla para hardware de teclado.
Exemplo: Teclados Macintosh entendem a barra de espaços como57
. Nós escrevemos isso como<SPCE>
-
symbols - Quais Valores são atribuídos a códigos de chaves .
Aqui é onde vamos definir nosso layout personalizado. -
compat - Abreviação de Compatibilidade .
Comportamento interno de Modificadores (Shift, Control, Alt ...)
Fluxo de trabalho
códigos de chaves & gt; símbolos & gt; compat
Eu toquei apenas em symbols
: veja abaixo a solução Rápida e Direta .
Mapas de símbolos
/ símbolos / us Qualquer arquivo neste diretório segue a mesma estrutura.
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "US/ASCII";
key <TLDE> { [ quoteleft, asciitilde ] };
key <AE01> { [ 1, exclam ] };
modifier_map Shift { Shift_L, Shift_R };
};
partial - Não é um mapa de teclado completo
alfanumeric_keys Seção do teclado sendo mapeado. Múltiplos podem ser usados
Nota: Se nenhum *_keys
for especificado, um teclado completo é assumido.
"basic" - O nome do mapa de símbolos
name [Group1]="EUA / ASCII"; Dá um nome exclusivo a este grupo de teclados.
modifier_map Para editar as teclas modificadoras . (ctrl, shift, alt ~)
Deslocamento {Shift_L, Shift_R}; Não é normalmente necessário. Ele mapeia os dois turnos para o modificador de turno, também conhecido como nível 2.
chave & lt; TLDE & gt; A Chave do Til - Normalmente, a tecla superior esquerda logo acima da aba
chave & lt; A01 & gt; Ilustração - Composta por Três Partes, A E 01
-
Um = bloco de teclas alfanuméricas.
KP = Teclado
FK = Tecla de Função -
E = Linha no teclado.
Chave de Espaço = Uma linha
Tecla Shift = linha B
Caps Lock = linha C
Tecla Tab = D linha -
01 = Posição da chave na linha.
AE01 = 1
AB02 = X
AC05 = G
[ + ] - em idiomas C; Colchetes indica uma lista, por meio da qual os itens são divididos por , . O comprimento da lista determina a quantidade de níveis. Por exemplo:
key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }
Normalmente, os Níveis denotam o seguinte pressionamento de tecla com:
- Nenhuma tecla modificadora
- Shift
- Alt Gr
- Deslocamento + Alt Gr
- Personalizada - É improvável ver algo além do nível 4.
Em suma, se você quisesse mapear uma chave para shift + altgr, sua lista teria que ter pelo menos quatro itens.
AVISO - Erros Comuns
Qualquer uma dessas linhas causará um erro crítico e deixará você sem um teclado utilizável:
key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
-
Backspace
deve serBackSpace
: Preste muita atenção à ortografia. - Uma entrada vazia deve ser
VoidSymbol
.
Melhor medida de segurança!
-
Faça o backup do seu arquivo que você está editando:
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
Algo como:
#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us
Se algo der errado, use o mouse para executar essa linha de código (contida no script bash que você deu permissão aos sudoers. Lembre-se de chmod +x
para permitir a execução como executável.)
Estratégias de backup para recuperar um sistema corrompido
- AVISO: Teclado & amp; O teclado virtual deixará de funcionar com o menor erro.
-
O mouse funcionará . A digitação pode ser feita destacando os caracteres e colando-os usando o clique do meio.Em Bash, você pode
return
(Pressionar Enter) colando uma quebra de linha. - O teclado funcionará no modo de recuperação no shell de root. (Acessado do bash)
- Você sempre pode usar um ambiente ao vivo para corrigir arquivos.
Solução rápida e suja
- Vá aqui
- Arquivo & gt; Faça uma cópia
-
Mapper Folha é onde você define o seu layout.
- As entradas de caractere único são traduzidas em um código entendido pelo programa.
(!
se tornaU0021
). Unicode suportado! - As strings não são traduzidas e são tratadas como estão. CERTIFIQUE-SE DE NÃO EXISTE erros de digitação ou de CASE !.
- quadrados vazios são preenchidos automaticamente com
VoidSymbol
.
- As entradas de caractere único são traduzidas em um código entendido pelo programa.
-
XKB-Sort Folha contém grupos de chaves, por exemplo:
Altera isso nos 8 níveis:key <AE01> { [U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021] }; key <AE02> { [U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B] }; key <AE03> { [U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D] }; key <AE04> { [U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022] }; key <AE05> { [U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A] }; key <AE06> { [U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B] }; key <AE07> { [U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D] }; key <AE08> { [U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F] }; key <AE09> { [U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027] }; key <AE10> { [U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029] }; key <AE11> { [U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028] }; key <AE12> { [U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C] };
1234567890-= // Physical Keys ![]"*{}/')(\ // Changed to these characters
- A aba XKB também possui linhas. Todas as outras guias podem ser ignoradas (seu código).
-
sudo vim /usr/share/X11/xkb/symbols/us
- Substitua o conteúdo de um layout. Escolha um que você não vai usar. Por exemplo: Mudei a entrada de colemak deixando a estrutura intacta e substituí as chaves.
Linhas de interesse:
key.type[group1]="EIGHT_LEVEL"; // Enables 8 levels
modifier_map Control { <LFSH>, <RTSH> }; // Maps ctrl's to shift keys.
key { [Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R] };
key { [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] };
include "level3(lalt_switch)" // Hold Left Alt for Level 3
include "level5(ralt_switch)" // Hold Right Alt for Level 5