You are not logged in.

#1 2017-10-14 05:00:13

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Compose key fails in QT apps in KDE & all (?) apps in LWM session

I want AltGr to be mapped to 'compose' i.e. right alt should map to Multi_key.

This works fine. I can configure the behaviour through either Plasma's GUI configuration tool or using

setxkbmap -option compose:ralt

In fact, my keyboard currently maps almost everything to Multi_key as a result of my increasingly desperate efforts to type ä.

The problem is that, although I can type ä in GTK applications, such as Firefox, I get garbage if I do the same in a QT application such as Konsole or Kile. In console, xev confirms that the key is correctly registered as Multi_key, so that doesn't seem to be the problem.

Nor is the problem simply one of displaying the characters. If I open an existing document in Kile which contains a é, it works fine. (I happened to find this character first.) If I copy the character into another document, it displays fine. If I type AltGr > ' > e, I get garbage.

As far as I can tell, this means the compose key is doing something - this isn't what I'd get without a compose key. But it is outputting something far different from the characters I expect.

There are no complaints triggered in the journal or dmesg. (That is, KDE spews voluminous complaints, but typing é doesn't trigger anything additional.)

I couldn't find anything on the Plasma wiki page and I seem to have exhausted the suggestions I found for configuring compose elsewhere in the wiki (but I don't know if I found everything as I think I've gone in circles). Nor did a web search bring enlightenment, likely because I don't know what or where the problem is.

Any suggestions for debugging this would be great. I'm sure I've done something stupid, because I configured this with no trouble on my previous machine. (Just ticked the box in the settings panel and fiddled a bit with xev to get keycodes, as far as I recall.)

Last edited by cfr (2017-10-16 01:19:43)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#2 2017-10-14 07:39:29

seth
Member
Registered: 2012-09-03
Posts: 49,977

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

https://bugreports.qt.io/browse/QTBUG-56452 ?

Though AltGr is a particualiry nasty choice because it's also the (regular) 3rd level shift (with a track record of weird behavior) - also ensure gtk doesn't use ibus or something.
=> does it work with "compose:caps"

Online

#3 2017-10-14 12:12:33

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

Hmm. I'm not sure it is the same problem. Nothing works with compose for me.

Though AltGr is a particualiry nasty choice because it's also the (regular) 3rd level shift (with a track record of weird behavior) - also ensure gtk doesn't use ibus or something.
=> does it work with "compose:caps"

No. It makes no difference which key I set for compose: they work in GTK apps but not QT apps. I tried most of the modifier keys I've got. (Although I'm confused about which key is 'meta' and what 'hyper' and 'super' are for.)

I actually only use AltGr because I originally thought that was standard.

I don't seem to have a third-level chooser by default. At least, I can't figure out how to get the Euro.

Last edited by cfr (2017-10-14 12:15:38)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#4 2017-10-14 13:15:05

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

I've tried swapping the caps and AltGr (so caps is now compose and AltGr is the third-level chooser), creating layouts in the KDE config and installing xf86-input-keyboard. Works great in Firefox. Works not at all in QT applications.

The journal includes the following

Hyd 13 13:17:09 MyComputer kernel: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
Hyd 13 13:17:10 MyComputer systemd-logind[519]: Watching system buttons on /dev/input/event4 (AT Translated Set 2 keyboard)
Hyd 13 13:17:21 MyComputer kdeinit5[1078]: kf5.kded: No X-KDE-DBus-ServiceName found in "/usr/lib/qt/plugins/kf5/kded/keyboard.so"
Hyd 13 13:17:25 MyComputer kdeinit5[1078]: 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

which seems potentially relevant, but I'm not sure how to fix it.

.config/kxkbrc:

[Layout]
DisplayNames=,,
LayoutList=eu,us,gb
LayoutLoopCount=-1
Model=pc101
Options=,terminate:ctrl_alt_bksp,altwin:left_meta_win,shift:breaks_caps,shift:both_capslock,compose:caps,lv3:ralt_switch,eurosign:5
ResetOldOptions=true
ShowFlag=false
ShowLabel=true
ShowLayoutIndicator=true
ShowSingle=false
SwitchMode=Global
Use=true

However, .local/share/kded5/keyboard/session/ remains empty.

.local/share/kded5/:
total 12
drwxr-xr-x  3 username username 4096 Hyd   3 01:01 ./
drwxr-xr-x 26 username username 4096 Hyd  10 23:03 ../
drwxr-xr-x  3 username username 4096 Hyd   3 01:01 keyboard/

.local/share/kded5/keyboard:
total 12
drwxr-xr-x 3 username username 4096 Hyd   3 01:01 ./
drwxr-xr-x 3 username username 4096 Hyd   3 01:01 ../
drwxr-xr-x 2 username username 4096 Hyd   3 01:01 session/

.local/share/kded5/keyboard/session:
total 8
drwxr-xr-x 2 username username 4096 Hyd   3 01:01 ./
drwxr-xr-x 3 username username 4096 Hyd   3 01:01 ../

I don't really understand the suggestion in the linked bug report to switch to ibus. I looked at the wiki page yesterday, but I thought ibus was intended for much more radical changes to the keyboard mapping, such as those required to input Chinese on a US/UK keyboard.


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#5 2017-10-14 13:37:58

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

I too have the same issue on a Fluxbox system without any GTK*. My Compose key works in xterm, but not in qt5 apps.

Offline

#6 2017-10-14 14:20:33

seth
Member
Registered: 2012-09-03
Posts: 49,977

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

"Worksforme"
https://wiki.archlinux.org/index.php/In … talling.29

printenv

Wild guess: try replacing libinput with evdev - /etc/X11/xorg.conf.d/11-keyboard.con

Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard	"yes"
    Option	        "XkbLayout" "de" # choose your layout
    Option              "XkbVariant" "deadgraveacute"  # choose your variant
    Option		"XkbModel" "evdev"
    Option		"XkbOptions" "terminate:ctrl_alt_bksp,compose:caps"
    Option		"XkbRules" "xorg"
    Option		"XkbKeycodes" "evdev"
    Driver		"evdev"
EndSection

Online

#7 2017-10-14 14:22:37

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

fluxboxer wrote:

I too have the same issue on a Fluxbox system without any GTK*. My Compose key works in xterm, but not in qt5 apps.

Do you get warnings about DBUS, too?


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#8 2017-10-14 15:35:39

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

cfr wrote:
fluxboxer wrote:

I too have the same issue on a Fluxbox system without any GTK*. My Compose key works in xterm, but not in qt5 apps.

Do you get warnings about DBUS, too?

No.

Offline

#9 2017-10-14 15:41:33

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

@cfr

You seemingly do not want to achieve your goal via AltGr instead of Compose, right?

Offline

#10 2017-10-14 16:59:07

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

fluxboxer wrote:

@cfr

You seemingly do not want to achieve your goal via AltGr instead of Compose, right?

What do you mean? I'd like to use AltGr as the compse key, ideally.


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#11 2017-10-14 17:07:54

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

Do you mean that you set this variable in addition to the evdev config below?

Wild guess: try replacing libinput with evdev - /etc/X11/xorg.conf.d/11-keyboard.con

Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard	"yes"
    Option	        "XkbLayout" "de" # choose your layout
    Option              "XkbVariant" "deadgraveacute"  # choose your variant
    Option		"XkbModel" "evdev"
    Option		"XkbOptions" "terminate:ctrl_alt_bksp,compose:caps"
    Option		"XkbRules" "xorg"
    Option		"XkbKeycodes" "evdev"
    Driver		"evdev"
EndSection

I tried

#
# based on extract from default evdev config to match keyboard only
# ref.: https://bbs.archlinux.org/viewtopic.php?pid=1742739#p1742739

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Option "XkbLayout" "eu"
        Option "XkbModel" "evdev"
        Option "XkbOptions" "terminate:ctrl_alt_bksp,altwin:left_meta_win,shift:breaks_caps,shift:both_capslock,eurosign:5,compose:ralt,lv3:caps_switch"
        Option "XkbRules" "xorg"
        Option "XkbKeycodes" "evdev"
        Driver "evdev"
EndSection

However, this is not, so far a great success. In both GTK and QT applications, AltGr now seems to be mapped to Enter, the arrow keys do strange things (one seems to be mapped to PrtSc) and PrtSc seems to be mapped to Delete.. PgUp prints a forward slash, PgDn triggers a context menu and so on ....


#
# based on extract from default evdev config to match keyboard only
# ref.: https://bbs.archlinux.org/viewtopic.php?pid=1742739#p1742739

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Option "XkbOptions" "terminate:ctrl_alt_bksp,altwin:left_meta_win,shift:breaks_caps,shift:both_capslock,eurosign:5,compose:ralt,lv3:caps_switch"
        Driver "evdev"
EndSection

works better, in that things are not mapped as weirdly. Also, it gets compose working in GTK apps again. However, the third-level chooser is broken and I'm back to garbage when I use compase in QT apps.

Last edited by cfr (2017-10-14 17:16:32)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#12 2017-10-14 18:13:59

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

cfr wrote:

What do you mean? I'd like to use AltGr as the compse key, ideally.

Sorry for saying the obvious, as you probably have your own reasons to use AltGr as Compose key, but I enter many/same characters by using AltGr as AltGr (it's not Compose in my usage). For instance I enter, say, ] by just AltGr+7 and } by just AltGr+Shift+7. To be able to do this I've customised my /usr/share/X11/xkb/symbols/XY layout file like so:

key <AE07>	{ [         7,  parenright,    bracketright,   braceright ]	};

I keep my customised layout file in ~/Public and I upgrade Arch by

sudo pacman -Syyu && qtc

qtc is a bash alias for replacing any possible updated layout file with my customised one in ~/Public.

Offline

#13 2017-10-14 20:07:03

seth
Member
Registered: 2012-09-03
Posts: 49,977

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

No, I meant to provide your environment variables smile
(Most notably of course those relating Qt and input, but also GTK plugins might be interesting)

Online

#14 2017-10-14 22:02:10

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

seth wrote:

No, I meant to provide your environment variables smile

Ah, of course. Sorry. It was the juxtaposition of the link which confused me.

Environment:

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=c2
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.28
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/1099,unix/MyComputer:/tmp/.ICE-unix/1099
_=/usr/bin/printenv

localectl:

localectl 
   System Locale: LANG=cy_GB.UTF-8
                  LANGUAGE=cy_GB:cy:en_GB:en
                  LC_COLLATE=C
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc101
     X11 Variant: euro
     X11 Options: compose:ralt+shift:breaks_caps+terminate:ctl_alt_bksp+shift:both_capslock+lv3:caps_switch+eurosign:5

Is it possible to just stop KDE interferring?!


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#15 2017-10-14 22:58:57

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

fluxboxer wrote:
cfr wrote:

What do you mean? I'd like to use AltGr as the compse key, ideally.

Sorry for saying the obvious, as you probably have your own reasons to use AltGr as Compose key, but I enter many/same characters by using AltGr as AltGr (it's not Compose in my usage). For instance I enter, say, ] by just AltGr+7 and } by just AltGr+Shift+7. To be able to do this I've customised my /usr/share/X11/xkb/symbols/XY layout file like so:

key <AE07>	{ [         7,  parenright,    bracketright,   braceright ]	};

You shouldn't modify files in system directories. You should override them with configuration files in /etc or your home directory.

I guess we have very different keyboards. I either have a key for those symbols, or I can get them with a simple shift.

The third-level chooser is useful for the Euro, but beyond that, I find it impossible to know how to access any symbol it might give me anyway. AltGr is ideally located for producing accented characters. (OK, it would be nicer if it were nearer the number 6 for the circumflex, which I probably need *most* often, but  no modifier is anywhere near that - it is most inconsiderately located in the centre of the top row.)

But, to be honest, I'd be happy enough to use a different key for compose, if that would work. But it is just the same no matter which I choose.

sudo pacman -Syyu && qtc

.

Why would you do this routinely? -Syu should be sufficient. The other y just puts an unnecessary demand on the servers.

Last edited by cfr (2017-10-14 23:00:03)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#16 2017-10-15 04:08:54

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

https://askubuntu.com/questions/619815/ … -dead-keys seems to be related, but I'm not sure it is the same problem. However, something is wiping out LANGUAGE altogether. locale returns:

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=

while localectl returns

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

I tried setting everything using localectl so it produced a fresh /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

It isn't using evdev, probably, but I don't know if that's good or bad. I don't know if evdev was related to my inability to wake the thing from sleep after KDE slept the system while I nipped to the loo. Sleep *was* completely unproblematic ...

I don't know if this is a bug or, if so, what in, but I'm desperate enough to have reported anyway: https://bugs.kde.org/show_bug.cgi?id=385765.


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#17 2017-10-15 10:35:48

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

Thanks for the tips.

The third-level chooser is useful for the Euro, but beyond that, I find it impossible to know how to access any symbol it might give me anyway.

Why not?

key <XXXX>	{ [         a,  A,    acircumflex,   Acircumflex ]	};
key <XXXX>	{ [         e,  E,    ecircumflex,   Ecircumflex ]	};
key <XXXX>	{ [         o,  O,   ocircumflex,   Ocircumflex ]	};
…

.

AltGr+a = â
Shift+AltGr+a = Â

Last edited by fluxboxer (2017-10-15 10:54:09)

Offline

#18 2017-10-15 10:43:11

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

Well, you need all those accents as well? Then you'd better change your language!

Offline

#19 2017-10-15 11:00:35

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

Sorry for my first misleading post. My Compose key works; it does not work with multiple characters, I can't print "fluxboxer" for instance, but I can print ⌘ etc.

Offline

#20 2017-10-15 14:02:50

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

fluxboxer: I just don't use these enough. It is easier for me to use the compose key method, which is simple and memorable.

The accented characters I need most are ï and the circumflex on all vowels. In particular, I need ŵ and ŷ. These are easy to get with the compose key.

I don't see any reason to suggest I should change my language. I obviously input characters differently from you, but I don't see that my preferences here are wrong.

And your suggested key sequences don't work with the third-level chooser for me - not out-of-the-box, anyway.

Last edited by cfr (2017-10-15 14:05:43)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#21 2017-10-15 14:09:05

fluxboxer
Member
Registered: 2012-12-02
Posts: 118

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

I don't see any reason to suggest I should change my language. I obviously input characters differently from you, but I don't see that my preferences here are wrong.

It was meant to be just a silly joke. Anyway, sorry for the noise, I'll shut up.

Offline

#22 2017-10-15 14:30:02

seth
Member
Registered: 2012-09-03
Posts: 49,977

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

Since fluxboxer's issue seemed to be a red herring (multichar input via xim is no expectable feature and doesn't work with most clients) I'd suggest to try the behavior outside a KDE session (openbox, icewm, fluxbox ... ;-)
Maybe also ensure not only a shell issue (ie. did you try this with anything but console, eg. the oxygen UI demo?)

Online

#23 2017-10-15 23:36:01

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

seth wrote:

Since fluxboxer's issue seemed to be a red herring (multichar input via xim is no expectable feature and doesn't work with most clients) I'd suggest to try the behavior outside a KDE session (openbox, icewm, fluxbox ... ;-)
Maybe also ensure not only a shell issue (ie. did you try this with anything but console, eg. the oxygen UI demo?)

Well, it fails in Kile and not just Konsole - is that what you mean?

OK, so I tried the following configuration in /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.

# hacked gan cfr
# ref.: man pages for xorg.conf.d xkeyboard-config (and some more, i think)

Section "InputClass"
        Identifier "cfr evdev keyboard"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        MatchProduct "AT Translated Set 2 keyboard"
	Option "XkbLayout" "us"
        Option "XkbModel" "pc105+inet"
        Option "XkbVariant" "euro"
        Option "XkbOptions" "terminate:ctrl_alt_bksp+eurosign:5+compose:caps"
        Driver "evdev"
EndSection

I then booted to CLI and used startx with an ~/.xinitrc starting xterm and lwm.

Result: compose key has no effect in xterm or firefox. Hitting CapsLock just puts everything in caps.

A test with xev shows that the key is correctly recognised as Caps_Lock (if I've remembered the exact name, correctly - something very like this, anyway). That is, it does not send Multi_key at all in this case and compose therefore fails even in a GTK app like firefox.

The X11 log (in my home directory, obviously, as I've not used a display manager) shows that 'cfr evdev keyboard' is applied to the 'AT Translated Set 2 keyboard' correctly and that the options set in XkbOptions are applied. I assume this is correct, too, because these options leave AltGr as third-level chooser and the eurosign option results in the Euro being correctly produced when third-level shift is active: €.

So the problem is not, basically, QT related - although a full desktop environment does *something* extra, clearly, as the result are differently incorrect there in Kile and Konsole, but correct in firefox.

I'm now lost completely.

Why is the basic setup not working as I expect in a stripped-down X session? And what is different in a full DE to make it work in firefox, but twist the output to garbage in QT apps such as Kile and Konsole?

I must be missing some crucial configuration step or package.

I got a list of packages from a backup of /var/cache/pacman from my old machine and compared it with the list on my current machine. (Not perfect as not everything is installed, of course, but I hoped to find some likely culprit. However, I can't find anything which leaps out as having any relevance to this problem.

It can't be hardware, I don't think: the buttons on the keyboard are recognised as sending the correct signals. It's something I've done, not done or misdone somewhere ....

Here's a list of package differences (edited a little to, hopefully reflect some changes I made after creating the list). - is a package not currently installed, but present in cache on my old setup. + is one currently installed and not present in cache on my old setup (and so not installed there).

-a2ps
-a52dec
-abs
+accountsservice
-acpi
+acpi_call
+acpi_call-lts
-alsa-utils
-antlr2
-appmenu-qt
-appmenu-qt4
-arandr
-arch-firefox-search
+archlinux-appstream-data
-archlinux-menus
-archlinux-wallpaper
-archlinux-xdg-menu
-ark
-audiofile
-autoconf-archive
-automoc4
-baloo-widgets
-bash-docs
-bibutils
-bind-tools
-blas
-bluez-utils
-breeze-kde4
-bsdiff
-cabextract
-cairo-infinality-ultimate
-catdoc
-cblas
-cdrkit
-cdrtools
-celestia
-celt
-cfitsio
-cfv
-chromaprint
+chrony
-clang
-classpath
-cln
-cloog
-cmake
-coin-or-cbc
-coin-or-cgl
-coin-or-clp
-coin-or-coinutils
-coin-or-mp
-coin-or-osi
-colord
-confuse
-cpio
-cvs
-dcadec
-dialog
+dhcpcd
-ding-libs
+discover
-dmidecode
-dmxproto
-dolphin
-dolphinpart4
-dos2unix
-dot2tex
-dotconf
-doxygen
-dragon
-dstat
-enca
-espeak
-ethtool
-evemu
-eventlog
-extra-cmake-modules
-faac
-faad2
-festival
-festival-english
-ffmpeg2.8
-ffmpegthumbs
-fig2dev
-flam3
-flashplugin
-fluidsynth
+font-mathematica
-fontconfig-infinality-ultimate
-foomatic-db
-foomatic-db-gutenprint
-foomatic-db-gutenprint-ppds
-foomatic-db-nonfree
-foomatic-db-nonfree-ppds
-foomatic-db-ppds
-freeglut
-freetype2-infinality-ultimate
-fuse
-fuseiso
-gamin
-gcc-libs-multilib
-gcc-multilib
-gcc-objc
-gcolor2
+gcc
+gcc-libs
-gegl
-gendesk
-geoclue
-geoclue2
-geoip
-geoip-database
-gifsicle
-gimp-help-en
-girara
+gimp-help-en_gb
-glib2-docs
-glpk
-gnome-common
-gnome-doc-utils
-gnu-netcat
+gnu-free-fonts
-gobject-introspection
-gobject-introspection-runtime
-gpart
-gpgmepp
-grantlee-qt5
-graphene
-grml-zsh-config
-grub
-gssproxy
-gst-libav
-gst-plugins-bad
-gst-plugins-good
-gst-plugins-ugly
-gstreamer0.10
-gstreamer0.10-base
-gstreamer0.10-base-plugins
-gstreamer0.10-ffmpeg
-gtk-doc
-gtk-engine-murrine
-gtk-sharp
-gtk3-print-backends
-gtkglext
-gutenprint
-gutenpy
-gv
-hardinfo
-hddtemp
-hdf5
-help2man
-hfsprogs
-htdig
-htop
-hunspell-en
-hunspell-en_US
-hwinfo
-hyphen-en
+i2c-tools
-iasl
-ibfonts-meta-base
-ibfonts-meta-extended
-ibfonts-meta-extended-lt
-icedtea-web-doc
-icon-naming-utils
-icoutils
-idnkit
-iftop
-ifuse
-imagemagick-doc
-imlib
-imlib2
-incron
-intel-tbb
-intltool
-inxi
-iotop
-ipython
-itstool
-java-commons-logging
-java-environment-common
-jdk8-openjdk
-jdk8-openjdk-infinality
-jre8-openjdk
-jre8-openjdk-headless
-jre8-openjdk-headless-infinality
-jre8-openjdk-infinality
-js17
-json-c
-jsoncpp
-kamera
-katepart4
-kde-meta-kdeaccessibility
-kdeaccessibility-jovie
-kdeaccessibility-kaccessible
-kdeaccessibility-kmag
-kdeaccessibility-kmousetool
-kdeaccessibility-kmouth
-kdebase-kdialog
-kdebase-keditbookmarks
-kdebase-kfind
-kdebase-konq-plugins
-kdebase-konqueror
-kdebase-lib
-kdeedu-data
-kdegraphics-mobipocket
-kdegraphics-okular
-kdegraphics-svgpart
-kdemultimedia-juk
-kdemultimedia-mplayerthumbs
-kdepimlibs4
-kdesignerplugin
-kdeutils-superkaramba
-kdewebkit
-kdiff3
-keditbookmarks
-kfilemetadata4
-kfind
-kipi-plugins
+kirigami2
-kmag
-kmousetool
-konqueror
-konsolepart4
-kpartsplugin
-kplotting
-krename
-kross
-kruler
-kstars
+ksshaskpass
-ktikz
+kwallet-pam
+kwayland-integration
-kwordquiz
-ladspa
-lapack
-laptop-mode-tools
+latex2html
+latex2rtf
-lib32-acl
-lib32-alsa-lib
-lib32-alsa-plugins
-lib32-atk
-lib32-attr
-lib32-bzip2
-lib32-cairo
-lib32-curl
-lib32-dbus
-lib32-e2fsprogs
-lib32-elfutils
-lib32-expat
-lib32-fakeroot
-lib32-flac
-lib32-fontconfig
-lib32-fontconfig-infinality-ultimate
-lib32-freetype2
-lib32-freetype2-infinality-ultimate
-lib32-gcc-libs
-lib32-gdk-pixbuf2
-lib32-glib2
-lib32-glibc
-lib32-glu
-lib32-gmp
-lib32-gnutls
-lib32-gtk2
-lib32-harfbuzz
-lib32-icu
-lib32-json-c
-lib32-keyutils
-lib32-krb5
-lib32-lcms2
-lib32-libasyncns
-lib32-libcanberra
-lib32-libcap
-lib32-libcroco
-lib32-libcups
-lib32-libcurl-compat
-lib32-libdatrie
-lib32-libdbus
-lib32-libdbusmenu-qt
-lib32-libdrm
-lib32-libelf
-lib32-libffi
-lib32-libgcrypt
-lib32-libglvnd
-lib32-libgpg-error
-lib32-libice
-lib32-libidn
-lib32-libjpeg-turbo
-lib32-libldap
-lib32-libltdl
-lib32-libmng
-lib32-libogg
-lib32-libpciaccess
-lib32-libpng
-lib32-libpsl
-lib32-libpulse
-lib32-librsvg
-lib32-libsm
-lib32-libsndfile
-lib32-libssh2
-lib32-libtasn1
-lib32-libthai
-lib32-libtiff
-lib32-libtxc_dxtn
-lib32-libvdpau
-lib32-libvorbis
-lib32-libx11
-lib32-libxau
-lib32-libxcb
-lib32-libxcomposite
-lib32-libxcursor
-lib32-libxdamage
-lib32-libxdmcp
-lib32-libxext
-lib32-libxfixes
-lib32-libxft
-lib32-libxi
-lib32-libxinerama
-lib32-libxml2
-lib32-libxrandr
-lib32-libxrender
-lib32-libxshmfence
-lib32-libxslt
-lib32-libxt
-lib32-libxtst
-lib32-libxv
-lib32-libxxf86vm
-lib32-llvm-libs
-lib32-lm_sensors
-lib32-mesa
-lib32-mesa-libgl
-lib32-mesa-vdpau
-lib32-ncurses
-lib32-nettle
-lib32-openssl
-lib32-p11-kit
-lib32-pango
-lib32-pcre
-lib32-pixman
-lib32-qt4
-lib32-readline
-lib32-sni-qt
-lib32-sqlite
-lib32-systemd
-lib32-tdb
-lib32-util-linux
-lib32-v4l-utils
-lib32-wayland
-lib32-xz
-lib32-zlib
-libakonadi-qt4
-libao
-libart-lgpl
-libbaloo4
-libcaca
+libcanberra-pulse
-libcddb
-libcdio
-libcdio-paranoia
-libcurl-compat
-libdbi
-libdbus
-libdbusmenu-glib
-libdbusmenu-gtk2
-libdbusmenu-gtk3
-libdc1394
-libdca
-libdmx
-libdv
-libdvbpsi
-libdvdnav
-libdvdread
-libebml
-libfdk-aac
-libftdi
-libftdi-compat
-libgdiplus
-libgexiv2
-libgme
-libgphoto2
-libgssglue
-libgusb
-libid3tag
-libieee1284
-libindi
-libindicator-gtk2
-libindicator-gtk3
-libirman
-libkactivities4
-libkate
-libkdcraw4
-libkdeaccessibilityclient
-libkeduvocdocument
-libkexiv2_4
-libkipi4
-libksane4
-libkscreen4
-libmad
-libmatroska
+libmbim
-libmms
-libmp4v2
-libmpcdec
-libmpeg2
-libmythes
-libnova
-libopenraw
+libpng12
-libqaccessibilityclient
+libpwquality
-libqzeitgeist
+libqmi
-libreoffice-extension-texmaths
-librpcsecgss
-librsync
-libshout
-libsidplay
-libspeechd
-libsrtp
-libsynctex
-libtar
-libtiger
-libupnp
-libusb-compat
-libuv
-libva-intel-driver
-libwlocate
-libwlocate-r267.e7bf51f
-libx264-all
-libx86emu
+libx86
-libxxf86dga
-linux-docs
-linux-headers
-linux-manpages
-lirc
-llvm35-libs
-loudmouth
-lshw-B.02.17
+lsb-release
-lsof
-lua51
-lucene
-lwp
-lynx
+lwm
-mcelog
-mcpp
-mesa-demos
-mesa-libgl
-mesa-vdpau
-metis
-mimetex
-mjpegtools
-monaco-linux-font
-mono
+mobile-broadband-provider-info
+modemmanager
+modemmanager-qt
-mpg123
-mplayer
-mtools
-mupdf
-mythes-en
-ncdu
-net-tools
-netcdf
+netpbm
-nfs-utils
-nfsidmap
-nilfs-utils
-nopaste
-nototools-git20160719
-nss-mdns
-ntp
-obconf
-ocaml
-openbox
-openbox-themes
-opengl-man-pages
-openjpeg
-otf-aileron-ibx
-otf-alegreya-ibx
-otf-alegreya-sans-ibx
-otf-aleo-ibx
-otf-andada-ibx
-otf-arsenal-ibx
-otf-berenis-pro-ibx
-otf-bitter-ibx
-otf-blogger-sans-ibx
-otf-bravo-ibx
-otf-buenard-ibx
-otf-cantarell-ib
-otf-cooper-hewitt-ibx
-otf-crimson-text-ibx
-otf-ebgaramond-ibx
-otf-enriqueta-ibx
-otf-erewhon-ibx
-otf-exo2-ibx
-otf-fanwood-ibx
-otf-fira-mono-ibx
-otf-fira-sans-ibx
-otf-inconsolatazi4-ibx
-otf-latin-modern-ibx
-otf-league-gothic-ibx
-otf-libre-baskerville-ibx
-otf-libre-caslon-ibx
-otf-linden-hill-ibx
-otf-linux-libertine-ibx
-otf-lobster-two-ibx
-otf-magra-ibx
-otf-melthofonts-ib
-otf-montserrat-ibx
-otf-oswald-ib
-otf-permian-family-ibx
-otf-pfeffer-mediaeval-ibx
-otf-quintessential-ib
-otf-raleway-ibx
-otf-scada-ibx
-otf-sinkin-sans-ibx
-otf-sorts-mill-goudy-ibx
-otf-tex-gyre-ib
-otf-tex-gyre-math-ibx
-otf-titillium-ibx
-otf-unb-pro-ibx
-otf-vollkorn-ibx
-otf-yanone-kaffeesatz-ibx
-oxygen-icons-svg
-oxygen-kde4
-p7zip
-pam_pwcheck
-pangox-compat
-parley
-partimage
+pastebinit
-pdf2djvu
+pcsclite
+pepper-flash
-perl-b-hooks-endofscope
-perl-class-accessor
-perl-class-accessor-chained
-perl-class-data-inheritable
-perl-class-inspector
-perl-class-load
-perl-class-singleton
-perl-crypt-passwdmd5
-perl-data-optlist
-perl-datetime
-perl-datetime-event-ical
-perl-datetime-event-recurrence
-perl-datetime-format-ical
-perl-datetime-locale
-perl-datetime-set
-perl-datetime-timezone
-perl-devel-stacktrace
-perl-digest-sha1
-perl-dist-checkconflicts
-perl-encode-locale
-perl-eval-closure
-perl-exception-class
-perl-exporter-tiny
-perl-file-basedir
-perl-file-listing
-perl-file-sharedir
-perl-file-sharedir-install
-perl-file-which
-perl-font-ttf
-perl-freezethaw
-perl-html-parser
-perl-html-tagset
-perl-http-cookies
-perl-http-daemon
-perl-http-date
-perl-http-message
-perl-http-negotiate
-perl-ical-parser
-perl-inc-latest
-perl-io-html
-perl-io-socket-ssl
-perl-io-string
-perl-ipc-system-simple
-perl-libwww
-perl-list-allutils
-perl-list-moreutils
-perl-list-someutils
-perl-list-utilsby
-perl-locale-gettext
-perl-lwp-mediatypes
-perl-lwp-protocol-https
-perl-math-round
-perl-module-build
-perl-module-implementation
-perl-module-runtime
-perl-mozilla-ca
-perl-mro-compat
-perl-namespace-autoclean
-perl-namespace-clean
-perl-net-http
-perl-net-ssleay
-perl-package-deprecationmanager
-perl-package-stash
-perl-package-stash-xs
-perl-params-classify
-perl-params-util
-perl-params-validate
-perl-params-validationcompiler
-perl-role-tiny
-perl-scalar-list-utils
-perl-set-infinite
-perl-specio
-perl-sub-exporter
-perl-sub-exporter-progressive
-perl-sub-identify
-perl-sub-install
-perl-sub-name
-perl-term-readkey
-perl-test-fatal
-perl-text-vfile-asdata
-perl-tk
-perl-try-tiny
-perl-uri
-perl-variable-magic
-perl-www-robotrules
-perl-xml-parser
-perl-xml-sax-expat
-perl-xml-simple
-perl-yaml
-phonon-qt4-vlc
-pinfo
-pkgstats
+plasma-meta
+plasma-nm
+plasma-pa
+plasma-sdk
+plasma-vault
-po4a
-poppler-data
-portaudio
-powertop
-print-manager
+ppp
-prison-frameworks
-protobuf
-pth
+pulseaudio-gconf
-pv
-pygmentize
-pygobject-devel
-pyqt4-common
-python-appdirs
-python-babel
-python-beaker
-python-beautifulsoup4
-python-cairo
-python-chardet
-python-cssselect
-python-decorator
-python-docutils
-python-fonttools
-python-gobject
-python-html2text
-python-html5lib
-python-idna
-python-imagesize
-python-jinja
-python-lxml
-python-mako
-python-markupsafe
-python-numpy
-python-packaging
-python-path
-python-pexpect
-python-pickleshare
-python-prompt_toolkit
-python-ptyprocess
-python-pycups
-python-pycurl
-python-pygments
-python-pyparsing
-python-pyqt4
-python-pyqt5
-python-pysmbc
-python-pytz
-python-qscintilla-qt4-common
-python-requests
-python-setuptools
-python-sip
-python-six
-python-snowballstemmer
-python-sphinx
-python-sphinx-alabaster-theme
-python-sphinx_rtd_theme
-python-traitlets
-python-urllib3
-python-wcwidth
-python-webencodings
-python-xlib
-python2-asn1crypto
-python2-attrs
-python2-automat
-python2-beaker
-python2-beautifulsoup3
-python2-cffi
-python2-cherrypy
-python2-click
-python2-constantly
-python2-crypto
-python2-cryptography
-python2-enum34
-python2-fonttools
-python2-hyperlink
-python2-idna
-python2-incremental
-python2-ipaddress
-python2-iwscan
-python2-mako
-python2-markupsafe
-python2-notify
-python2-numpy
-python2-pip
-python2-ply
-python2-pyasn1
-python2-pycparser
-python2-pyopenssl
-python2-pyqt4
-python2-pyxattr
-python2-qscintilla-qt4
-python2-reportlab
-python2-twisted
-python2-wpactrl
-python2-xlib
-python2-zope-interface
-qca-qt4
-qimageblitz
+qqc2-desktop-style
-qscintilla-qt4
-qt5-connectivity
+qt5-quickcontrols2
-qt5-serialport
-qt5-translations
-qt5-webengine
-qt5-websockets
-qtchooser
-qtwebkit
-r
-rarian
-rdiff-backup
-re-alpine
+read-edid
-recode
-recoverdm
-remind
-rest
-rhash
-rkhunter
-rpcbind
-rpmextract
-rtmpdump
-ruby
-sane
-sbc
-sdl
-sdl_image
-sdparm
-sigil
-sk1libs
-smem
+socat
-soundtouch
-source-highlight
-spandsp
-speech-dispatcher
-speedtest-cli
-stellarium
-strace
-stress
-strigi
-suitesparse
-svgpart
-sxiv
-syslog-ng
-sysstat
-system-config-printer
-t1-adobe-utopia-ib
-t1-bh-ib
-t1-cursor-ib
-t1-ibm-courier-ib
-t1-paratype-ibx
-t1-source-code-pro-ibx
-t1-source-sans-pro-ibx
-t1-urw-fonts-ib
-tcl
-tcpdump
-tcsh
-terminus-font
-texmaker
-tidy
-time
-tix
-tk
-traceroute
-transfig
-tree
+tlp
-ttf-alef-ibx
-ttf-amble-ibx
-ttf-antonio-ibx
-ttf-archivo-black-ibx
-ttf-archivo-narrow-ibx
-ttf-arev-sans-ibx
+ttf-anonymous-pro
-ttf-caladea-ib
-ttf-camingocode-ibx
-ttf-cantoraone-ib
-ttf-carlito-ib
-ttf-caviar-dreams-ibx
-ttf-charis-sil-ibx
-ttf-chromeos-ib
-ttf-clear-sans-ibx
-ttf-consola-mono-ibx
-ttf-courier-prime-ib
-ttf-ddc-uchen-ib
-ttf-dejavu-ib
-ttf-droid-ib
-ttf-gelasio-ib
-ttf-gentium-tug-ibx
+ttf-gentium
-ttf-heuristica-ib
-ttf-istok-ibx
+ttf-inconsolata
-ttf-junicode-ibx
-ttf-lato-ibx
-ttf-lekton-ibx
-ttf-liberastika-ib
-ttf-liberation-ib
-ttf-lklug-ib
-ttf-lohit-odia-ib
-ttf-lohit-punjabi-ib
-ttf-lora-cyrillic-ibx
-ttf-merriweather-ib
-ttf-merriweather-sans-ib
-ttf-meslo-fonts-ibx
-ttf-mph
-ttf-nanum-fonts-ib
-ttf-noticia-text-ibx
-ttf-noto-fonts-cjk-ib
-ttf-noto-fonts-ib
-ttf-noto-fonts-nonlatin-ib
-ttf-opensans-ib
-ttf-overpass
-ttf-overpass-fonts-ibx
-ttf-oxygen-ibx
-ttf-pfennig-ibx
-ttf-playfair-display-ibx
+ttf-linux-libertine
+ttf-linux-libertine-g
-ttf-roboto-ibx
-ttf-sansation-ibx
-ttf-signika-family-ib
-ttf-source-serif-pro-ibx
-ttf-symbola-ib
-ttf-ubuntu-font-family-ib
-ttf-vera-humana
-ttf-weblysleek-ui-ibx
-udevil
-unace
-unarj
-unhide
-uniconvertor
-unison
-unoconv
-unrar
+user-manager
-vala
-valgrind
-valgrind-multilib
+vi
-vim-surround
-vimpager
-vlc
-vulkan-icd-loader
-vym
-wavpack
-wcslib
-webkit2gtk
-webkitgtk2
-whois
-wildmidi
-wipe
-wmctrl
-wput
-wv2
-wxgtk
-wxpython
-wyrd
+x86_energy_perf_policy
-xaw3d
+xdg-desktop-portal-kde
+xf86-input-keyboard
-xf86-input-synaptics
-xf86dgaproto
-xfig
-xinetd
-xmlto
-xorg-docs
-xorg-iceauth
-xorg-server-utils
-xorg-sessreg
-xorg-smproxy
-xorg-twm
-xorg-utils
-xorg-x11perf
-xorg-xbacklight
-xorg-xclock
-xorg-xcmsdb
-xorg-xcursorgen
-xorg-xdpyinfo
-xorg-xdriinfo
-xorg-xfd
-xorg-xgamma
-xorg-xhost
-xorg-xkbevd
-xorg-xkill
-xorg-xlsatoms
-xorg-xlsclients
-xorg-xlsfonts
-xorg-xpr
-xorg-xrefresh
-xorg-xvinfo
-xorg-xwd
-xorg-xwininfo
-xorg-xwud
-xosd
-xplanet
-xrestop
-xsane
-xsane-gimp
-yasm
-yelp-tools
-yelp-xsl
-zathura
-zathura-djvu
-zathura-pdf-poppler
-zathura-ps
-zenity
-zip
-zsh
-zvbi

Note that I only installed xf86-input-keyboard in a vain attempt to solve the problem, so that can't be the difference.

My old config used the evdev driver for all input devices, including, therefore, the keyboard. The config was done mostly through KDE and so mostly lived under ~/.config. My first attempts at trouble-shooting involved replicating these files on my new setup. However, either it doesn't like the new hardware, or it doesn't like something about the new software or it doesn't like some other aspect of my config. One difference is that I'm using libinput for all pointing devices.

# Match on all pointing devices but joysticks

Section "InputClass"
        Identifier "cfr libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

# llaw chwith : llygod = pointers *heb* touchpads & trackpoints

Section "InputClass"
        Identifier "cfr libinput llygod"
        MatchIsPointer "on"
	MatchIsTouchpad "off"
	NoMatchProduct "TrackPoint"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
	Option "LeftHanded" "1"
EndSection

# dim ond touchpads

Section "InputClass"
        Identifier "cfr libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
	Option "Tapping" "1"
	Option "TappingDragLock" "1"
	Option "AccelSpeed" "1"
EndSection

However, the log confirms that 'evdev' is correctly applied to the specific keyboard given - and, if it weren't, I guess the Euro wouldn't work either. That said, the third-level shift doesn't seem to give me anything but Euro, as I said above. But it was the same way on my old laptop, so I assumed that third-level shift was really of pretty limited use. (Perhaps I'm just doing it wrong, as also suggested by the comments earlier.)

Last edited by cfr (2017-10-15 23:36:53)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#24 2017-10-16 01:17:50

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

OK. It turns out to be not-so-easy to get KDE's config to match that set system-wide.

Log out > stop sddm.service > remove ~/.config/kxkbrc, remove ~/.cache, remove stuff from ~/.kde4, check for kded5 information under ~/.local & clean everything out > start sddm.service > login.

setxkbmap -print -verbose 10

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105+inet
layout:     us
variant:    euro
options:    terminate:ctrl_alt_bksp+eurosign:5+compose:caps
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us(euro)+inet(evdev)
geometry:   pc(pc104)
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us(euro)+inet(evdev)"       };
        xkb_geometry  { include "pc(pc104)"     };
};

OK. So KDE is wiping out my keyboard options. At least, I think it is KDE. It could be sddm or something else. It also still has 'us(euro)' for some reason I'm not sure about. However, the Euro symbol works. Compose is broken globally, for obvious reasons.

After some fiddling to make KDE's GUI settings produce output matching the system-wide config, I get

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc104
layout:     us
variant:    euro
options:    terminate:ctrl_alt_bksp+eurosign:5+compose:caps,lv3:ralt_switch,eurosign:5,terminate:ctrl_alt_bksp,compose:caps
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us(euro)+inet(evdev)+level3(ralt_switch)+compose(caps)+eurosign(5)+terminate(ctrl_alt_bksp)
geometry:   pc(pc104)
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us(euro)+inet(evdev)+level3(ralt_switch)+compose(caps)+eurosign(5)+terminate(ctrl_alt_bksp)"        };
        xkb_geometry  { include "pc(pc104)"     };
};

And **now**, I get to type

ŷ €

in Konsole :-).

However, it does seem a terrible waste of AltGr that the only thing I can use it for is to type a Euro symbol. Can I use it for anything else? Nothing I've tried produces anything other than the regular character. What's  the point of third-level shift when it doesn't seem to actually do anything? Does it work for fluxboxer as a result of some configuration file or something?

Also, this doesn't explain why it does not work in a bare X session in Firefox and xterm. Nor do I understand why it produces garbage if just configured through the GUI. Or why KDE doesn't use system-wide defaults if no user configuration is found.

I'm also confused as to why the above output shows my locale to be 'C'. Is this expected?


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#25 2017-10-16 07:08:15

seth
Member
Registered: 2012-09-03
Posts: 49,977

Re: Compose key fails in QT apps in KDE & all (?) apps in LWM session

wrt your locale worries (question on other thread):

localectl
locale
locale -a
env | grep -E '(LC_|LANG)'

It used to be correct, only LC_COLLATE is (reasonably) "C"

Also, does "AT Translated Set 2 keyboard" actually match your product?

Online

Board footer

Powered by FluxBB