Você está fazendo várias suposições erradas: que X ignora o udev (não o faz); que o udev intervém diretamente nos mapeamentos de teclado (ele apenas os configura, além de ser a atuação do kernel); esse X é baseado no Linux (ele roda em outras variantes unix também).
O Udev desempenha apenas um papel muito limitado no manuseio do teclado: ele detecta modelos de teclado específicos e declara suas chaves específicas do fornecedor. O Udev não atua em teclas padrão como A e F1 , apenas em chaves específicas do fornecedor como Brilho acima ou Wifi ligado / off (normalmente marcado por ícones). Essas chaves geralmente não são usadas pelo aplicativo, mas mapeadas para eventos da ACPI.
O kernel do Linux possui seu próprio esquema de mapeamento para as chaves usuais, que você pode definir com o comando loadkeys
. Se você tiver vários teclados conectados, as configurações realizadas pelo udev serão específicas de um teclado, enquanto loadkeys
atuará no mapa de teclado do kernel global.
Os mapeamentos de teclado do kernel não cobrem quase todas as nuances oferecidas pelo X. Então, o X tem seu próprio esquema e, na maior parte, ignora as configurações do kernel. O X leva em consideração os mapeamentos específicos do teclado através do udev.