No Pipe Symbol on Purism with Qubes R4.0

Remarks

Hello, I am running a Purism Librem 13 version 3 with Qubes R4.0. The Pipe Symbol is functional in Dom0. It does not work in Whonix (presents a > symbol); and does the same in Fedora based qubes. I’ve tried Alt-124 without success. Keyboard layout is setup for Generic 105-key (Intl) PC; English(US).

localectl status in Dom0:
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us

localectl status in Debian-10 Template:
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
NB: I ran $sudo localectl set-keymap --no-convert us and the VC keymap changed to us. That said, even with a reboot, the VC Keymap stuck but I still can’t get a Pipe.

Attachments

@lunatuna it seems you’re missing the HCL report .yml file as instructed:

To add as an attachment you can just drag and drop it over the forum’s text editor.

Hi @lunatuna,

welcome to Qubes OS :clap:

I suggest you explore this problem with two (old school) Xorg programs:

  • xev displays the mouse/keyboard events.
  • xmodmap manage the keyboard layout.

xev

Launch it with the xev command in a terminal, later you’ll exit it with Ctrl-c in the terminal.

Move your mouse pointer to the new small white background window. In the terminal, you’ll see all mouse events and, more important for you, all the keyboard events. If you press the pipe key, you will see a lot of information, including the keycode of the key.

Example on a my non-us keyboard:

key press/release output
KeyPress event, serial 32, synthetic NO, window 0x1000001,
    root 0x3aa, subw 0x0, time 3944439, (-509,363), root:(362,842),
    state 0x90, keycode 15 (keysym 0x7c, bar), same_screen YES,
    XLookupString gives 1 bytes: (7c) "|"
    XmbLookupString gives 1 bytes: (7c) "|"
    XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x1000001,
    root 0x3aa, subw 0x0, time 3944519, (-509,363), root:(362,842),
    state 0x90, keycode 15 (keysym 0x7c, bar), same_screen YES,
    XLookupString gives 1 bytes: (7c) "|"
    XFilterEvent returns: False

On my keyboard, the keycode is 15 and the associated character is | (0x7c). But how the keyboard keycode link to this character? See the next section.

xmodmap

Launch it with the xmodmap -pk, it will display the current mapping layout of your keyboard.

Example:

     15         0x002d (minus)  0x0036 (6)      0x002d (minus)  0x0036 (6)      0x007c (bar)    0x1002011 (U2011)       0x007c (bar)    0x1002011 (U2011)

On my layout, the 15 keycode returns the 0x007c (bar) character, but also other characters (minus, 6, bar, U2011) with the help of the modifiers (xmodmap display the modifiers).

What’s next?

Read:

  • the xmodmap man page
  • the Xmodmap ArchLinux wiki page
2 Likes

Hello Ludovic,
regret delay in response and thank you for your suggestions.
xev told me that my bar/backslash key has keycode 94, keysym 0x3e, greater
xmodmap -pk told me that my keyboard mapping includes:
51 0x005c (backslash) 0x007c (bar) 0x005c (backslash) 0x007c (bar)

I went back to xev and typed every key on the keyboard and 51 never appeared for any key. It came close with “Z” as 52 and Right-shift as 50. Just enough to tease me.

Hmmm. The tilde appears in place of the greater symbol. xev tells me that this is keycode 91, keysym 0xff9f, KP_Delete. I checked which keyboard Qubes is set for and it states: Generic 105-key (Intl) PC; English (US).

Hello again,
just wanted to add that I’ve changed the keyboard to 104 international and the tilde is no longer a problem. That said, <> are found both to the right of “M” and in the same key that should be \ and |. Interestingly, I checked dom0 and the keyboard is working properly there.

Hi @lunatuna,
read the above suggested archlinux wiki xmodmap page, it explains how to change the mapping for just a key (example for you: add the 0x007c bar to the keycode 94).