Keyboard layout setting not maintained after logout

Running on laptop with KDE Plasma Desktop v 5.16.4 and with a UK keyboard.
I have set the keyboard layout using yast and selected the English UK setting.
This setting remains as required in use but if I have rebooted or logged out and back in again, the keyboard layout reverts working to the English US pattern even though the Yast Keyboard Layout remains showing the chosen setting of UK.
This also used to happen with Leap 15.1 and I assume it is a bug.
Am I right or am I doing something wrong?

Have you configured via KDE System Settings?

System Settings > Input Devices > Keyboard > Layouts

There you can enable ‘Configure Lyaouts’ and add/remove the required. Click 'Apply when done.

Does that help?

Hi Deano,
Now here is a surprise. There are two keyboard layout settings, one in Yast settings which I have used as noted above and works until I log out and one in the System Settings > Input Devices > Keyboard > Layouts which I have now found and used to select English UK layout. Many thanks, this seems to work. Interesting to know there are two ways of doing this. Perhaps I need both. Anyhow I think I am OK now.
Many thanks once more.

Not really two ways. The YaST settings are system-wide (administrator-led) configurations. The desktop environments mostly offer user-level configuration tools, such as setting the keyboard layout you required. Another user might require something different again. Anyway, glad to have been of assistance.

Hi Deano and thanks for the help. I always appreciate your assistance for which many thanks.
Interesting issue though because this morning and only after I had updated this morning I noticed in my Task Bar the letters EN and US. Now I do not have any US languages set afaik but I could be wrong. Anyhow I retraced my steps with Yast and Settings and both remained set at UK but when I closed these pages the US term had vanished leaving EN. However when I first went into this issue yesterday I had the letters GB in my Task Bar which have now gone.

One of life’s KDE mysteries.
Thanks again.

Interesting but in spite of Deano’a advice which I followed my keyboard layout has reverted to US even though all the settings in Yast and System Settings are set for GB or UK
At what point should I submit a bug?

I’m not sure what’s quite going on here, but returning to a previous comment you made which has caught my attention…

I noticed in my Task Bar the letters EN and US.

Is this the ‘IBus Panel’ you’re referring to perhaps. Normally that’s not required for KDE, but I notice that it’s dragged in with the Gnome desktop if installed as well. Maybe that’s causing the issue you’re encountering here?

zypper se -si ibus

Just to increase confusion.:wink:

This EN and US in the panel reminds me of a configuration (in KDE) where more then one keyboard layout are defined. Note: NOT languages, but keyboard layouts. This to allow the user to switch between them, either because he switches two keyboards, or because he uses the existing keyboard in two ways (in at least one way ignoring what is engraved on the keys, maybe having a paper overlay of some kind to help him in hitting the correct key combinations).

Ibus is only one of many lurking. As they may create confusion beware of these:

karl@erlangen:~> ls **/etc/xdg/autostart/**
at-spi-dbus-bus.desktop                  krunner.desktop                      nm-applet.desktop                                    org.gnome.SettingsDaemon.ScreensaverProxy.desktop            powerdevil.desktop
baloo_file.desktop                       lxpolkit.desktop                     orca-autostart.desktop                               org.gnome.SettingsDaemon.Sharing.desktop                     print-applet.desktop
blueberry-obex-agent.desktop             lxqt-desktop.desktop                 org.gnome.DejaDup.Monitor.desktop                    org.gnome.SettingsDaemon.Smartcard.desktop                   pulseaudio.desktop
blueberry-tray.desktop                   lxqt-globalkeyshortcuts.desktop      org.gnome.Evolution-alarm-notify.desktop             org.gnome.SettingsDaemon.Sound.desktop                       tracker-extract.desktop
caribou-autostart.desktop                lxqt-notifications.desktop           org.gnome.SettingsDaemon.A11ySettings.desktop        org.gnome.SettingsDaemon.Wacom.desktop                       tracker-miner-fs.desktop
geoclue-demo-agent.desktop               lxqt-panel.desktop                   org.gnome.SettingsDaemon.Clipboard.desktop           org.gnome.SettingsDaemon.XSettings.desktop                   tracker-store.desktop
gmenudbusmenuproxy.desktop               lxqt-policykit-agent.desktop         org.gnome.SettingsDaemon.Color.desktop               org.guido-berhoerster.code.package-update-indicator.desktop  user-dirs-update-gtk.desktop
gnome-keyring-pkcs11.desktop             lxqt-powermanagement.desktop         org.gnome.SettingsDaemon.Datetime.desktop            org.kde.kdeconnect.daemon.desktop                            user-dirs-update-mate.desktop
gnome-keyring-secrets.desktop            lxqt-runner.desktop                  org.gnome.SettingsDaemon.DiskUtilityNotify.desktop   org.kde.kgpg.desktop                                         xdg-user-dirs.desktop
gnome-keyring-ssh.desktop                lxqt-xscreensaver-autostart.desktop  org.gnome.SettingsDaemon.Housekeeping.desktop        org.kde.korgac.desktop                                       xembedsniproxy.desktop
gnome-shell-overrides-migration.desktop  mate-power-manager.desktop           org.gnome.SettingsDaemon.Keyboard.desktop            org.kde.plasmashell.desktop                                  xfce4-power-manager.desktop
gnome-software-service.desktop           mate-screensaver.desktop             org.gnome.SettingsDaemon.MediaKeys.desktop           org.opensuse.opensuse_welcome.desktop                        xfsettingsd.desktop
gsettings-data-convert.desktop           mate-settings-daemon.desktop         org.gnome.SettingsDaemon.Mouse.desktop               parcellite-startup.desktop                                   xscreensaver.desktop
ibus-autostart.desktop                   mate-user-share-obexftp.desktop      org.gnome.SettingsDaemon.Power.desktop               polkit-gnome-authentication-agent-1.desktop
klipper.desktop                          mate-user-share-obexpush.desktop     org.gnome.SettingsDaemon.PrintNotifications.desktop  polkit-kde-authentication-agent-1.desktop
konqy_preload.desktop                    mate-user-share-webdav.desktop       org.gnome.SettingsDaemon.Rfkill.desktop              polkit-mate-authentication-agent-1.desktop

??? But how do they relate to incorrect keyboard layouts in a DE? Can you clarify more meaningfully?

  • Several of them refer to keyboard settings, although they try to change their settings only.
  • Software installed increases the number of options which may confuse users.
  • The installation may remember earlier software installs even when removed.

On a pristine installation of Arch Linux/KDE keyboard configuration for is straight forward because it does not have a GUI for doing so. You need to add manually:

erlangen:~ # cat /ArchLinux/etc/X11/xorg.conf.d/20-keyboard.conf 
Section "InputClass"
        Identifier "keyboard"
        MatchIsKeyboard "yes"
        Option "XkbLayout" "de"
        Option "XkbVariant" "nodeadkeys"
erlangen:~ # 

openSUSE has:

erlangen:~ # 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" "de"
        Option "XkbModel" "microsoftpro"
        Option "XkbVariant" "nodeadkeys"
        Option "XkbOptions" "terminate:ctrl_alt_bksp"
erlangen:~ # 

That works reliably too, unless somebody else tinkers with settings, such as YaST or a Linux user.

The Live version of Leap has:

erlangen:~ # cat /run/media/karl/cow/rw/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 "XkbOptions" "terminate:ctrl_alt_bksp"
erlangen:~ # 

I desperately tried to switch to “de” and finally succeeded by copying the Arch Linux configuration to Leap: /etc/vconsole.conf and /etc/X11/xorg.conf.d/20-keyboard.conf

Yes, but the user-specific keyboard settings within KDE should determine the keyboard layout within the DE environment when configured to do so.

Yes it should, but actually it didn’t. I tried hard with KDE System Settings, but failed. So I changed system wide settings as described above and succeeded at the first try.

For the avoidance of doubt I do not have two keyboard options set, only one for UK and in set in two places. In Yast I have Hardware>System Keyboard>English UK
In System Settings I have Hardware>Input Devices>Keyboard>Layout>English (UK) mapped and labled as gb.

I had a look where suggested and have:-

alastair@AJBR-W530:~> 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
# instruct systemd-localed to update it.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "gb"
        Option "XkbModel" "microsoftpro"
        Option "XkbOptions" "terminate:ctrl_alt_bksp"

The point about Gnome is interesting but I have never installed Gnome desktop here. It is possible some Gnome stuff is installed because of dependencies being dragged in by an application but not the whole desktop.

What more can I say.

What about:

erlangen:~ # localectl
   System Locale: LC_CTYPE=de_DE.UTF-8
       VC Keymap: de-nodeadkeys
      X11 Layout: de
       X11 Model: microsoftpro
     X11 Variant: nodeadkeys
     X11 Options: terminate:ctrl_alt_bksp
erlangen:~ # journalctl -b | grep -i kbd
Aug 21 16:48:58 erlangen display-manager[1397]: I: Using systemd /usr/share/systemd/kbd-model-map mapping
Aug 21 17:30:58 erlangen org_kde_powerdevil[2001]: powerdevil: Kbd backlight brightness value:  0
Aug 21 18:56:58 erlangen org_kde_powerdevil[2001]: powerdevil: Kbd backlight brightness value:  0
erlangen:~ # journalctl -b | grep -i keyboard
Aug 21 16:48:53 erlangen kernel: hid-generic 0003:046A:0011.0002: input,hidraw1: USB HID v1.11 Keyboard [HID 046a:0011] on usb-0000:00:14.0-2/input0
Aug 21 16:48:53 erlangen systemd[1]: Starting Apply settings from /etc/sysconfig/keyboard...
Aug 21 16:48:53 erlangen systemd[1]: Started Apply settings from /etc/sysconfig/keyboard.
erlangen:~ # 

Ever tried a pristine user?

I don’t usually have two (or more) keyboard layouts configured, but I now have ‘gb English (UK)’ and ‘us English (US)’ configured with the UK keyboard layout at the top ie active within my KDE environment. It displays in the panel as you describe Henk. I also had the IBus icon displaying, but I have removed IBus now. Anyway, as you say two or more keyboards do cause the current active keyboard layout to be displayed and can also be changed from there. It all works as expected for me with Leap 15.1.

My problem with the keyboard layout switching to US layout has been thT in spite of both System Settings>Hardware>Input Devices>Keyboard layout being mapped as gb, English (UK) and Yast Control Centre>Hardware>System Keyboard Layout>English UK and no other layouts selected I still get a US layout.

The uncalled for change is tolerable but on occasions a nuisance and once it has switched to US layout it tends to stay that way.

In playing around with System Setting I added the option Show flag to the previous settings of Show layout indicator and Show for single layout. Since then the layout has remained working as English UK!!!

Just thought I would share this and show the flag to a wider audience.


As usual, wrote too soon. US layout back again. The only benefit now is it is easier to notice the wrong flag and switch back using the flag.