No description
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>
|
||
|---|---|---|
| .github | ||
| .zed | ||
| cosmic-greeter-config | ||
| daemon | ||
| dbus | ||
| debian | ||
| examples | ||
| i18n | ||
| res | ||
| src | ||
| .gitattributes | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| cosmic-greeter-start.sh | ||
| cosmic-greeter.toml | ||
| i18n.toml | ||
| justfile | ||
| LICENSE | ||
| README.md | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||
cosmic-greeter
libcosmic greeter for greetd, which can be run inside cosmic-comp
Development
This project uses just as a command runner.
Available Commands
Building
just build-debug- Compile with debug profilejust build-release- Compile with release profile (default)just build-vendored- Compile release profile with vendored dependencies- Requires vendoring first, which can be done with
just vendor
- Requires vendoring first, which can be done with
Testing & Development
just mock- Run greeter in a windowed compositor for quick testing (builds and runs the mock server example)just run- Run with debug logs (RUST_LOG=debugandRUST_BACKTRACE=full)
Code Quality
just check- Run clippy linter with pedantic warningsjust check-json- Run clippy with JSON output format
Installation
just install- Install all files (binary, daemon, D-Bus config, systemd files)just install-debian- Install only Debian package required filesjust uninstall- Remove all installed files
Cleanup
just clean- Runcargo cleanjust clean-dist- Runcargo cleanand remove vendored dependencies
Vendoring
just vendor- Vendor dependencies locally and create vendor.tarjust vendor-extract- Extract vendored dependencies from vendor.tar