Qual é a diferença entre o mapeamento de teclado X11 e o mapeamento de teclado do console virtual

Qual é a diferença entre o mapeamento de teclado X11 e o mapeamento de teclado do console virtual

No Linux, temos o X11 que controla os layouts de teclado, mas infelizmente quaisquer alterações feitas lá não afetam o sistema como um todo, então em um tty você fica com o qwerty padrão, não importa quais sejam suas preferências no X11. Recentemente decidi me aprofundar no tty então precisei configurar meu layout (neo) lá. No final, não consegui, mas tenho estas perguntas para lhe fazer:

Por que temos arquivos diferentes para descrever os layouts do X11 e dos consoles? Por que precisamos de ferramentas diferentes para gerenciar esses layouts? Por que ninguém parece interessado em alterar os layouts do console? Os administradores de servidor usam apenas qwerty?

Muito obrigado!

Responder1

Concordando que seria bom se os dois conjuntos de configurações fossem integrados, há duas razões pelas quais eles são diferentes:

  • eles evoluíram separadamente (e ninguém propôs uma solução integrada que satisfaça os requisitos de ambos), e
  • eles têm requisitos diferentes.

Os consoles virtuais do Linux fornecem uma interface de terminal que suporta termios POSIX: o que você pode considerar de baixo nívelpersonagemE/S. Isso estava bem definido em meados da década de 1980, com a tecnologia dos 10 anos anteriores. A interface termios preocupa-se com caracteres de controle, alguns recursos de destaque de vídeo para um únicopequenofonte, etc. Ele não faz muitas suposições sobre o teclado, exceto que ele pode enviar caracteres.

O X11 surgiu perto do final da década de 1980, projetado para suportargráficoE/S. Ele faz suposições diferentes dos termios, por exemplo, os gráficos implicam múltiplas fontes (e a capacidade de exibir uma ampla variedade de caracteres). Além disso (devido à necessidade de manipular um mouse ou outro dispositivo apontador), ele precisa de métodos adicionais para manipular a entrada.

Ao contrário da interface termios (usando uma sequência de caracteres/bytes), o X11 passa informações poreventosque contêm muitas informações, e os eventos podem ser combinados de maneiras não contempladas quando o termios foi concebido. Assim, em vez de codificar controle shiftem um caractere, um evento X11 pode passar ocontrol modificadorcomo um evento e umCódigo chavecomo outro evento. As bibliotecas X11 combinam esses eventos.

Embora ambos fossem tecnologias existentes desde o início, o X11 (mesmo como o X386) foi menos amplamente utilizado e basicamente chegou tarde demais, vários anos, para influenciar o design dos termios. Tudo isso foi feito antes do Linux começar. Como não havia (e aparentemente ainda há) nenhum design alternativo que proporcionasse uma vantagem distinta, não houve nenhuma mudança desde meados/final da década de 1990.

Leitura adicional:

informação relacionada