Description
Originally posted here: #4 (comment)
@pronobis @philipl
This is very much what I need!
So I'd really like to see the changes from @pronobis merged.
#4
I quickly hacked a way to handle N:N mappings:
https://github.com/pronobis/evdevremapkeys
Just one thing is left for me:
I need to handle keys which emit a unique scancode, plus additional scancodes which overlap with other keys.
I took some time to extend the changes made by @pronobis to fit my needs.
Feel free to have a look at it and give me feedback:
https://github.com/kolAflash/evdevremapkeys/commits/master
Background:
I got some strange keys on my HP EliteBook 735 G6 notebook. They emit multiple keycodes at the same time (less than 10 milliseconds):
LEFTCTRL + LEFTALT + F13
LEFTCTRL + LEFTALT + F14
LEFTCTRL + LEFTMETA + F15
LEFTCTRL + LEFTALT + F16
I remapped those keys to HOME, END, PAGEUP and PAGEDOWN.
(KEY_LEFTALT, KEY_LEFTCTRL, KEY_F13):
- KEY_HOME
(KEY_LEFTALT, KEY_LEFTCTRL, KEY_F14):
- KEY_END
(KEY_LEFTALT, KEY_LEFTMETA, KEY_F15):
- KEY_PAGEUP
(KEY_LEFTALT, KEY_LEFTCTRL, KEY_F16):
- KEY_PAGEDOWN
This works perfect, except I actually want to press LEFTCTRL + HOME.
Sadly there's seems to be no indicator if the "real" LEFTCTRL has been pressed or not.
P.S.
Only take the following into account if you want all details.
It's mostly confusing and shouldn't be helpful to consider.
The third keycode is actually an unknown keycode. But I use /etc/udev/hwdb.d/90-custom-keyboard.hwdb
to remap it to a known key.
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
KEYBOARD_KEY_64=f13
KEYBOARD_KEY_65=f16
KEYBOARD_KEY_66=f15
KEYBOARD_KEY_6d=f14
Side note: Find some related stuff here.
https://h30434.www3.hp.com/t5/Business-Notebooks/remap-special-keys-with-Linux-presentation-start-call-end/td-p/7610721
https://h30434.www3.hp.com/t5/Business-Notebooks/left-CTRL-key-gets-logically-virtually-stuck-sometimes-Alt/m-p/7639737#M159561