https://bugs.kde.org/show_bug.cgi?id=385765

            Bug ID: 385765
           Summary: Compose key creates garbage in QT5 applications, but
                    works correctly in at least some GTK applications
                    (e.g. Firefox)
           Product: kxkb
           Version: unspecified
          Platform: Archlinux Packages
                OS: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: NOR
         Component: general
          Assignee: unassigned-b...@kde.org
          Reporter: ree...@gmail.com
  Target Milestone: ---

Please note that I am not at all confident I'm reporting against the correct
product. If I am, I have no idea which version.

I'm using a new installation of Arch Linux (new hardware) with KDE. All
packages are drawn from the stable repositories. Plasma is 5.11.0. 

I'm trying to replicate treatment of the compose key by Plasma on my old
hardware. Both machines have a US keyboard with Euro.

I want AltGr for compose and caps lock for the third level chooser. However, I
would setting for ANY key working as compose, provided I can manage without it
for other purposes. I've tried using Caps Lock for compose, the win/menu key
and, I think, alt, one of the ctrls and probably some keys I don't even have. 

Whatever I configure, the keys work perfectly in Firefox and produce garbage in
Kile, Konsole and the test area of KDE settings itself.

~/.config/kxkbrc:

[Layout]
DisplayNames=
LayoutList=us(euro)
LayoutLoopCount=-1
Model=pc105
Options=compose:ralt+shift:breaks_caps+terminate:ctl_alt_bksp+shift:both_capslock+lv3:caps_switch+eurosign:5,lv3:caps_switch,compose:ralt,terminate:ctrl_alt_bksp,shift:both_capslock,shift:breaks_caps
ResetOldOptions=true
ShowFlag=false
ShowLabel=true
ShowLayoutIndicator=true
ShowSingle=false
SwitchMode=Global
Use=true

.local/share/kded5/keyboard/session/ is empty. However, it doesn't help even
when it has an .xml file in it.

/etc/environment:

#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
LANG=cy_GB.UTF-8
LANGUAGE=cy_GB:cy:en_GB:en
LC_COLLATE=C

/etc/X11/xorg.conf.d/00-keyboard.conf:

# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# instruct systemd-localed to update it.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us"
        Option "XkbModel" "pc105+inet"
        Option "XkbVariant" "euro"
        Option "XkbOptions"
"terminate:ctrl_alt_bksp+compose:ralt+shift:breaks_caps+shift:both_capslock+lv3:caps_switch"
EndSection

I've also tried with:
 * no configuration file for the keyboard in /etc/X11/xorg.conf.d and without
evdev installed (so libinput handled the keyboard);
 * with evdev installed and a file specifying the evdev driver (to override
/usr/share/X11/xorg.conf.d/40-libinput.conf and
/usr/share/X11/xorg.conf.d/10-evdev.conf) with various options and layouts.

localectl output:

   System Locale: LANG=cy_GB.UTF-8
                  LANGUAGE=cy_GB:cy:en_GB:en
                  LC_COLLATE=C
       VC Keymap: us
      X11 Layout: us
       X11 Model: pc105+inet
     X11 Variant: euro
     X11 Options:
terminate:ctrl_alt_bksp+compose:ralt+shift:breaks_caps+shift:both_capslock+lv3:caps_switch

locale output:

locale
LANG=cy_GB.UTF-8
LC_CTYPE="cy_GB.UTF-8"
LC_NUMERIC="cy_GB.UTF-8"
LC_TIME="cy_GB.UTF-8"
LC_COLLATE=C
LC_MONETARY="cy_GB.UTF-8"
LC_MESSAGES="cy_GB.UTF-8"
LC_PAPER="cy_GB.UTF-8"
LC_NAME="cy_GB.UTF-8"
LC_ADDRESS="cy_GB.UTF-8"
LC_TELEPHONE="cy_GB.UTF-8"
LC_MEASUREMENT="cy_GB.UTF-8"
LC_IDENTIFICATION="cy_GB.UTF-8"
LC_ALL=

printenv output:

KDE_MULTIHEAD=false
GS_LIB=/home/username/.fonts
KDE_FULL_SESSION=true
LS_COLORS=no=0:fi=34:di=35:ln=30:pi=33:so=36:bd=36:cd=36:ex=31:mi=05;34:or=05;30
SIMPLE_BACKUP_SUFFIX=.bkup
LINGUAS=cy en
UNISONLOCALHOSTNAME=MyComputer
ALL_LINGUAS=cy en
LANG=cy_GB.UTF-8
HISTCONTROL=erasedups
LESS=-X
PROFILEHOME=
DISPLAY=:0
SHELL_SESSION_ID=XXX
EDITOR=/usr/bin/vim
GPG_TTY=/dev/pts/7
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
XDG_VTNR=7
PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket
SSH_AUTH_SOCK=/run/user/1000/gnupg/S.gpg-agent.ssh
XDG_SESSION_ID=c3
USER=username
ENV=/home/username/.init/.shinit
PAGER=/usr/bin/less
DESKTOP_SESSION=/usr/share/xsessions/plasma
LC_COLLATE=C
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/username/.gtkrc-2.0:/home/username/.config/gtkrc-2.0
PWD=/home/username
HOME=/home/username
BROWSER=/usr/bin/xdg-open
XCURSOR_SIZE=0
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share
KONSOLE_DBUS_SESSION=/Sessions/8
XDG_SESSION_DESKTOP=KDE
SVN_BASH_COMPL_EXT=urls svnstatus recurse
SYSTEMD_PAGER=/usr/bin/less -FRX
GTK_MODULES=canberra-gtk-module
TERM=konsole-256color
SHELL=/bin/bash
KONSOLE_DBUS_SERVICE=:1.27
XDG_SESSION_CLASS=user
FRACTDIR=/home/username/.xfractint
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
FREETYPE_PROPERTIES=truetype:interpreter-version=38
XCURSOR_THEME=Oxygen_Blue
XDG_CURRENT_DESKTOP=KDE
KONSOLE_PROFILE_NAME=Shell
XDG_SEAT=seat0
SHLVL=3
COLORFGBG=15;0
LANGUAGE=en_GB
GTK_RC_FILES=/etc/gtk/gtkrc:/home/username/.gtkrc:/home/username/.config/gtkrc
WINDOWID=XXX
RECORDCOLORS=comment
LOGNAME=username
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/tmp/xauth-1000-_0
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
QT_AUTO_SCREEN_SCALE_FACTOR=0
PATH=/usr/local/texlive/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/username/bin
KDE_SESSION_UID=1000
PS1=\[$fymhrompt\]$SHLVL \w \u\$ \[$fynghonsole\]
KDE_SESSION_VERSION=5
SESSION_MANAGER=local/MyComputer:@/tmp/.ICE-unix/4351,unix/MyComputer:/tmp/.ICE-unix/4351
_=/usr/bin/printenv

Sample output from Konsole when I type ïŷ and some spaces:

 ��     

This is not a display or font issue. If I copy-paste the 'ïŷ' from the line
above into Konsole, the characters display correctly. The same is true in Kile.
Attempting to compile the source predictably results in the complaint that the
unicode character is not recognised.

I have confirmed that whichever key is set for compose does produce Multi_key -
even in the KDE applications where it fails so miserably to behave as expected.
So the issue seems to be with something which happens in the translation of
that key code into characters.

As far as I can tell, compose fails with all attempted combinations. In
particular, é fails (which I've seen reported to work in some 'partial problem'
bug reports). Nor is this the same problem as the bugs reported as causing the
compose key to be ignored. With no compose key, I get regular characters - not
garbage. 

I am more than willing to provide additional information as I am really quite
desperate. Although I can copy-paste characters from Firefox, that is a very
cumbersome and extremely distracting method and, if I don't look at the screen,
I'm liable to forget that the key does not work as I think it does when I'm
writing.

I do find this in the journal:

kdeinit5[4321]: kf5.kded: No X-KDE-DBus-ServiceName found in
"/usr/lib/qt/plugins/kf5/kded/keyboard.so"

However, kdeinit5 makes the same complaint about a long list of libraries, so
if this is the problem, I'm weirdly lucky anything else is working.

I also *sometimes* see

kdeinit5[4321]: org.kde.kcm_keyboard: Failed to open layout memory xml file for
reading "/home/username/.local/share/kded5/keyboard/session/layout_memory.xml"
error: 5

However, sometimes, this file is written and compose doesn't work any better in
that case.

Is it possible to tell Plasma/KDE just to not touch the keyboard configuration?
I tried deleting all the files I could find in my home configuration
directories, but that just caused the key for third-level chooser to be
ignored, as well. Right now, I'd like KDE to stay the heck away and not touch
it as the systemd configuration seems to do just fine. Whatever KDE is doing, I
would like to make it please to stop! However, there does not, unfortunately,
appear to be an option for this anywhere ....

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to