When installing the current sddm, only the US keyboard layout is provided. To get another one, one has to (after finding out _what_ to do ;-) edit /usr/share/sddm/scripts/Xsetup and add a line like "setxkbmap de" (to get e. g. a German keyboard layout) manually. I think this should be done automatically using the LINGUAS set in make.conf when the package is being emerged (or in some other way – at least, one should find the keyboard layout the current locale has out of the box). Would be fine if this could be implemented!
Isn't it picking up what you have configured for X?
No, I think this is applied afterwards (or: do we even configure anything for X? At some point quite some time ago, an xorg.conf wasn't necessary anymore where I put the keyboard layout stuff back then). Apparently, other distros have the same problem. At least, I found the solution with editing /usr/share/sddm/scripts/Xsetup on some Arch site.
This is quite likely the following sddm bug: https://github.com/sddm/sddm/issues/202 And I don't think that using LINGUAS here does make any sense. What about users having multiple languages set in LINGUAS?
Afaik, one can add multipler setxkbmap calls to get multiple layouts.
I think Bug #571358 is exactly the same feature request, it's just another approach to get the same result. Protecting /usr/share/sddm/scripts/Xsetup when updating/recompiling would be quite as fine for me. However, I think simply adding "setxkbmap $L10N", where $L10N is the respective setting from make.conf, would do the trick automagically and work just fine. Or is there any (X11 config) file where one could set the setxkbmap parameters system-wide that could be sourced by /usr/share/sddm/scripts/Xsetup?
... or better: for languageCode in $L10N; do setxkbmap $languageCode; done to also handle multiple entries there correctly.
Another way to fix this is (like with the fix for the cross distcc setup): Add case ${CATEGORY}/${PN} in x11-misc/sddm) if [ "${EBUILD_PHASE}" == "postinst" ]; then /usr/local/sbin/sddm-fix & fi ;; esac to /etc/portage/bashrc and create /usr/local/sbin/sddm-fix with #!/bin/bash grep "setxkbmap de" /usr/share/sddm/scripts/Xsetup || \ echo "setxkbmap de" >> /usr/share/sddm/scripts/Xsetup But still, it would be nicer to have this done automatically, respecting the global language settings.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1102f3773398797d55a888129351e46c2ce2cb46 commit 1102f3773398797d55a888129351e46c2ce2cb46 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2017-11-12 13:24:38 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2017-11-12 15:12:04 +0000 x11-misc/sddm: Use l10n.eclass to filter translations Bug: https://bugs.gentoo.org/582016 Package-Manager: Portage-2.3.13, Repoman-2.3.4 x11-misc/sddm/sddm-0.16.0-r3.ebuild | 73 +++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+)}