How to change / fix "no language layout switch / selector on login screen" and how it could happen

Difficulty: ★☆☆☆☆

How the issue happen

Imagine this. You choose single language, say English, during Manjaro OS installation. You got system components configured according to selected language list.1

After installation you boot up Manjaro login into your user session and start to setup it. After some time of usage you want to add additional language(s) to be able to type a text on them. You opened system settings, input devices, keyboard layouts and added another languages you want, say Finnish and French.2

After some another time you decide to change your password and changed it to another (non-initial English), say Finnish language. OK, you done the issue. But it looks like all goes just fine: you can lock your user session and unblock it. New password works well. You don’t know what surprise you made for yourself in near future.

image

- But I successfully unblocked my session for many times before the reboot with perfect ability to switch languages! I told you: the updates did that!
- After updates is not yet meaning that causes by updates. And current case is not the one also, I’ll show you:

Yes, you did unblock your user session before the reboot, but let’s try to classify things which could looks the same but could be actually different: “lock screen” belongs to user session level and uses user session settings, while “login screen” belongs to system level and use system settings.

Now re-read what you did earlier: linked sentences of (1) and (2). Global config vs user config. Got the difference? And what you have in global system level settings? What language list from installation stage?

Perhaps “lock screen” and “login screen” shown by the same app (I did not realized it yet) but using different configs and that’s why acts different - has different settings applied and running.

Ok, now we realized the cause.


How to change / switch language? Need to add them first.

Prepare stage: find LiveCD

You need a Manjaro LiveCD media (or any other LiveCD): you will edit content of your files on storage.
Load LiveCD to edit files on your system storage where your installed OS located at.

Try any of

Method 1: edit the `/etc/X11/xorg.conf.d/00-keyboard.conf` file
  1. Open terminal emulator.

  2. Use any text editor nano / micro / or even GUI editor you want. Open the

    sudo nano /path_to_the_mount_point/etc/X11/xorg.conf.d/00-keyboard.conf
    

    file of your installed system (not a LiveCD’s run-time environment / root folder, but on your drive with previously installed OS with the issue on login screen).

    The file contents looks a kind of this:

    # 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"
    EndSection
    
  3. Edit the value of the "XkbLayout" option: add your another language(s) there separated with comma, so result whole line will looks like this:

            Option "XkbLayout" "us,fi,fr"
    

    Note: make sure that you named and typed it correctly (search through Internet the right language abbreviations).

  4. Save the file.

  5. Exit editor.

  6. Reboot PC into your installed OS (not a LiveCD now).

  7. Move the mouse pointer over the all screen edges: does a language/layout switcher appears now? No? Try to type a few random chars in a password field in try to made language switched to be initialized. It is expected what you should see layout/language selector, most probably in the bottom left corner.


or

Method 2: edit the `/usr/share/sddm/scripts/Xsetup` file

Also LiveCD needed.
The method was described in the Keyboard layout for login screen - #2 by Fabby post (again on your storage with installed OS).



image


:checkered_flag:

Out of payload data scope: behind-the-scenes stuff of the topic.
Improvements to do (you could help to implement this!):

-) to add: all available languages snap and note the date of that snap.

-) to add: how to add virtual keyboard onto sddm login screen? it has all huge list of languages.
(to check SDDM not showing virtual keyboard nor keyboard layout switcher and Keyboard localisation on login screen (SDDM) • KDE Community Forums)