Multiple Keyboard Layouts and Shortcuts

I configured KDE to switch easily from a bépo (french-dvorak) to an azerty layout. I configured it with the KDE interface (systemsettings), but I guess it just call setxkbmap be and setxkbmap fr.
The azerty layout is the default (and the first in the list of the layouts).

However, the shortcuts remains attached to the physical keys: pressing the q key yields a "q" in azerty and an "a" with the bepo layout.
However, pressing ctrl + q have the same effect in both cases (quitting, in most softwares, for instance with kwrite or konsole). Note however that some softwares (as firefox) do the switch (pressing the j key, which prints a "t" with the bépo layout, and ctrl at the same time, opens a new tab, which is the expected behaviour). According to this comment, GTK apps do the switching, whereas Qt apps do not.

How to make the keys of the shortcuts and the key to enter text coincide in all software

More precisely, the shortcuts are defined according to the first layout in the list. How to make the definition of the shortcuts switch as well for Qt apps?

Configuration (system):

$ kded4 --version
Qt: 4.8.7
KDE Development Platform: 4.14.38
KDE Daemon: 4.14.38

$ uname -a
Linux debian 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

Configuration (setxkbmap):

$ setxkbmap -query
rules:      evdev
model:      pc104
layout:     us,fr
variant:    intl-unicode,bepo
options:    grp:caps_toggle

(where fr is actually bepo)

$ localectl list-x11-keymap-variants fr

Related pages :

Edit: This question has been opened 2131 days ago, received three bounties, 31 upvotes, has 11 favorites, it is the most upvoted unanswered question as of now, but it wasn’t offered one serious motivated answer? I should probably being submitting bug report, but I don’t even know what software is responsible!

Asked By: Clément


You can set

localectl set-keymap --no-convert <keymap>

Which will change the keymap used at startup. Substitute keymap here with the one you’d like to use. Also ensure that you change your other locale information.

Answered By: Usi

This seems to be solved on my current set-up:

~$ kded5 --version
kded5 5.78.0

~$ uname -a
Linux XXX 5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux

~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye
Answered By: Clément
Categories: Answers Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.