Resumo muito breve de como a entrada do teclado funciona no Linux:
Os eventos de teclado das camadas inferiores de hardware são passados para a camada de entrada do kernel do Linux e disponibilizados em /dev/input/eventX
device nodes. O servidor X lê esses eventos e os converte em eventos do teclado X, que são passados para aplicativos gráficos em execução no X.
Então você pode
-
atribua os dois teclados a diferentes servidores X
-
atribua os dois teclados a diferentes "lugares", que geralmente incluem teclado / mouse / display, e podem ou não usar diferentes servidores X
-
desacople um teclado do "core keyboard" com
xinput
e tenha um aplicativo que entenda a extensão Xinput diretamente dos eventos do teclado X (a maioria dos aplicativos não pode fazer isso). -
desacople o servidor X do nó
/dev/input/eventX
, comxinput
, configuração ou "agarrando" o dispositivo para acesso exclusivo (tenteevtest --grab
), e então faça o aplicativo processar de alguma forma a entrada eventos de nível direto (que a maioria dos aplicativos não pode).
No final, depende muito do aplicativo que deseja usar o teclado "independente". Configurar dois servidores X, um deles "aninhado" de alguma forma ( Xpra
, Xephyr
etc.), pode ser a maneira mais fácil.