#1130322 cinnamon-common: Two keyboard layouts enabled switching doesn't work and no panel indicator

#1130322#5
Date:
2026-03-10 22:45:01 UTC
From:
To:
Dear Maintainer,

I use two keyboard layouts, for two different languages. When logging in and
starting a cinnamon session, I don't get a keyboard layout indicator

When I start a new cinnamon session (i.e. after logging in), I don't see the
keyboard layout indicator (applet) on my panel, and I can't switch with my
chose key combination (Alt+Shift).

I can circumvent the problem by opening the keyboard settings in the Cinnamon
control center; adding an arbitrary new keyboard layout, then removing it. I
then get my indicator and keyboard shortcut back for the rest of the session.
If I reboot or logout, then start a new session - the problem appears again.

I first noticed this bug a few months ago; I've been remiss in reporting it and
I apologize. It was before I upgraded from Devuan Excalibur (Debian Trixie) to
Freia (Debian Forky).

The layouts are "English (US)" and "Hebrew", but I believe the specific choice
does not matter.

#1130322#22
Date:
2026-09-13 17:25:41 UTC
From:
To:
Hi, and thanks to both of you — #1130322 and #1143945 turned out to be
the same bug, so I
have merged them.

The cause is that Cinnamon only ever learns the system keyboard layout from
`org.freedesktop.locale1`, which does not exist without systemd. When
`org.cinnamon.desktop.input-sources sources` is empty,
`loadSystemLayouts()` writes
`[('xkb', 'us')]` as a placeholder and then tries to correct it from
locale1; with no
locale1 the correction never happens and the placeholder stays, saved in
gsettings. With a
single source there is no layout indicator and nothing for the switch
shortcut to
alternate, which is exactly what Eyal sees, and it is also why Franz
gets 'us' instead of
the layout from /etc/default/keyboard.

It does not need a systemd-less system to show: masking localed is
enough. Cinnamon then
stores 'us' while `setxkbmap -query` still reports the right layout — X
knows it, Cinnamon
just never asks.

I reported it upstream as
https://github.com/linuxmint/cinnamon/issues/13997, suggesting a
fallback to /etc/default/keyboard or to the X server's XKB rules. Note
that Mint runs on
systemd, so I cannot promise how quickly this will move; with systemd
the chain works
fine, since localed reads /etc/default/keyboard itself on Debian.

In the meantime, setting the layouts once in the Cinnamon keyboard
settings writes them to
gsettings and should survive, since that code only fills in a default
when the list is
empty. Eyal, you wrote that it comes back after a reboot — could you
check what
`gsettings get org.cinnamon.desktop.input-sources sources` returns right
before logging
out and right after logging back in? If the list really is emptied, that
is a second
problem and I would like to see it.

Thanks,
Fabio