No keysyms send on level 7+

Adam Nielsen a.nielsen at shikadi.net
Wed Sep 9 00:19:38 UTC 2020


> I have remapped
> `CapsLock` to `Backspace`
> `AltGr` to `ControlR`
> `ControlR` to `AltR`,
> 
> Now if i type one of the next sequences, it will be well interpreted :
> • `ControlR` + `AltR` + `Backspace`
> • `ControlR` + `AltL` + `Backspace`
> • `ControlL` + `AltR` + `Backspace`
> 
> However if I type this one :
> • `AltL` + `ControlR` + `Backspace`
> 
> xev will not see any input.
> This one definitivly make me think it’s the firmware fault.

If I understand correctly, you are saying that ControlR + AltL works,
but the reverse (AltL + ControlR) does not.  It could be a firmware
issue however it's also possible it can be a keymap issue.

For example I have mapped ShiftL + AltR to be the Compose key.  This
means when I use these two keys together, the order is important.  If I
press ShiftL first then AltR I get the Compose key event, but if I
press AltR first then ShiftL then I get the Alt+Shift layer active.

The reason is that when you press the first key in the combination,
that key's shift level gets activated.  You then need to make sure the
second key in the combination has an entry in that shift level in order
to reach the target.

It sounds like you may have an entry in the ControlR level for what to
do when AltL is pressed, but you may not have an entry in the AltL
level for what to do when ControlR is pressed.

> The same scheme apply with small variations on others keys, for
> example if I type `c` instead of backspace `Backspace` and add `Shift` to the
> combinaisons, the exact same behavior happens.

If you want to know for sure if it is a keyboard/firmware problem,
change the mapping to some other keys.  Instead of mapping AltGr to
ControlR, map say ShiftR to ControlR instead.  If you try a few
different key mappings and you still have the same problem, it is more
likely to be your layout at fault rather than the hardware.

> Is it something relatively common to found such a keyboard which
> can’t take much combinaisons ?

The combinations you have - two modifiers + letter - should work on
pretty much any keyboard.  If you were using a non-modifier key then
you could run into issues after holding 2-3 keys depending on the
keyboard design.

You can also look into tools that dump Linux evdev events.  This would
allow you to see the key press / key release events at the kernel
level.  A firmware problem would mean that at some point pressing a key
won't generate an evdev event, but if you are seeing evdev events but
no Xorg key event, then it means it's definitely an issue with your Xorg
keymap.

Cheers,
Adam.


More information about the xorg mailing list