xkb - Os modificadores remapeados ainda funcionam como modificadores

3

Estou usando o xkb para criar meu próprio layout de teclado. Eu tenho um pequeno problema, no entanto.

key <AE04> {[ Shift_L ]};
key <AE07> {[ Shift_R ]};
key <LFSH> {[ comma  , semicolon , bar    ]};
key <RTSH> {[ period , colon     , period ]};
modifier_map Shift { <AE04>, <AE07> };

O acima move as teclas shift para outras teclas. Para fazer com que as novas chaves de deslocamento realmente façam alguma coisa quando pressionadas, tive que adicionar a linha modifier_map . O código também coloca caracteres regulares nas teclas antigas do turno. Até aí tudo bem.

O problema é que, se eu segurar a tecla shift esquerda antiga e pressionar algum caractere - digamos "a" - recebo ", A". Assim, essa chave funciona como uma chave de vírgula e como uma tecla shift. Este último não é desejado. A mesma coisa acontece com a chave de turno certa. Na verdade, isso também acontece com controle e alt.

Como eu resolvo isso? Parece que eu preciso de modifier_unmap ou algo assim.

    
por lydell 31.12.2013 / 13:37

1 resposta

2

Depois de executar setxkbmap -print , percebi que pc foi incluído na lista de símbolos. Esse arquivo de símbolo configura os modificadores regulares, o que não é desejado por mim.

Antes, eu adicionei meu próprio layout ao diretório /usr/share/X11/xkb/symbols e ao arquivo /usr/share/X11/xkb/rules/evdev.xml . Isso fez com que meu layout aparecesse na GUI para selecionar o layout do teclado.

Uma solução é criar um layout de teclado a partir do zero. Um que não inclui o arquivo pc . No entanto, há muitas coisas de teclado padrão em pc que eu preciso. Então eu li o arquivo de cima a baixo escolhendo as coisas que eu precisava.

Em suma, criar um layout a partir do zero significa basicamente:

  1. Copie a saída de setxkbmap -print para um arquivo.
  2. Esse arquivo inclui apenas outros arquivos. Olhe através da lista para ver o que você pode reutilizar. Para mim, significava substituir pc pelo nome do meu próprio arquivo.
  3. Crie novos arquivos, se necessário.
  4. Inicie seu novo layout usando xkbcomp -I$HOME/additional-include-folder file-from-step-one .

Aprendi isso (com mais detalhes) com este excelente guia: link .

    
por 06.01.2014 / 19:36