New login-manager uses QWERTY despite session in AZERTY

KDE 6.7.1

Looked in /var/lib/plasmalogin/.config/ to find this :

\[root@CachyOS .config\]# tree 
. 
├── gtkrc 
├── gtkrc-2.0 
├── kdedefaults 
│   ├── kcminputrc 
│   ├── kdeglobals 
│   ├── ksplashrc 
│   ├── kwinrc 
│   ├── package 
│   └── plasmarc 
├── kdeglobals 
├── kglobalshortcutsrc 
├── kwinoutputconfig.json 
├── kwinrc 
├── kwinrulesrc 
├── plasma-localerc 
└── Trolltech.conf 
 
2 directories, 15 files
 

Checked inside the files, only relevant thing I found was :

[Formats]
LANG=fr_FR.UTF-8

Am I missing something ? Should there be a layout parameter ? In which file ? Thanks !

Not completely sure but I think you need to edit either /etc/default/keyboard or /etc/X11/xorg.conf.d/00-keyboard.conf

Also: if anyone reading this has an idea how to make the login manager use a custom layout from a users .xkb directory, I would be very interested…

Hey, both /etc/default/keyboard and /etc/X11/xorg.conf.d/00-keyboard.conf already have layout=fr so I don’t think that’s it sadly.

Interesting, I have a file /var/lib/plasmalogin/.config/kxkbrc which you don’t - that file has settings for the layouts from my user session. (However, there doesn’t seem to be a way to actually switch layouts on the login screen, and my main layout is US English. So I’m not sure whether it does read that file and use the first listed layout, or whether the file is not used yet.)

I’m on KDE Linux (so Plasma 6.8 dev build) - not sure if this is new in 6.8.

Might be why ! Could you paste the content of the file so I’ll create it and just edit the layout parameter to see if it works ? Would be lovely.

I’m using programmer dvorak (dvp) (I want to use a custom layout - but dvp at least is close enough) which is correctly used by plasma-login-manager. The 2 files I mentioned seem to be the only ones on my system where dvp is configured, so I think that should be it.

But there might be another thing going on: I quickly peeked into the source code and plasma-login-manager queries the dbus system bus for the correct keymap - maybe that’s where things go wrong…

You can query it by running the following command: gdbus introspect --system --dest org.freedesktop.locale1 --object-path /org/freedesktop/locale1

Looking a bit further, the content seems to be identical to my ~/.config/kxkbrc.

So you could try just doing:

sudo cp ~/.config/kxkbrc /var/lib/plasmalogin/.config/kxkbrc
sudo chown plasmalogin:plasmalogin /var/lib/plasmalogin/.config/kxkbrc
    signals:
    properties:
      readonly as Locale = ['LANG=fr_FR.UTF-8'];
      readonly s X11Layout = '';
      readonly s X11Model = '';
      readonly s X11Variant = '';
      readonly s X11Options = '';
      readonly s VConsoleKeymap = 'fr';
      readonly s VConsoleKeymapToggle = '';

Should work then because locale is set right !

the locale does not matter - thats only for translations and format of numbers, dates and stuff. The important values are the X11*. For me that part looks like this:

  readonly s X11Layout = 'us';
  readonly s X11Model = 'pc105';
  readonly s X11Variant = 'dvp';
  readonly s X11Options = '';

Hm… maybe I should have been suspicous when you wrote “already have layout=fr”.

My full configs look like this:

/etc/default/keyboard

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="dvp"
BACKSPACE="guess"

/etc/X11/xorg.conf.d/00-keyboard.conf (I wonder if that one is generated from the other)

# Read and parsed by systemd-localed. It's probably wise not to edit this file
# manually too freely.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us"
        Option "XkbVariant" "dvp"
EndSection

EDIT: So what you want is probably

XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""

My bad ! /etc/default/keyboard and /etc/X11/xorg.conf.d/00-keyboard.conf both already are what they should be though.

/etc/default/keyboard :

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""
BACKSPACE="guess"

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

# Read and parsed by systemd-localed. It's probably wise not to edit this file
# manually too freely.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "fr"
        Option "XkbVariant" ""
EndSection

Just want to chime in here, I have the same issue/nearly similar issue with QWERTZ ↔ QWERTY (yeah spot the german) since Plasma 6.7.1.

Reading through this thread I have looked up all recomendations above and everything seems to be setup correctly,

however when I boot up I am having trouble with the Plasma Login (none of the other TTYs) with:

a) Keyboard defaulting to QWERTY

and

b) Customisations of my Plasma Login being discarded.

FWIW I am on CachyOS 7.x

Cheers

das_ICH

Same problem, yet everything look good

 ~ ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 15:44:00 ─╮
❯ gdbus introspect --system --dest org.freedesktop.locale1 --object-path /org/freedesktop/locale1                                                                                            ─╯
node /org/freedesktop/locale1 {
  interface org.freedesktop.DBus.Peer {
    methods:
      Ping();
      GetMachineId(out s machine_uuid);
    signals:
    properties:
  };
  interface org.freedesktop.DBus.Introspectable {
    methods:
      Introspect(out s xml_data);
    signals:
    properties:
  };
  interface org.freedesktop.DBus.Properties {
    methods:
      Get(in  s interface_name,
          in  s property_name,
          out v value);
      GetAll(in  s interface_name,
             out a{sv} props);
      Set(in  s interface_name,
          in  s property_name,
          in  v value);
    signals:
      PropertiesChanged(s interface_name,
                        a{sv} changed_properties,
                        as invalidated_properties);
    properties:
  };
  interface org.freedesktop.locale1 {
    methods:
      SetLocale(in  as locale,
                in  b interactive);
      SetVConsoleKeyboard(in  s keymap,
                          in  s keymap_toggle,
                          in  b convert,
                          in  b interactive);
      SetX11Keyboard(in  s layout,
                     in  s model,
                     in  s variant,
                     in  s options,
                     in  b convert,
                     in  b interactive);
    signals:
    properties:
      readonly as Locale = ['LANG=fr_FR.UTF-8'];
      readonly s X11Layout = '';
      readonly s X11Model = '';
      readonly s X11Variant = '';
      readonly s X11Options = '';
      readonly s VConsoleKeymap = 'fr';
      readonly s VConsoleKeymapToggle = '';
  };
};

 ~ ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 15:44:01 ─╮
❯ cat /etc/X11/xorg.conf.d/00-keyboard.conf                                                                                                                                                  ─╯
# Read and parsed by systemd-localed. It's probably wise not to edit this file
# manually too freely.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "fr"
        Option "XkbVariant" ""
EndSection

 ~ ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 15:44:08 ─╮
❯ cat /etc/default/keyboard                                                                                                                                                                  ─╯
# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""
BACKSPACE="guess"

the kxkbrc file is where the plasma GUI settings > input device > keyboard saves it’s settings.

why is there a kxkbrc file located in /var when there is no plasma GUI settings up and running yet prior to login?

the one in /home should take precedence, so no matter what the one in /var says (or if it even exists) the one in /home would determine what gets used by the plasmashell.

did they stuff this file in in /var for the plasma login to use, so that it can be read earlier in the boot cycle before plasmashell even starts?

if that’s the case then just making a copy there should do the trick, yes?

there could be a glitch in the new plasma login manager where it doesn’t copy this file over for it’s own use in time for it to affect the plasma login

I think the problem is with systemd-localed, which provides the dbus-api which in turn reports the wrong values.

WARNING: I haven’t tested this, but the manpages suggest it might be right: does

sudo localectl set-x11-keymap fr && sudo service systemd-localed restart

solve the problem? (replace fr with de for german layout)

In a user session, yes. But at login time, there isn’t a logged-in user yet, so there’s no relevant homedir to look in.

That was my not-very-educated guess, but I was just going by the empirical fact that I found that file there, which wasn’t on OP’s system.

seems to be looking at what is contained in the 00-keyboard.conf file, but in your case it is not picking up the Xkblayout as being “fr”

sudo localectl set-x11-keymap fr this did the trick ! Next reboot and no issues. Thanks !

It helps for me, that I can login with de keyboard layout from the login screen. Showing the status of localectl reveals that X11 Layout was unset in my case.

❯ cat ~/.config/kxkbrc
[Layout]
LayoutList=de
Model=pc104alt
Use=true

❯ localectl
System Locale: LANG=en_GB.UTF-8
               LC_NUMERIC=de_DE.UTF-8
               LC_TIME=de_DE.UTF-8
               LC_MONETARY=de_DE.UTF-8
               LC_PAPER=de_DE.UTF-8
               LC_NAME=de_DE.UTF-8
               LC_ADDRESS=de_DE.UTF-8
               LC_TELEPHONE=de_DE.UTF-8
               LC_MEASUREMENT=de_DE.UTF-8
               LC_IDENTIFICATION=de_DE.UTF-8
    VC Keymap: de
   X11 Layout: (unset)


❯ localectl set-x11-keymap --no-convert de

❯ localectl
System Locale: LANG=en_GB.UTF-8
               LC_NUMERIC=de_DE.UTF-8
               LC_TIME=de_DE.UTF-8
               LC_MONETARY=de_DE.UTF-8
               LC_PAPER=de_DE.UTF-8
               LC_NAME=de_DE.UTF-8
               LC_ADDRESS=de_DE.UTF-8
               LC_TELEPHONE=de_DE.UTF-8
               LC_MEASUREMENT=de_DE.UTF-8
               LC_IDENTIFICATION=de_DE.UTF-8
    VC Keymap: de
   X11 Layout: de

From what I’ve observed, setting x11-keymap will generate the file under /etc/X11/xorg.conf.d/00-keyboard.conf, but I did not check if that file was present before that.

❯ cat /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
# update this file.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
EndSection

I am not sure which upgraded packages cause this issue, because there was quiet a few. systemd may show a matching change note to this issue.

[2026-06-25T22:36:52+0200] [ALPM] upgraded xkeyboard-config (2.47-1 -> 2.48-1)
# ...
[2026-06-25T22:36:53+0200] [ALPM] upgraded systemd (260.2-2 -> 261-1)
[2026-06-25T22:36:54+0200] [ALPM-SCRIPTLET] Creating group 'systemd-imds' with GID 954.
[2026-06-25T22:36:54+0200] [ALPM-SCRIPTLET] Creating user 'systemd-imds' (systemd Instance Metadata) with UID 954 and GID 954.
[2026-06-25T22:36:54+0200] [ALPM-SCRIPTLET] :: This is a systemd feature update. You may want to have a look at
[2026-06-25T22:36:54+0200] [ALPM-SCRIPTLET]    NEWS for what changed, or if you observe unexpected behavior:
[2026-06-25T22:36:54+0200] [ALPM-SCRIPTLET]      /usr/share/doc/systemd/NEWS

# less /usr/share/doc/systemd/NEWS
* systemd-localed will now save the XKB keyboard configuration to
  /etc/vconsole.conf, and also read it from there with a higher
  preference than the /etc/X11/xorg.conf.d/00-keyboard.conf config
  file. Previously, this information was stored in the former file in
  converted form, and only in latter file in the original form. Tools
  which want to access keyboard configuration can now do so from a
  standard location.