Os códigos de teclas são numericamente diferentes: O valor do código-chave X é derivado da adição de 8 (o valor de MIN_KEYCODE
) ao código-chave da camada de entrada do Linux, como você pode ver na fonte evdev.c , linha 280. Além disso, eles são idênticos (mesma ordem, mesmo significado).
E o mapeamento de scancodes para keycodes é realmente feito por dispositivo de entrada , portanto não é "universal" nesse sentido: você pode conectar dois teclados USB ao computador e dar a cada teclado seu próprio mapeamento ( Engraçadamente, não parece ser um programa utilitário padrão para fazer isso. No entanto, os códigos de chaves resultantes serão os mesmos para o console Linux e X (ignorando a diferença numérica).