Fix boot-critical, session, and UX bugs found in round-3 UX audit
Snapshots panel was non-functional (wrong snapper flag); breadgreet picked the wrong session .desktop and skipped bos-session's PATH fixup; Calamares aborted offline installs over an unnecessary packages module; snapshot rollback silently no-op'd on BOS's pinned-subvolume layout (now points at grub-btrfs instead); breadcrumbs was configurable but had no daemon to run it. Also: SUPER+I double-bind, breadpaper/packages panels blocking the GTK main thread, dead polkit rule, and a sweep of smaller drift (default sidebar view, stale wording, missing .desktop launchers, wallpaper daemon not recording its own default).
This commit is contained in:
parent
a8f1592e75
commit
d78a2343f4
32 changed files with 553 additions and 209 deletions
|
|
@ -1 +1,5 @@
|
|||
bread.activate_profile("default")
|
||||
bread.once("bread.system.startup", function()
|
||||
bread.profile.activate("default")
|
||||
end)
|
||||
|
||||
return bread
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
[[profile]]
|
||||
name = "home"
|
||||
ssids = []
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
# Copy to ~/.config/breadlock/breadlock.toml — every field is optional and
|
||||
# defaults to the value shown here if omitted or the file doesn't exist.
|
||||
|
||||
[background]
|
||||
# "color" (bread-theme palette background) or "image" (a PNG, cover-fit)
|
||||
mode = "color"
|
||||
path = ""
|
||||
# v2 feature — accepted but currently just logs a warning and shows the
|
||||
# background unblurred (needs a wlr-screencopy capture, not implemented yet).
|
||||
blur = false
|
||||
|
||||
[clock]
|
||||
# strftime format
|
||||
format = "%H:%M"
|
||||
|
||||
[font]
|
||||
family = "Varela Round"
|
||||
|
||||
[input]
|
||||
# How long the "wrong password" state (red pill) shows before input
|
||||
# re-enables, in milliseconds.
|
||||
fail_timeout_ms = 800
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
# playback, etc. won't dim or suspend the machine). Vendor-neutral: nothing here
|
||||
# is Intel/AMD specific.
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
lock_cmd = pidof breadlock || breadlock
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
ignore_dbus_inhibit = false
|
||||
|
|
|
|||
|
|
@ -124,10 +124,15 @@ hl.bind(mod .. " + comma", hl.dsp.exec_cmd("bos-settings"))
|
|||
hl.bind(mod .. " + slash", hl.dsp.exec_cmd("bos-keybinds"))
|
||||
hl.bind(mod .. " + L", hl.dsp.exec_cmd("loginctl lock-session"))
|
||||
hl.bind(mod .. " + F", hl.dsp.window.fullscreen({ action = "toggle" }))
|
||||
hl.bind(mod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mod .. " + I", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mod .. " + P", hl.dsp.window.pseudo({ action = "toggle" }))
|
||||
hl.bind(mod .. " + R", hl.dsp.window.resize())
|
||||
-- breadclip (its own gtk4-layer-shell popup — not a TUI, so no terminal
|
||||
-- needed). Previously piped cliphist through fzf directly from the
|
||||
-- compositor with no terminal attached, which was a silent no-op.
|
||||
-- Bound on both V (breadclip's own suggested default, freed up now that
|
||||
-- float toggle moved to I) and SHIFT+V (kept for muscle memory).
|
||||
hl.bind(mod .. " + V", hl.dsp.exec_cmd("breadclip"))
|
||||
hl.bind(mod .. " + SHIFT + V", hl.dsp.exec_cmd("breadclip"))
|
||||
hl.bind(mod .. " + T", hl.dsp.layout("togglesplit"))
|
||||
hl.bind(mod .. " + Tab", hl.dsp.focus({ urgent_or_last = true }))
|
||||
|
|
@ -185,6 +190,7 @@ hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"
|
|||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86Calculator", hl.dsp.exec_cmd("gnome-calculator"))
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- Autostart. polkit agent + the bread ecosystem + idle daemon + wallpaper.
|
||||
|
|
@ -206,8 +212,12 @@ hl.on("hyprland.start", function()
|
|||
-- rather than an exec-once here.
|
||||
"/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1",
|
||||
"awww-daemon",
|
||||
-- set the default wallpaper once the daemon is up (retry until ready)
|
||||
[[bash -c 'until awww img /usr/share/backgrounds/bos/bread-background.png 2>/dev/null; do sleep 0.3; done']],
|
||||
-- Set the default wallpaper once the daemon is up (retry until
|
||||
-- ready) via `breadpaper set`, not raw `awww img` — breadpaper also
|
||||
-- generates the pywal palette and reloads bread-theme, and records
|
||||
-- the path so `breadpaper get` (and its bos-settings panel) show
|
||||
-- the real default instead of "No wallpaper set" on a fresh install.
|
||||
[[bash -c 'until breadpaper set /usr/share/backgrounds/bos/bread-background.png 2>/dev/null; do sleep 0.3; done']],
|
||||
-- breadd runs as a systemd user service (~/.config/systemd/user/breadd.service,
|
||||
-- enabled in skel). It autostarts at login but before Hyprland exists, so
|
||||
-- push the compositor's Wayland env into the user manager and restart breadd
|
||||
|
|
|
|||
|
|
@ -1,28 +0,0 @@
|
|||
# Lock screen (hyprlock). Solid dark background (no runtime-generated wallpaper
|
||||
# dependency), accent matched to the Hyprland border colour.
|
||||
general {
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
color = rgba(46, 52, 64, 1.0)
|
||||
blur_passes = 0
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 0.2)
|
||||
outer_color = rgba(136, 192, 208, 0.8)
|
||||
check_color = rgba(120, 220, 140, 0.95)
|
||||
fail_color = rgba(255, 90, 90, 0.95)
|
||||
font_color = rgba(255, 255, 255, 0.95)
|
||||
fade_on_empty = false
|
||||
rounding = 12
|
||||
placeholder_text = <i>Password…</i>
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=breadclip
|
||||
Comment=Clipboard history
|
||||
Exec=breadclip
|
||||
Icon=edit-paste
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Utility;
|
||||
StartupWMClass=breadclip
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=breadman
|
||||
Comment=Notes and reminders manager
|
||||
Exec=breadman
|
||||
Icon=accessories-text-editor
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Utility;Office;
|
||||
StartupWMClass=breadman
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=breadmon
|
||||
Comment=Monitor layout manager (TUI)
|
||||
Exec=breadmon
|
||||
Icon=video-display
|
||||
Terminal=true
|
||||
Type=Application
|
||||
Categories=Settings;System;
|
||||
StartupWMClass=breadmon
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=breadsearch
|
||||
Comment=Semantic system-wide search
|
||||
Exec=breadsearch
|
||||
Icon=system-search
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Utility;
|
||||
StartupWMClass=breadsearch
|
||||
Loading…
Add table
Add a link
Reference in a new issue