No description
Find a file
chris-010 088f26cbb8 fix: ignore empty responses on the login screen
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>
2026-08-18 04:21:19 +02:00
.github Add pull request template 2026-02-13 12:35:27 -07:00
.zed chore: add rustfmt config 2026-04-29 00:20:17 +02:00
cosmic-greeter-config chore: add rustfmt config 2026-04-29 00:20:17 +02:00
daemon chore: add rustfmt config 2026-04-29 00:20:17 +02:00
dbus Add daemon to proxy user backgrounds 2024-02-06 15:03:07 -07:00
debian chore: cleanup 2025-08-29 10:29:15 -04:00
examples chore: add rustfmt config 2026-04-29 00:20:17 +02:00
i18n i18n: translation updates from weblate 2026-07-28 08:01:59 +00:00
res Update fallback background 2024-08-02 09:42:34 -06:00
src fix: ignore empty responses on the login screen 2026-08-18 04:21:19 +02:00
.gitattributes Update fallback background 2024-08-02 09:42:34 -06:00
.gitignore Add daemon to proxy user backgrounds 2024-02-06 15:03:07 -07:00
build.rs Fix vergen generation 2025-03-25 15:13:50 -06:00
Cargo.lock chore: update libcosmic 2026-07-09 17:51:17 -06:00
Cargo.toml feat: blur 2026-07-09 12:10:46 -06:00
cosmic-greeter-start.sh chore: cleanup logs 2025-09-12 23:47:22 +02:00
cosmic-greeter.toml feat: introduce cosmic-greeter-start for state cleanup 2025-08-12 10:59:29 -05:00
i18n.toml Add localization 2024-05-07 10:07:48 -06:00
justfile fix(justfile): bash syntax error if SOURCE_GIT_HASH was set 2026-06-24 17:03:08 +02:00
LICENSE Initial commit 2023-09-29 09:23:23 -06:00
README.md docs: Add note about vendored build commands 2025-11-12 19:03:55 -07:00
rust-toolchain.toml chore: update dependencies 2026-04-29 00:20:17 +02:00
rustfmt.toml chore: add rustfmt config 2026-04-29 00:20:17 +02:00

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 profile
  • just 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

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=debug and RUST_BACKTRACE=full)

Code Quality

  • just check - Run clippy linter with pedantic warnings
  • just 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 files
  • just uninstall - Remove all installed files

Cleanup

  • just clean - Run cargo clean
  • just clean-dist - Run cargo clean and remove vendored dependencies

Vendoring

  • just vendor - Vendor dependencies locally and create vendor.tar
  • just vendor-extract - Extract vendored dependencies from vendor.tar