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)

1 Like

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.

1 Like

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:


I’ve had a similar problem, but with the librem v4 of course. I’m wondering if we should just make that wildcard pnLibrem13v* instead of pnLibrem13v3*

i have to test and see if that actually works, still.

well, I can pretty much guarantee that the 13v5 won’t have this issue :slight_smile:

1 Like

weeeell… we’re already two revisions later, so allow me to doubt you a little here. :stuck_out_tongue:

I think the last two revision were rather minor. Possibly the component in question was never updated.

no, we’re still using the exact same board/EC (which is where the problem is). We won’t be for v5

where do i sign up and can i swap that into my v4? :slight_smile:

I expect it will be a completely different chassis/board design, and so not retrofittable into an existing v2/v3/v4 chassis.


Updating the system does not fix it - FYI. Clean install about a month back - still using my fix. @ewout

I can’t seem to get the fix to work an a new installation of manjaro linux. The commands below ilustrate what i’ve done

$ cat /etc/udev/hwdb.d/90-purism-pipe-symbol-fix.hwdb
$ sudo systemd-hwdb update
$ sudo udevadm trigger

Yet when i press the backslash key it still comes up as a # and pipe is ~
I’m using a Purism Librem 13v2 UK edition

Sorry as this has probably already been asked but i’ve probably missed something simply anyone know where i went?


$ cat /sys/class/dmi/id/modalias