You are not logged in.
I'm using an external numpad for laptops that don't have one built-in. The device uses independent numlock design, which means if the host numlock state is different from its own, it would quickly toggle numlock on and off as you type. When using this thing under Linux desktop, there appears to some strong debouncing behavior and quick double taps get recognized as one.
Below is the xev sequence if I double tap Num_7 quickly. It's basically NumLock - KP_7 - NumLock, so only one KP_7 stroke gets registered.
MappingNotify event, serial 37, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 37, synthetic NO, window 0x3e00001,
root 0xe5, subw 0x0, time 170122, (-526,30), root:(757,358),
state 0x0, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x3e00001,
root 0xe5, subw 0x0, time 170129, (-526,30), root:(757,358),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x3e00001,
root 0xe5, subw 0x0, time 170137, (-526,30), root:(757,358),
state 0x10, keycode 79 (keysym 0xffb7, KP_7), same_screen YES,
XLookupString gives 1 bytes: (37) "7"
XmbLookupString gives 1 bytes: (37) "7"
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x3e00001,
root 0xe5, subw 0x0, time 170153, (-526,30), root:(757,358),
state 0x10, keycode 79 (keysym 0xffb7, KP_7), same_screen YES,
XLookupString gives 1 bytes: (37) "7"
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x3e00001,
root 0xe5, subw 0x0, time 170162, (-526,30), root:(757,358),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x3e00001,
root 0xe5, subw 0x0, time 170322, (-526,30), root:(757,358),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: FalseNow double tap on the same key, but very slowly. It's basically NumLock - KP_7 - NumLock - NumLock - KP_7 - NumLock, which is the expected behaivor.
MappingNotify event, serial 37, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 37, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 206609, (155,-52), root:(866,318),
state 0x0, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 206617, (155,-52), root:(866,318),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 206625, (155,-52), root:(866,318),
state 0x10, keycode 79 (keysym 0xffb7, KP_7), same_screen YES,
XLookupString gives 1 bytes: (37) "7"
XmbLookupString gives 1 bytes: (37) "7"
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 206657, (155,-52), root:(866,318),
state 0x10, keycode 79 (keysym 0xffb7, KP_7), same_screen YES,
XLookupString gives 1 bytes: (37) "7"
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 206665, (155,-52), root:(866,318),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x4200001,
atom 0x19a (_NET_WM_ICON_GEOMETRY), time 206807, state PropertyNewValue
KeyRelease event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 206825, (155,-52), root:(866,318),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x4200001,
atom 0x19a (_NET_WM_ICON_GEOMETRY), time 207060, state PropertyNewValue
KeyPress event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 209793, (155,-52), root:(866,318),
state 0x0, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 209801, (155,-52), root:(866,318),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 209809, (155,-52), root:(866,318),
state 0x10, keycode 79 (keysym 0xffb7, KP_7), same_screen YES,
XLookupString gives 1 bytes: (37) "7"
XmbLookupString gives 1 bytes: (37) "7"
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x4200001,
atom 0x19a (_NET_WM_ICON_GEOMETRY), time 209824, state PropertyNewValue
KeyRelease event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 209849, (155,-52), root:(866,318),
state 0x10, keycode 79 (keysym 0xffb7, KP_7), same_screen YES,
XLookupString gives 1 bytes: (37) "7"
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 209857, (155,-52), root:(866,318),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4200001,
root 0xe5, subw 0x0, time 210017, (155,-52), root:(866,318),
state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x4200001,
atom 0x19a (_NET_WM_ICON_GEOMETRY), time 210070, state PropertyNewValueThis problem is only limited to X. Under other TTYs it's working as expected, so the device is doing its job. Under X, I've tried Gnome and XFCE, both with the keyboard debouncing options turned off.
The issue does not appear if both the host and the device has numlock on. In that case the numpad would only send the pressed keys without numlock toggles, and no matter how fast I tap it gets picked up. It appears that only the numlock key triggers debouncing behavior.
What is messing with my keys and how do I turn it off?
Last edited by Balto (2015-02-08 07:38:30)
Offline