Keyboard layout unable to recognize pipe


Unfortunately, This doesn’t work for me running Qubes 4.

In dom0, I created



Then ran

sudo systemd-hwdb update
sudo udevadm trigger

Don’t believe there’s a newline and I’ve used a single space before KEYBOARD_KEY.
Nothing seems to fix the issue and extremely frustrating.


After modifying the Librem version to 3 in 90-purism-pipe-symbol-fix.hwdb file that ewout/quban specified, I was FINALLY able to get the keys to work properly in Qubes 4.0

Solution that worked for me:
Create /etc/udev/hwdb.d/90-purism-pipe-symbol-fix.hwdb with the content:



sudo systemd-hwdb update
sudo udevadm trigger

Notice that the file contents specifies pnLibrem13v3* not pnLibrem13v2*


@ChrisD I found that it broke again after an dist-upgrade. I deleted the rc.local file, recreated these steps and it worked again. For me, this fix is still in place and working. I have, however, switched to stock Debian instead of PureOS, but previously had the problem on PureOS as well when I first wrote this. Best luck …


@dmgarland I found that the rc.local fix only works when used by itself. Try again without altering the *.hwdb and simply restarting after rc.local is created and granted proper permissions.


I’m curious why this is “more permanent” than editing rc.local @ewout as I and some others suggested. Can you explain? Is it because rc.local is considred legacy on Debian / PureOS?


Yep. systemd’s hwdb is what most (if not all) distro’s use for working around buggy/faulty input devices. The Purism keyboard fix has been upstreamed to systemd’s hwdb quite a while ago. Simply updating the system should be enough to fix the backslash key.


It seems, that the fix is just for the UK and US layout, the DE layout is still affected (me)


On my laptop, that was delivered this week, there is, in fact, a
entry in /lib/udev/hwdb.d/60-keyboard.hwdb for pnLibrem13v3.
Unfortunately, the pipe/backslash key on my keyboard sends less-than and greater-than symbols (even after a full apt update and reboot).

I am guessing that the keyboard or laptop model may have changed again … like to 13v4?? I see no documentation on how to discover these modalias keys required in the hwdb config files.

So I’ll be trying the setkeycodes fix instead.


I did find my laptop has a “v4” sticker on the bottom. I did not attempt to change the modalias key to use v4 instead of v3 because the setkeycodes fix is working so far.


The hwinfo command shows the modalias for the keyboard:

    $ sudo hwinfo |grep svnPuri
      E: MODALIAS=dmi:bvncoreboot:bvr4.8.1-Purism-4:bd01/16/2019:svnPurism:pnLibrem13v4:pvr4.0:rvnPurism:rnLibrem13v4:rvr4.0:cvnPurism:ct9:cvr:

So Purism has a bug in /lib/udev/hwdb.d/60-keyboard.hwdb. They updated the model key to rnLibrem13v4 but failed to add an entry to /lib/udev/hwdb.d/60-keyboard.hwdb.


This was right on the money. As a complete noob to Linux and qubes, I figure I’d go into a little more detail with the instructions so others like me don’t have to experience the same emotional roller coaster. I was able to create that file “/etc/udev/hwdb.d/90-purism-pipe-symbol-fix.hwdb” by using the command “sudo thunar” in the dom0 terminal emulator. Then I typed “sudo nano /etc/udev/hwdb.d/90-purism-pipe-symbol-fix.hwdb” into the terminal. It launches a cli text editor. I typed in the two lines ewout advised making sure there was a space before KEYBOARD_KEY_56=backslash. I have a Librem13v3 and I had to modify the line “evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism:pnLibrem13v2*” with “evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism:pnLibrem13v3*”. I hit enter, and ctrl+O to write the two lines in nano, then ctrl+X to exit. I typed the remaining two sudo commands in the terminal, and the | key started working immediately. Thanks to ewout and quban. :smile: