Some checks failed
CI / check (pull_request) Failing after 5s
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.
43 lines
1.6 KiB
TOML
43 lines
1.6 KiB
TOML
# breadgreet commonly runs as the dedicated `greeter` system user (per
|
|
# greetd's own convention), so it checks /etc/greetd/breadgreet.toml first;
|
|
# copy this there for a real install. For local dev/testing under a normal
|
|
# user session it falls back to ~/.config/breadgreet/breadgreet.toml.
|
|
#
|
|
# Every field is optional and defaults to the value shown here.
|
|
|
|
[background]
|
|
mode = "color"
|
|
path = ""
|
|
blur = false
|
|
# Slow Ken Burns pan on image backgrounds (gentle drift + zoom). Opt-in: the
|
|
# background redraws continuously at a low frame rate.
|
|
ken_burns = false
|
|
|
|
[clock]
|
|
format = "%H:%M"
|
|
# strftime format for the date line under the clock; empty string hides it
|
|
date_format = "%A · %b %d"
|
|
|
|
[font]
|
|
family = "Varela Round"
|
|
|
|
[user]
|
|
# By default breadgreet enumerates the system's human accounts (/etc/passwd,
|
|
# UID_MIN..UID_MAX from /etc/login.defs) and skips the username field: one
|
|
# account goes straight to the password prompt, several show a picker. These
|
|
# keys override that.
|
|
#
|
|
# Pin one account and don't enumerate (empty = auto-detect):
|
|
name = ""
|
|
# Always ask for the username by hand (the pre-enumeration behaviour):
|
|
prompt = false
|
|
|
|
[sessions]
|
|
# Directories scanned for .desktop session entries, in order.
|
|
wayland_dirs = ["/usr/share/wayland-sessions"]
|
|
xsessions_dirs = ["/usr/share/xsessions"]
|
|
# .desktop file stem (without extension) pre-selected in the picker.
|
|
# Falls back to the first entry found if this isn't present. BOS ships
|
|
# bos.desktop (Exec=bos-session); leaving this as "bos" is what the ISO
|
|
# config expects so Hyprland's own hyprland.desktop is not picked first.
|
|
default = "bos"
|