breadgreet: bring the login UI up to the lock screen's polish #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/breadgreet-polish"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
breadgreet's stylesheet was a crude subset of
design/sketch.html's.greetoverlayspec — you flagged it looks bad next to breadlock. Ported the sketch faithfully.box-shadow: 0 6px 28px, hairlinealpha(@overlay,.09)border, 10px radius, 300px min-width.shade(@surface,1.5)fill + accent focus ring (@accentborder +0 0 0 2px alpha(@accent,.28)).sync_busy, one drive point).flash_error) — fromAppInput::Errorand PAMAuthPrompt::Error.Uses the shared
@define-colorpalette so it recolours with the theme (same as breadbar).cargo test --workspace --all-targets(157) /clippy --all-targets -D warnings/fmt --checkclean.Visual pass still wanted — this is a direct translation of the mockup, not screenshot-verified (couldn't get a headless render to cooperate). Eyeball it in the VM's greeter or a nested compositor before merge.
Login UX - Enumerate human accounts from /etc/passwd (UID_MIN..UID_MAX per /etc/login.defs, real login shell, minus nobody) and skip the username field: one account goes straight to the password prompt with the name shown, several get a picker. Zero found falls back to typing. New [user] config: `name` pins one account, `prompt = true` restores the type-it flow. - The greeter opens the greetd conversation at startup in auto mode so it lands directly on the password prompt (AutoStart). - reset_to_username -> reset_auth: auto mode re-opens the password prompt for the same account on error/Escape rather than showing a username field it never had. Typography fix - bind_window_auto re-broadcasts the shared component sheet (incl. its `* { font-size }` base rule) at USER-10, which outranks the APPLICATION-priority provider apply_app_css uses regardless of selector specificity -- so the hero clock and every other type override silently collapsed to base size. Ride breadgreet's sheet through bind_window_auto_with_app_css instead (USER-9), matching breadbar. Polish - Accent rule between the clock and card, drawn in via scaleX with a glow halo; card gradient + top highlight + deep shadow, bg-pop overshoot entrance, slow bg-breathe idle pulse; layered accent focus glow on the entry; gradient session/user pills. Entrance/idle motion is CSS @keyframes now (setup_entrance removed). - Errors pinned to a legible red -- BOS's default @red slot is a warm ochre, unreadable as a warning. - Drop the duplicate prompt text (placeholder + status line both said "Password:"). Preview harness - scripts/preview.sh + scripts/mock-greetd.py run the real greeter in a nested Weston window against a stand-in greetd, so the whole flow (spinner, wrong-password shake, success) is drivable without a reboot. $BREADGREET_CONFIG overrides the config search path so a preview never touches /etc/greetd/breadgreet.toml.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.