Acabei de mudar de xf86-input-evdev para xf86-input-libinput e quebrou meu layout de teclado - teclas de seta com alt direita, tecla de menu de contexto, tecla delete, teclado numérico enter, etc. libinput debug-events
mostrou a chave correta, no entanto. Depois de verificar Xorg.conf
, notei a seguinte linha:
Option "XkbRules" "base"
Após alterá-lo para evdev
, o teclado funcionou corretamente.
Encontrei o “ Guia de configuração do XKB ” que menciona as várias regras, mas não entra em detalhes sobre suas diferenças.
Qual a diferença entre os dois layouts? Tudo bem usar as regras evdev mesmo com libinput?
tl;dr: No Linux, você deve usar as
evdev
regras. Como diz no guia XKB você linka:A diferença é em grande parte histórica.
evdev
é o subsistema de entrada do kernel Linux moderno e não existia quando o XKB foi escrito pela primeira vez. Se você examinar o código-fonte de xkeyboard-config , descobrirá que as regrasevdev
ebase
são geradas a partir (principalmente) dos mesmos modelos. Compare os arquivos gerados no banco de dados XKB do sistema comdiff
, no entanto. Você verá muitas entradas onde asbase
regras carregaminet
símbolos para modelos de teclado específicos, enquanto asevdev
regras eliminam a maioria dessas entradas específicas do modelo e carregam um conjunto mais generalizado:Não, realmente, essa é toda a seção de modelo para símbolos das
evdev
regras, enquanto abase
versão tem 60 linhas ímpares. Oevdev.m_s.part
arquivo é o modelo de origem para essa seção das regras; é um mapeamento de modelo para símbolo (a!model = symbol
linha no início dessa seção; daí om_s
no nome do arquivo). A única outra seção específica do evdev das regras vem doevdev.m_k.part
arquivo, que é um mapeamento de modelo para códigos-chave (a!model = keycodes
seção das regras), e as diferenças são semelhantes.Para mais detalhes, consulte os códigos de teclas e arquivos de símbolos referenciados por essas regras (especialmente
/usr/share/X11/xkb/keycodes/evdev
e/usr/share/X11/xkb/symbols/inet
). Você pode estar interessado neste artigo sobre o formato de regras XKB .