tl; dr: No Linux, você deve usar as regras evdev
. Como diz no guia XKB, você vincula:
On Linux systems, the evdev rules are most commonly used, on other systems the base rules are used.
A diferença é em grande parte histórica. evdev
é o subsistema moderno de entrada do kernel do Linux e não existia quando o XKB foi escrito pela primeira vez. Se você olhar o código-fonte para xkeyboard-config , verá que evdev
e% As regrasbase
são geradas a partir (principalmente) dos mesmos modelos. Compare os arquivos gerados no banco de dados do seu sistema XKB com diff
, no entanto. Você verá muitas entradas nas quais as regras base
carregam inet
símbolos para modelos de teclado específicos, enquanto as regras evdev
eliminam a maioria dessas entradas específicas de modelo e carregam um conjunto mais generalizado:
/usr/share/X11/xkb/rules/base:
[...]
! model = symbols
a4techKB21 = +inet(media_nav_common)
asus_laptop = +inet(media_common)
acer_tm_800 = +inet(acer_laptop)
benqx730 = +inet(benqx)
btc9116u = +inet(btc9019u)
chromebook = +inet(chromebook)
dellsk8125 = +inet(dell)
// and about 50 more lines
// generated from xkeyboard-config/rules/base.m_s.part
/usr/share/X11/xkb/rules/evdev
[...]
! model = symbols
$evdevkbds = +inet(evdev)+inet(%m)
chromebook = +inet(evdev)+inet(chromebook)
applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys)
* = +inet(evdev)
// ...that's all.
// generated from xkeyboard-config/rules/evdev.m_s.part
Não, na verdade, essa é toda a seção modelo-para-símbolos das regras evdev
, enquanto a versão base
tem 60 linhas ímpares. O arquivo evdev.m_s.part
é o modelo de origem para essa seção das regras; é um mapeamento de modelo para símbolo (a linha !model = symbol
no início dessa seção; portanto, o m_s
no nome do arquivo). A única outra seção específica do evdev das regras vem do arquivo evdev.m_k.part
, que é um mapeamento de códigos modelo-para-tecla (a seção !model = keycodes
das regras) e as diferenças são semelhantes.
Para mais detalhes, consulte os arquivos códigos de teclas e símbolos referenciados por essas regras (especialmente /usr/share/X11/xkb/keycodes/evdev
e /usr/share/X11/xkb/symbols/inet
). Você pode estar interessado em este writeup do formato de regras XKB .