xev and showkeys don’t notice that anything was pressed at all.
I saw Keyboard layout unable to recognize pipe, but the proposed solutions (hwdb file and/or setkeycodes) didn’t affect anything.
coreinfo shows firmware 4.6.500-gdd47634539-4.6-a86d1b-Purism-5
What I’ve tested:
- Pressing the keys: Nothing happens
- shift-pressing: Nothing happens
- Run “xev” to see if X sees anything at all: Gives output for other keys, but not these two.
- “showkeys” on the console: Same thing
- “showkeys -s” on the console: Same thing
- Run “xxd /dev/input/event0”: Gives output for other keys, but not these two.
- After rebooting trying the keys in GRUB’s command line editor: Nothing happens.
- Plugging in an external USB keyboard: That keyboard works fine.
Curiously with showkeys:
- holding down right shift says “keycode 54 press” once, then about a second later repeats that a whole bunch of times
- However pressing right shift and then holding down INT 2 (well, the “~#” key in UK layout) right after makes the “keycode 54 press” repeating not happen.
Similarly with “xxd /dev/input/event0” pressing INT 1 or INT 2 while holding shift stops the otherwise flow of data scrolling by…
What I take from this is that the hardware is noticing the key press, but is not generating scan codes (or whatever it’s called) to the OS. But I could be wrong.
I really hope this is a firmware problem that can be fixed. Is it maybe running a US keyboard firmware on a UK keyboard?
I tried following these instructions to upgrade coreboot, but seem to have gotten the same version string, and it didn’t fix the problem.
While waiting for an answer from Purism I remapped the menu key to \|:
sudo setkeycodes e05d 43
But that’s obviously not a solution.