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