xev debería funcionar
Extraño, mi xev ofrece un evento KeyPress y KeyRelease para alt (y para la tecla de Windows, aquí llamada "super"):
KeyPress event, serial 40, synthetic NO, window 0xae00001,
root 0x2ca, subw 0x0, time 595467354, (98,77), root:(102,443),
state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0xae00001,
root 0x2ca, subw 0x0, time 595467453, (98,77), root:(102,443),
state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Y el de la derecha:
KeyPress event, serial 40, synthetic NO, window 0xae00001,
root 0x2ca, subw 0x0, time 595572876, (75,33), root:(79,399),
state 0x10, keycode 108 (keysym 0xffea, Alt_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0xae00001,
root 0x2ca, subw 0x0, time 595572972, (75,33), root:(79,399),
state 0x18, keycode 108 (keysym 0xffea, Alt_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Puedo ver dos posibilidades:
- Algo más es comer completamente la tecla presionada, o desenfocar la ventana cuando presionas alt. Intente ejecutar xev en un servidor X vacío (por ejemplo, simplemente ejecute
xinit -- :1
, lo que debería proporcionarle un servidor X con solo un xterm; ni siquiera habrá un administrador de ventanas ejecutándose. Salir de xterm cerrará la sesión).
- Acabas de perderte los dos eventos en la masa que arroja xev.
Una manera fácil, si sabes el nombre clave
Otra posibilidad: solo obtenga los códigos de clave de xmodmap:
anthony@Zia:~$ xmodmap -pk | grep -i alt
64 0xffe9 (Alt_L) 0xffe7 (Meta_L) 0xffe9 (Alt_L) 0xffe7 (Meta_L)
108 0xffea (Alt_R) 0xffe8 (Meta_R) 0xffea (Alt_R) 0xffe8 (Meta_R)
204 0x0000 (NoSymbol) 0xffe9 (Alt_L) 0x0000 (NoSymbol) 0xffe9 (Alt_L)
anthony@Zia:~$ xmodmap -pk | grep -i super
133 0xffeb (Super_L) 0x0000 (NoSymbol) 0xffeb (Super_L)
134 0xffec (Super_R) 0x0000 (NoSymbol) 0xffec (Super_R)
206 0x0000 (NoSymbol) 0xffeb (Super_L) 0x0000 (NoSymbol) 0xffeb (Super_L)
Hay 64 y 108 de nuevo. xmodmap -pm
le mostrará solo el mapa modificador, que también le da los números (aunque, esta vez, en hexadecimal).