Keyboard layout unable to recognize pipe


I have had exactly the same issue as you (Librem 13v2 UK edition). I remember running into this problem when I originally installed Arch Linux on my machine and I found a solution but forgot what I did. I just switched to Manjaro [*] and had to figure it out again.

It’s all flooding back to me as I type this so sorry for the ramble. Basically the ‘fixes’ that Purism have pushed to upstream Systemd are actually the problem. I now recall that I previously believed this was due to them being a fix for the US layout keyboard which has the knock-on effect of breaking the UK layout one. I can’t remember how I arrived at that conclusion but it seems possible.

  • If you look in /lib/udev/hwdb.d/60-keyboard.hwdb (around line 1140) you can see the Purism keyboard settings. Comment those out.

  • Delete the /etc/udev/hwdb.d/90-purism-pipe-symbol-fix.hwdb file you added, reboot, everything works.

  • If you now run showkey and press the backslash key it will show up as keycode 86. (You might need to e.g. Ctrl+Alt+F2 to get to a new virtual terminal if you’re in a graphical environment and showkey doesn’t work. Ctrl-Alt-F7 or Ctrl-Alt-F8 will probably get you back to your graphical environment depending on your setup.)

When I first made the change to the file under /lib, I thought it would be overwritten during an update and wouldn’t be a permanent solution but that never happened. Maybe Pacman doesn’t overwrite user-edited files or maybe there just wasn’t an update to Systemd in that time which changed that file. Either way, there’s probably a better method but I’m not invested in finding it since it now works and will become future me’s problem if it ever breaks. [**]

Also I found out today that you can type \ by holding Alt Gr and pressing -. Similarly, you can type | by holding Alt Gr and pressing `. I don’t know if that’s common knowledge.

[*] Apparently at random, sometimes (often) when I wake the machine from sleep the damn fans crank up to full speed and the CPU throttles down to 400MHz. This isn’t even fixed with a reboot, you have to fully shut down the machine then start it up again. Never found a fix. I assumed it was something to do with my Arch system being incorrectly configured but the problems seems to exist on Manjaro too… It’s probably time to contact support.

[**] TODO: does setting KEYBOARD_KEY_56=86 in /etc/udev/hwdb.d/90-purism-pipe-symbol-fix.hwdb work?

I just received a warranty replacement for my 13v4.
And the keyboard has changed again.
New /sys/class/dmi/id/modalias


Note the “_” after rnlibrem
I changed my /sys/class/dmi/id/modalias to


the keyboard didn’t change, just the workaround/remapping was based on something more fragile than expected (the hardware board name)

1 Like