Can't change keyboard locale on logon screen with lxqt (Lubuntu 19.04, 19.10 and 20.04)

I installed [second] non-English locale. If I logout, on logon screen I can’t change keyboard layout. Keyboard layout indicator show only one layout (and it’s the locale with which was installed Lubuntu). And keyboard change layout shortcut (for example, alt+shift) doesn’t work.

For example, I boot into Lubuntu 20.04 LiveCD. Install Russian locale. Set ALT+SHIFT as keyboard change layout shortcut. Also run dpkg-reconfegure for packages locales, console-setup, keyboard-configuration in tty (install keyboard layout in GUI works ONLY for GUI [except locales variables]). Keyboard layouts works. And when I logout - I can use only English layout on logon screen.


изображение

Moreover: if I install Lubuntu 19/20 with, for example, Russian system locale (and set auto-logon), when I logout, initially locale icon show English “flag” (and popup contains only English flag), but when I enter the first character, I see, in reality, Russian layout is active (and entered character is Russian), and layout indicator changes (sic!) to Russian “flag” and now contains only Russian “flag”. And I unable to login to system, because I set English-character password (it’s hilarious!).



изображение

I think it’s critical for Lubuntu 20.04, because IT persists since Lubuntu 19.04 (since lxqt is used)

1 Like

I also am facing the similar problem in my system except a different locale.

1 Like

keyboard configuration in lxqt is saved in ~/.config/lxqt/session.conf

sddm service can be seen in the archive /lib/systemd/system/sddm.service

If you look at it you will see that the configuration is loaded from

EnvironmentFile=-/etc/default/locale

can you see here https://github.com/sddm/sddm/issues/703

2 Likes

@Roberalz, and how will it help me? My /etc/default locale contains only LANG=“ru-RU.UTF.8”. ~/.config/lxqt/session.conf - it’s per user settings, where are “global settings” stored in lxqt? Main question - why keyboard layout switching worked with lxde on logon screen and doesn’t work with lxqt?

1 Like

Lubuntu on isnstalling create only one layout (without english layout!! It’s unexceptable), so I think that “root” problem looks like LXQT “wants” to work only with one keyboard layout…

In this case, if I’m not mistaken, you should have the keyboard in English (sddm) and the keyboard options in Russian. (or English and Russian, changing with a key combination). If you have several users, each one has its own keyboard layout. that’s why it’s in the user’s home

the keyboard in english (sddm)

How??? Lubuntu 18 with LXDE also has ssdm, and Lubuntu 18 works with multiple locales like a charm. Why lxqt so stupid?
ssdm use /etc/default/locale, this file configure system locale, not keyboard layout.

lxde doesn’t use sddm.

Use your local in English and the keyboard configured in Russian, I just tried it and it works correctly. Maybe it’s easier in lxde. but it also had gnome language support.

Maybe it’s some “bug” in sddm-theme-lubuntu, or with it default installation on full install, because with minimal lxqt install with ssdm with sddm-theme-debian* all worked fine…

Interesting. If I install LXQT from Ubuntu without LXQT (with apt with/without --no-install-recommends or with tasksel) or even from Ubuntu mini ISO (with tasksel), then keyboard layouts configured in LXQT automatically, also keyboard layouts work normally on sddm login screen.

I comare ~/.config dir on both systems, and there are no something lxqt related difference .Only on system, installed from Lubuntu ISO (the “first” system), there was no ~/.config/lxqt/lxqt-config-locales.conf files [contained only string with __userfile__ = true], but even with this file changing keyboard layouts still not working on the “first” system. Packages files of sddm, sddm-lubuntu-theme are same on both systems.

So, it’s needed some another comparing…

1 Like

Also, Unable to reset password in Lubuntu 20.04 - #3 by ShivanshAnand comment remind me “fun” behaviour: when I started some LiveCD with lxqt (maybe it was Lubuntu 20.04), and on CD boot I select russian language, when I open keyboard setting immediately after boot (if I’m not mistaken), there were 2 layouts - Russian and English, also layout switch shourtcut showed some value. But when I pressed layout swith shourtcut on this window or in another app (while this windows was still opend, sic!), English (or Russian) layout dissapered from keyboard setting window! and layout switch shourtcut there reseted to “None”!

So why I think, that something “wrong” with any LXQT installation LiveCD disk / files / some package “state” (since Lubuntu 19.10), why non-English LXQT installation has problems with changing to English layout (and vice versa)

Та же ерунда на 20.04. Есть решение хоть у кого-то?

Вот тут нашел решение:
https://classicforum.manjaro.org/index.php?topic=31639.0
более подробно расписано на АРЧ-вики:
https://wiki.archlinux.org/index.php/SDDM#SDDM_loads_only_US_keyboard_layout

cat /usr/share/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears

if [ -e /sbin/prime-offload ]; then
    echo running NVIDIA Prime setup /sbin/prime-offload
    /sbin/prime-offload
fi

setxkbmap -layout us

Добавил последнюю строчку в файле

Yuo, I saw this GitHub issue, but… This is PARTILALY workaround, because I want to use “BOTH” layouts - same as in system (but my password always in English still).

So for English only passwords - it’s workaround.
…But what about LXQT installing from apt/tasksel from “clean” Ubuntu [Server]/netboot CD - this bug doesn’t persists after THAT install…

Anyway, thaks for RIGHT link - link to information about xorg bug (in XCB):
https://gitlab.freedesktop.org/xorg/xserver/-/issues/257
https://github.com/sddm/sddm/issues/202#issuecomment-133628462

Strange, why it presents in Lubuntu > 19.10 install from LiveCD and DOESN’T present after installing “Lubuntu Desktop” with, for example, tasksel (even from Ubuntu netboot LiveCD [yes, it’s still exist for Ubuntu 20.04, but last modified in 2020-04 - still can install up-to-date Ubuntu and even Lubuntu])

Meanwhile, I saw, that on GitHub issue somebody wrote setxkbmap us,ru. My first try with this command was failed. Maybe, I did something wrong, need to try again…

Install with us locale. After the first login, put the lxqt locale to russian and keyboard layout to russian. (preferences - LXQt configuration)

I have tested it several times and it always works

the sddm flag changes when you write something.

2 Likes