TECHGEAR Active Strike Pro Bluetooth keyboard - wrong char mappings
I use a TECHGEAR Active Strike Pro
BT keyboard which paires fine with my L5 and my Ubuntu mobile phone BQ E4.5, but the key layout does not work on the L5, mostly for upper case chars. I have here what the both devices give when typing the upper row of physical keys with SHIFT:
BQ device: ! " £ $ % ^ & * ( ) _ +
L5 device: ! " # $ % & / ( ) = ? ¡
With the Ubuntu devices it gives as chars what is printed on the physical keys.
I investigated a bit:
I used the X11 tool xev
to sniff what the keys are generating, here only for the physical key which is labeled with =
(lowercase) and +
(uppercase):
DISPLAY=:0 xev | tee -a xev.out
This gives for the key =
/ +
:
KeyPress event, serial 35, synthetic NO, window 0x800001,
root 0x512, subw 0x800002, time 230474, (39,35), root:(39,67),
state 0x0, keycode 21 (keysym 0xbf, questiondown), same_screen YES,
XLookupString gives 2 bytes: (c2 bf) "¿"
XmbLookupString gives 2 bytes: (c2 bf) "¿"
XFilterEvent returns: False
and together with SHIFT:
KeyPress event, serial 35, synthetic NO, window 0x800001,
root 0x512, subw 0x800002, time 269343, (39,35), root:(39,67),
state 0x1, keycode 21 (keysym 0xa1, exclamdown), same_screen YES,
XLookupString gives 2 bytes: (c2 a1) "¡"
XmbLookupString gives 2 bytes: (c2 a1) "¡"
XFilterEvent returns: False
If I now run:
DISPLAY=:0 xmodmap -e "keycode 21 = equal plus"
it gives:
KeyPress event, serial 32, synthetic NO, window 0x800001,
root 0x512, subw 0x800002, time 348519, (39,35), root:(39,67),
state 0x0, keycode 21 (keysym 0x3d, equal), same_screen YES,
XLookupString gives 1 bytes: (3d) "="
XmbLookupString gives 1 bytes: (3d) "="
XFilterEvent returns: False
and togethet with SHIFT
KeyPress event, serial 35, synthetic NO, window 0x800001,
root 0x512, subw 0x800002, time 376107, (39,35), root:(39,67),
state 0x1, keycode 21 (keysym 0x2b, plus), same_screen YES,
XKeysymToKeycode returns keycode: 35
XLookupString gives 1 bytes: (2b) "+"
XmbLookupString gives 1 bytes: (2b) "+"
XFilterEvent returns: False
i.e. the physical key gives what it has as labels on it. Ofc, this works only in any X11 application, for example, I tested the (new installed) xterm, but not in the terminal app of the L5.
So, the question (or bug) is: where in Debian / PureOS is the mapping of such BT keyboard (wrong)defined?