Message::Auth is constructed in exactly one place, the .on_submit of the
password input, and it forwards whatever the field holds to greetd. An
empty field therefore sends PostAuthMessageResponse with response
Some(""), PAM rejects it, and greetd tears the session down; the greeter
then reconnects with a fresh CreateSession. Every stray Enter costs that
round trip, and while it runs the user is looking at the authenticating
spinner.
Non-interactive auth messages (AuthMessageType::Info) are acknowledged
separately with response None and never reach Message::Auth, so an empty
Some can only come from the user submitting an empty field.
This is the login-screen counterpart of the lock-screen fix in #509. The
two do not overlap; that one guards Message::Submit in locker.rs.
Drafted with AI assistance (Claude Code); the change was reviewed, built
and tested by me as described.
Signed-off-by: chris-010 <10660568+chris-010@users.noreply.github.com>
Downstream distributions have optional logind, but the logind feature
must be defined at compile time. If cosmic-greeter is compiled with
logind support it fails to run on a host that's not running logind.
Detect whether logind is present at runtime, enabling the use of the
same binaries regardless of whether logind is installed or not.
- Switch gid and supplementary groups to user's when reading user's
config
- Only show users between UID_MIN and UID_MAX in /etc/login.defs
- Open accountsservice icons with O_NOFOLLOW to explicitly disallow
symlinks
This prevents the other column items from jumping around depending on if Caps Lock is toggled or if an error is shown. Now only the error text moves depending on if Caps Lock is toggled.
this will allow the left element to expand if it needs more space, but half otherwise. Setting both left and right to Fill will make them both use half of the available space.