HP Elitebook Phone Hangup key to Insert mapping for Linux
I've bought HP Elitebook 745 g5 notebook. It has all Arrows, PgUp/PgDn and Home/End buttons (not trivail in out time).
But I've missed to check for Insert.
There are 3 multimedia buttons Display, Answer, Hangup instead of NumLock, Break and Insert. I don't use NumLock and Break,
but Insert is vitally required.
Usually it is not a problem to remap
keys with input-remapper, but not in this case. Keyboard sends the following sequences for single key press:
||Scan code sequence
||Ctrl_L + Alt_L + Screen
||Ctrl_L + Answer + Meta_L
||Ctrl_L + Alt_L + Hangup
So, maping Hangup to Insert gives Ctrl_L + Alt_L + Insert. It's not what I want. If I map entire Ctrl_L + Alt_L + Insert to Insert
there is no way to use Ctrl + Insert or Alt + Insert sequences. It is not acceptable too.
I've inspected actual key code sequences with evtest and found that the only difference
between normal (user-psessed) and keyboard-generated Ctrl+Alt sequence is timing. Keyboards sends codes with delay about 0.1ms, while humans press buttons significantly
slower. I've found Disable CapsLock filter and adopted it for my case. Quickly received key code sequences corresponding
to Display, Answer, Hangup are mapped, while human-presses Ctrl, Alt and Meta are kept untouched. And Hangup button is now correcetly mapped to Insert
Since v1.0-2 added mapping for ScrollLock and Pause/Break
Download and unpack archive hp-ins-1.0-3.amd64.tar.gz
Identify your keyboard, smth. like this:
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
H: Handlers=sysrq kbd event4 leds
It means that your event device is /dev/input/event4
sudo ./install.sh /dev/input/event4
sudo systemctl status hp_ins
Note: configuration is stored in /etc/hp_ins.conf
sudo systemctl disable hp_ins
sudo systemctl stop hp_ins
You can just run sudo ./hp_ins -v /dev/input/event4 to see if everything is ok before installing.
Native HP solution
FN+R = Break
FN+S = Sys Rq
FN+C = Scroll Lock
FN+E = Insert
FN+W = Pause
Fixed bug with unexpected Ctrl/Alt release after Ctrl/Alt + Insert/ScrollLock/Pause sequence
Added Scroll Lock and Pause/Break buttons
First version, maps only Insert button
or mail alterX@alter.org.ua (remove X)