![]() |
| One of my Kinesis Advantage with blank key caps |
Having moved recently to archlinux with i3 as my window manager I no longer have graphical keyboard settings tools installed.
xev to the rescue!
xev is a command line tool that prints the contents of events in the X Window System:
KeyPress event, serial 54, synthetic NO, window 0x1a00001,
root 0x289, subw 0x0, time 2834169, (-425,551), root:(539,599),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 54, synthetic NO, window 0x1a00001,
root 0x289, subw 0x0, time 2834272, (-425,551), root:(539,599),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 54, synthetic NO, window 0x1a00001,
root 0x289, subw 0x0, time 2834682, (-425,551), root:(539,599),
state 0x0, keycode 47 (keysym 0x3b, semicolon), same_screen YES,
XLookupString gives 1 bytes: (3b) ";"
XmbLookupString gives 1 bytes: (3b) ";"
XFilterEvent returns: False
KeyRelease event, serial 54, synthetic NO, window 0x1a00001,
root 0x289, subw 0x0, time 2834777, (-425,551), root:(539,599),
state 0x0, keycode 47 (keysym 0x3b, semicolon), same_screen YES,
XLookupString gives 1 bytes: (3b) ";"
XFilterEvent returns: False
KeyPress event, serial 54, synthetic NO, window 0x1a00001,
root 0x289, subw 0x0, time 2838923, (-425,551), root:(539,599),
state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 54, synthetic NO, window 0x1a00001,
root 0x289, subw 0x0, time 2838994, (-425,551), root:(539,599),
state 0x1, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MotionNotify event, serial 32, synthetic NO, window 0x1e00001,
root 0x289, subw 0x0, time 8794435, (20,392), root:(1304,440),
state 0x0, is_hint 0, same_screen YES
MotionNotify event, serial 32, synthetic NO, window 0x1e00001,
root 0x289, subw 0x0, time 8794447, (1,393), root:(1285,441),
state 0x0, is_hint 0, same_screen YES
LeaveNotify event, serial 32, synthetic NO, window 0x1e00001,
root 0x289, subw 0x0, time 8794458, (-16,393), root:(1268,441),
mode NotifyNormal, detail NotifyNonlinear, same_screen YES,
focus YES, state 0
KeyPress event, serial 32, synthetic NO, window 0x1e00001,
root 0x289, subw 0x0, time 8795156, (-83,393), root:(1201,441),
state 0x0, keycode 42 (keysym 0x67, g), same_screen YES,
XLookupString gives 1 bytes: (67) "g"
XmbLookupString gives 1 bytes: (67) "g"
XFilterEvent returns: False
KeyRelease event, serial 32, synthetic NO, window 0x1e00001,
root 0x289, subw 0x0, time 8795235, (-83,393), root:(1201,441),
state 0x0, keycode 42 (keysym 0x67, g), same_screen YES,
XLookupString gives 1 bytes: (67) "g"
XFilterEvent returns: False
The interesting lines are the ones with the keycode and symbol:
... state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, ...
No more blind key remaps :)
