Resumo rápido dos vários níveis envolvidos:
Seu teclado gera códigos de verificação. Eles são mapeados pelas camadas de entrada do kernel para eventos keycode em /dev/input/eventX
. O driver X evdev
pega esses eventos e os converte em keyyms. Em seguida, a extensão XInput torna todos os eventos de escravos do teclado virtual disponíveis como eventos X normais, enquanto os outros eventos estão disponíveis apenas como eventos XInput.
Então você tem as seguintes opções:
1) Configure um scancode customizado para o mapeamento de código de tecla. Esses mapeamentos são por dispositivo, portanto, isso é realmente possível, mas isso é feito por meio de um IOCTL, e parece não haver ferramentas prontas para ele, a não ser o hwdb em udev
. Você pode então usar os novos keycides em xkb
. Ambos os teclados são mantidos como teclados principais.
2) Estenda xbindkeys
para entender os eventos XInput, para que você possa usá-lo para ligar eventos de um teclado não núcleo. Isso precisará de programação, mas deve ser relativamente simples. Neste caso, desacople um teclado do teclado central como você já fez.