Cant type tilde (~) in terminals

Hello, I recently switched from Manjaro to EndeavourOS, everything working well so far except that one annoying issue, it seems I can’t type ~ in terminals.

I think it’s because for some reasons it’s waiting for a second key input when I type ~. Not sure I’m really clear, but basically it as the same behavior as the ^ key:

^ + e => ê
~ + e => ẽ

It worth noting I don’t have the issue when using the us keyboard layout. Is there any way to prevent this from happening ?

Here’s the full log from xev when I want to enter ~ with my layout, I thought it might help.


KeyPress event, serial 34, synthetic NO, window 0x5200001,
    root 0x55a, subw 0x0, time 5117468, (-484,749), root:(810,800),
    state 0x0, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x5200001,
    root 0x55a, subw 0x0, time 5117698, (-484,749), root:(810,800),
    state 0x80, keycode 61 (keysym 0xfe53, dead_tilde), same_screen YES,
    XLookupString gives 1 bytes: (7e) "~"
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: True

KeyRelease event, serial 34, synthetic NO, window 0x5200001,
    root 0x55a, subw 0x0, time 5117840, (-484,749), root:(810,800),
    state 0x80, keycode 61 (keysym 0xfe53, dead_tilde), same_screen YES,
    XLookupString gives 1 bytes: (7e) "~"
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x5200001,
    root 0x55a, subw 0x0, time 5117870, (-484,749), root:(810,800),
    state 0x80, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

and the one when using the us layout:

KeyPress event, serial 34, synthetic NO, window 0x5600001,
    root 0x55a, subw 0x0, time 5594649, (-25,358), root:(1269,409),
    state 0x2000, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x5600001,
    root 0x55a, subw 0x0, time 5594874, (-25,358), root:(1269,409),
    state 0x2001, keycode 49 (keysym 0x7e, asciitilde), same_screen YES,
    XLookupString gives 1 bytes: (7e) "~"
    XmbLookupString gives 1 bytes: (7e) "~"
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x5600001,
    root 0x55a, subw 0x0, time 5595032, (-25,358), root:(1269,409),
    state 0x2001, keycode 49 (keysym 0x7e, asciitilde), same_screen YES,
    XLookupString gives 1 bytes: (7e) "~"
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x5600001,
    root 0x55a, subw 0x0, time 5595117, (-25,358), root:(1269,409),
    state 0x2001, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

I guess the fix would be to force dead_tilde to become asciitilde but I have no idea how to achieve that.

I’m using spanish and latinamerican keyboard distributions and I only press space to get just the circumflex:

^ + [space] => ^

I guess it’ll be the same for you to get the tilde:

~ + [space] => ~

BTW, welcome aboard! :rocketa_purple:

Actually, it’s indeed how it’s working for any other text input, just not working in Kitty it seems, might be kitty-related I suppose

See if it can help :

My use case is weird, I wanted to keep the en_US locale but keep the be layout.

but indeed for some reasons, localectl set-locale LANG=fr_BE.UTF-8 solved my issue.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.