You are not logged in.

#1 2023-05-15 16:58:17

effraie
Member
Registered: 2012-08-30
Posts: 66

where to report keymap bug in graphical terminals?

I experience a strange and mostly harmless bug in my graphical terminal, and i would like to report it. But i can't figure out where to do so

- i use fr_FR.UTF-8 as my system locale
- i export LC_ALL=en_US.UTF-8 to get error messages in english, and be able to google them

in any regular graphical application, i can press '+ c to get ç, but in all my graphical terminals, (xterm, alacritty and kitty), i get ć. TTY is fine.

i tried multiple things, like changing locales, but nothing seems to do the trick, so i believe that's a bug, and i'm looking for the correct place to report it. Xorg ? XDG ? each terminal bugtracker ? something else ?

Offline

#2 2023-05-15 18:40:21

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,063

Re: where to report keymap bug in graphical terminals?

The input isn't related to the locale.

setxkbmap -print -query

What is a "regular graphical application"?
Gtk? Qt?

If you "export GTK_IM_MODULE=xim" to it, does the "regular graphical application" now behave like the TEs?

What's the output if you run "xev -event keyboard" and press type '+c ?

Offline

#3 2023-05-15 23:39:17

effraie
Member
Registered: 2012-08-30
Posts: 66

Re: where to report keymap bug in graphical terminals?

I initialy was trying to fix the lack of accentuation in the terminal (moved LC_ALL from C to en_US.UTF-8), and spotted that weird issue during that process

xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete"	};
	xkb_symbols   { include "pc+us(alt-intl)+inet(evdev)+capslock(swapescape)+compose(rwin)"	};
	xkb_geometry  { include "pc(pc105)"	};
};
rules:      evdev
model:      pc105
layout:     us
variant:    alt-intl
options:    caps:swapescape,compose:rwin

it's ok in any application but graphical terminal, as far as i can see. i mostly use gtk apps, but the few qt and electron i use are also ok. TTY is fine. The issue is only in graphical terminals.


export GTK_IM_MODULE=xim  has no visible effect

xev -event keyboard
Outer window is 0x3200001, inner window is 0x3200002

KeymapNotify event, serial 24, synthetic NO, window 0x0,
    keys:  130 0   0   0   16  0   0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

KeyRelease event, serial 25, synthetic NO, window 0x3200001,
    root 0x798, subw 0x0, time 676205, (-642,354), root:(516,387),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False

KeyPress event, serial 28, synthetic NO, window 0x3200001,
    root 0x798, subw 0x0, time 684305, (-642,354), root:(516,387),
    state 0x0, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: True

KeyRelease event, serial 28, synthetic NO, window 0x3200001,
    root 0x798, subw 0x0, time 684409, (-642,354), root:(516,387),
    state 0x0, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XFilterEvent returns: False

KeyPress event, serial 28, synthetic NO, window 0x3200001,
    root 0x798, subw 0x0, time 685878, (-642,354), root:(516,387),
    state 0x0, keycode 54 (keysym 0x63, c), same_screen YES,
    XLookupString gives 1 bytes: (63) "c"
    XmbLookupString gives 1 bytes: (63) "c"
    XFilterEvent returns: True

KeyPress event, serial 28, synthetic NO, window 0x3200001,
    root 0x798, subw 0x0, time 685878, (-642,354), root:(516,387),
    state 0x0, keycode 0 (keysym 0x1000107, U0107), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 2 bytes: (c4 87) "ć"
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x3200001,
    root 0x798, subw 0x0, time 685998, (-642,354), root:(516,387),
    state 0x0, keycode 54 (keysym 0x63, c), same_screen YES,
    XLookupString gives 1 bytes: (63) "c"
    XFilterEvent returns: False

Offline

#4 2023-05-16 07:33:20

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,063

Re: where to report keymap bug in graphical terminals?

XmbLookupString gives 2 bytes: (c4 87) "ć"

Which is normal for atl-intl

key <AC11> { [ dead_acute, dead_diaeresis, apostrophe,    quotedbl	    ] };

and
/usr/share/X11/locale/en_US.UTF-8/Compose and some /usr/share/X11/locale/fr_FR.UTF-8/Compose isn't provided by libX11 nor any other package.
But the default GTK IM handles that the way you describe it (so your GTK_IM_MODULE=xim attempt somehow failed)

~/.XCompose

include "/usr/share/X11/locale/en_US.UTF-8/Compose"
<dead_acute> <c>                        : "ç"   U0107 # LATIN SMALL LETTER C WITH CEDILLA

should™ get you the desired behavior everywhere (in processes started after the change)

Since you're apparently typing french on a qwerty keyboard, you can look around in /usr/share/X11/locale/en_US.UTF-8/Compose for other things you may want to alter.
This has no impact on GTK applications (and possibly Qt using the gtk platform theme) unless you properly "export GTK_IM_MODULE=xim"

Offline

Board footer

Powered by FluxBB