Hello.
Since one of the recent fc28 updates (I'd say a month or two back, but
I can't be sure), I've noticed this issue, and it's getting rather
annoying.
I am using KDE, and I have a bunch of KWin shortcuts, for example,
Meta+F, that bring windows to front/back. I also have one of those
keyboards that replays macros (K55 if one's curious), so I have a key
that plays Meta+F back as a macro. It was working fine until at some
point it started, every now and again, to translate that macro to 'f',
rather than front/back event.
I thought it was my keyboard to blame, but I've finally got to test
this in xev, and it looks like the commands are being sent out
correctly, but the server sends 'f' event rather then whatever the
focus events that should be generated. I can't reproduce this by just
manually doing Win+F, but using a macro I can reproduce this rather
easily. It's required to press something other key, before firing the
macro. For example, a quick succession of "kkk<Macro>".
Below is the output from xev that I believe shows that the keyboard is
sending the events correctly. Any clue where to dig this further, or
what is responsible for remapping the key combinations to operations?
--------- Normal macro response: ---------
KeyPress event, serial 49, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398436459, (33,40), root:(729,633),
state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
FocusOut event, serial 49, synthetic NO, window 0x7e00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 49, synthetic NO, window 0x7e00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 49, synthetic NO, window 0x0,
keys: 2 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0
32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeyRelease event, serial 49, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398436499, (33,40), root:(729,633),
state 0x40, keycode 41 (keysym 0x66, f), same_screen YES,
XLookupString gives 1 bytes: (66) "f"
XFilterEvent returns: False
KeyRelease event, serial 49, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398436515, (33,40), root:(729,633),
state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
--------- 'f' "leaks" through: ---------
KeyPress event, serial 48, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398392858, (33,40), root:(729,633),
state 0x0, keycode 45 (keysym 0x6b, k), same_screen YES,
XLookupString gives 1 bytes: (6b) "k"
XmbLookupString gives 1 bytes: (6b) "k"
XFilterEvent returns: False
KeyRelease event, serial 48, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398393066, (33,40), root:(729,633),
state 0x0, keycode 45 (keysym 0x6b, k), same_screen YES,
XLookupString gives 1 bytes: (6b) "k"
XFilterEvent returns: False
MappingNotify event, serial 48, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 48, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398393308, (33,40), root:(729,633),
state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 49, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398393324, (33,40), root:(729,633),
state 0x40, keycode 41 (keysym 0x66, f), same_screen YES,
XLookupString gives 1 bytes: (66) "f"
XmbLookupString gives 1 bytes: (66) "f"
XFilterEvent returns: False
KeyRelease event, serial 49, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398393348, (33,40), root:(729,633),
state 0x40, keycode 41 (keysym 0x66, f), same_screen YES,
XLookupString gives 1 bytes: (66) "f"
XFilterEvent returns: False
KeyRelease event, serial 49, synthetic NO, window 0x7e00001,
root 0x1e0, subw 0x7e00002, time 398393364, (33,40), root:(729,633),
state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
--
With best of best regards
Pawel S. Veselov