Como criar um layout de teclado personalizado para Linux?

Aug 26 2020

Idealmente, estou procurando uma ferramenta GUI, talvez um aplicativo da web, mas uma boa documentação sobre a criação de uma definição de texto para um layout de teclado também seria ótima. Qual é o procedimento normal aqui?

Em esta questão , o autor da questão já decidiu sobre o uso de "setxkbmap". Esta é a forma recomendada? Posso adicionar o layout a um repositório git, por exemplo, para fazer alterações com o tempo, se necessário?

Respostas

3 Gilles'SO-stopbeingevil' Aug 26 2020 at 03:28

Você pode editar mapas de teclado com XKeyCaps . Por outro lado, o XKeyCaps é uma GUI e é muito maduro. Uma desvantagem do XKeyCaps é que ele é apenas um front-end para a interface de mapa de teclado da janela X de estilo antigo, xmodmap , e não a interface moderna, XKB .

É perfeitamente normal usar o xmodmap se você quiser, mas não é tão poderoso quanto o XKB. Os recursos XKB que faltam ao xmodmap incluem:

  • Um melhor manuseio de modificadores. O X11 tem muitas peculiaridades relacionadas aos modificadores, incluindo o fato de que CapsLock e NumLock são considerados modificadores. Um exemplo de uma coisa que eu faço com o XKB que não funciona com o xmodmap é que eu make Alt+ CapsLockbe Lock(é assim que o X11 significa Caps Lock), mas não CapsLockele mesmo. Outra coisa que o xmodmap não pode fazer é ter diferentes conjuntos de modificadores influenciando diferentes teclas, por exemplo, para ter Shifte AltGrafetar caracteres imprimíveis, mas Ctrle Altafetar teclas de função.
  • XKB é feito de módulos combináveis. Xmodmap é monolítico. Isso é ótimo para pessoas que desejam combinar configurações predefinidas (“dê-me um teclado húngaro com Ctrl e CapsLock trocados e Alt+ Windowsis Menu, e para os códigos de tecla de um teclado Sun 5”), mas você não se importaria, já que você fazendo seu próprio layout.
  • Se você fizer o hotplug de um teclado, os padrões do sistema XKB serão reaplicados. Também é uma limitação do XKB, pois os padrões do sistema são reaplicados, não as configurações do usuário.
  • XKB tem melhor suporte para idiomas não alfabéticos ou entrada multi-script. Não posso dar detalhes porque este não é um assunto que conheço bem.
  • Existem ferramentas para alternar rapidamente entre layouts (por exemplo, para ter layouts específicos de janela) ou para indicar o layout de teclado atual que só funciona com XKB.
  • Não tenho certeza se Wayland suporta xmodmap.

Existem alguns editores de GUI XKB na web, mas todos os que posso encontrar são projetos que foram abandonados rapidamente e não são tão fáceis de instalar quanto o XKeyCaps. Não consigo encontrar um com um pacote Ubuntu, por exemplo.

Se você decidir escrever o mapa de teclado manualmente, a vantagem do xmodmap é que ele é muito simples. Você pode ler a página do manual, talvez dar uma olhada em um exemplo, e rapidamente entenderá tudo, exceto a sutileza dos modificadores. Se você não consegue descobrir como fazer isso com o xmodmap, provavelmente é impossível. A vantagem do XKB, mais uma vez, é que ele é mais poderoso. As desvantagens do XKB são que ele é complexo e mal documentado. Algumas sugestões de leitura se você quiser seguir esse caminho:

  • Como sempre, o Arch Wiki .
  • Perguntas sobre XKB aqui no Unix Stack Exchange.
  • Um guia não confiável para a configuração do XKB , apesar do nome e da idade, é um dos melhores recursos sobre o assunto. Como funciona a compilação xkb? pode ser um complemento útil.
  • Outros recursos vinculados ao wiki do X11 podem ou não ser úteis.
  • xkbcomp -a :0 current.xkb despeja seu layout atual em um arquivo.

Seja qual for a maneira que você escolher, a fonte do mapa de teclado é um arquivo de texto ou uma coleção de arquivos de texto que funciona bem com controle de versão.