Você pode usar a pequena ferramenta xev
.
É um testador de eventos e vai começar a abrir uma pequena janela branca onde detecta eventos de mouse e teclado. Ele imprimirá a saída para o console.
Por exemplo uma barra invertida me dá a seguinte saída:
KeyPress event, serial 37, synthetic NO, window 0x2600001,
root 0x4a9, subw 0x0, time 1190007, (62,493), root:(1747,545),
state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 37, synthetic NO, window 0x2600001,
root 0x4a9, subw 0x0, time 1190519, (62,493), root:(1747,545),
state 0x90, keycode 20 (keysym 0x5c, backslash), same_screen YES,
XLookupString gives 1 bytes: (5c) "\"
XmbLookupString gives 1 bytes: (5c) "\"
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x2600001,
root 0x4a9, subw 0x0, time 1190671, (62,493), root:(1747,545),
state 0x90, keycode 20 (keysym 0x5c, backslash), same_screen YES,
XLookupString gives 1 bytes: (5c) "\"
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x2600001,
root 0x4a9, subw 0x0, time 1190815, (62,493), root:(1747,545),
state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XFilterEvent returns: False
O primeiro evento é a tecla modificadora que tenho que pressionar no teclado. A segunda é a chave real em que a barra invertida está. Em seguida, siga os dois eventos de lançamento.