Spotlight phase 1: auto-hiding pill with workspace modes and widget slots #27
Labels
No labels
bug
ci
enhancement
feature
privacy
security
theme-system
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Breadway/breadbar#27
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Phase 1 of BAR-26. Implement the spotlight pill to match the approved mockup (https://claude.ai/artifact/49uF81wgNZi9pqDFoA2Xif).
Scope:
Verification: screenshots from bread-capture's isolated compositor (or a nested session), never the live desktop. States: tucked, shown, widgets on/off, each workspace mode.
Out of scope: the stage, results, surtitles and in-pill levels (later phases).
Progress: bread-theme schema landed on feature/spotlight-pill (bread-ecosystem worktree, commit 25be473).
Added modules.workspaces.display (none/current/all, defaults to all so every other theme is unaffected), a bar.autohide table (off by default, on for spotlight with the mockup's own timings: 420x14 hot zone, 600ms retuck, 3800/1400/1200ms peeks), and sep/flag/unread as new builtin bar modules. Rewrote spotlight/theme.toml as a 30px fully rounded, content-hugging, top-anchored pill with no exclusive zone, one flat slot row (workspaces, sep, widget:left_of_clock, clock, widget:right_of_clock, flag, unread), pill style workspaces, and plain clock. Appended pill CSS primitives to the shared base.css template (confirmed inert/dead CSS for the other 4 builtins via re-blessed golden snapshots).
cargo test -p bread-theme: 119 passed. cargo clippy: clean. Old spotlight tests describing the previous capsule-launcher design were rewritten to match the new pill.
Next: breadbar side (pill widget assembly, workspace display filter, auto-hide state machine, hot-zone/lip surface, CLI toggle, screenshots).
Progress: pill rendering and auto-hide landed on feature/spotlight-pill (breadbar worktree, commit
a3f94a0).Renders the pill per the mockup: workspaces, a collapsing divider, widget:left_of_clock/right_of_clock slots, the plain clock, a low-battery flag, and an unread dot, all as regular bar modules the existing [bar.slots] system places. Workspace display (none/current/all) is a pure, unit-tested filter layered on top of the existing style/show_empty logic. Auto-hide is a pure, unit-tested decision function driving a layer-shell margin spring animation, with a separate hot-zone/lip satellite window for hover-while-tucked. Peeks wired from notifications, volume/brightness OSD events, and workspace switches; low battery keeps it down. Added breadbar --pill toggle|show over the existing dev.breadway.Bar D-Bus surface.
cargo test: 64 passed (14 new). cargo clippy: clean. cargo fmt: no new diffs versus baseline (repo already has pre-existing drift elsewhere).
Next: bread-capture screenshot views, visual verification, and final report.
Phase 1 complete on feature/spotlight-pill in both worktrees (breadbar
4ce67a3, bread-ecosystem 829f405).Screenshots taken via bread-capture's isolated Sway session for all required states: pill shown/tucked/hover, widgets on/off, all three workspace display modes, and low battery. Two capture-only bugs found and fixed along the way: the hot-zone/lip satellite window needed an explicit transparent background (it painted as an opaque black bar over the whole hot-zone footprint), and three of the mocked screenshot states (widgets-on, low-battery, workspace modes) were racing real data sources reachable from the isolated session (a real bread daemon, a real battery, Hyprland IPC absence) that clobbered the forced capture state; each now skips starting its one real source for its own view.
Final: cargo test/clippy/fmt clean in both repos (bread-theme 119 tests, breadbar 64 tests, no new fmt diffs versus baseline). Full report going to the user now. Leaving this in doing per instructions.
Review of phase 1 (breadbar feature/spotlight-pill after
b51845d, bread-ecosystem feature/spotlight-pill after 5b0626b).Verdict: PASS, with fixes applied. The architecture holds up (pure auto-hide decision function, generation-debounced hover, the peek hold is extend-only, animations are cancelled before a new one starts, all new options default to off/All so the other four themes are untouched). Tests: bread-theme 119 passed, breadbar 64 passed, clippy clean. I re-captured every pill-* view plus glass-workbench and liquid-motion
barin bread-capture's isolated sway.Blocking issues found and fixed:
6569c40).5877782).55ff646).d1b30fa).Non-blocking, for later:
breadbar --pill toggle|showexists, so a Hyprland bind is needed in BOS.No Forgejo PR or remote work branch is available for review. The issue comments point to local-only
feature/spotlight-pillworktrees (breadbarfc078d4, bread-ecosystemb249b33), both ahead oforigin/main, but neither branch exists on Forgejo and there is no open PR. I cannot publish or push a branch as reviewer. Please publish the existing branch(es) and link the PRs; leaving BAR-27 in review.Dependency PR: Breadway/bread-ecosystem#45 adds the bread-theme schema, styles, and bread-capture changes required by this spotlight work. Merge it before the breadbar PR, which will follow on feature/spotlight-pill. Headless Sway captures passed for pill shown/tucked, stage idle/results, critical surtitle, and in-pill levels.
Breadbar implementation PR: #37. Dependency: merge bread-ecosystem PR #45 first, which provides the theme API and CSS. Headless Sway smoke captures passed for the shown/tucked pill, stage idle/results, critical surtitle, and in-pill level.
PR #37 check / check (push) is currently failing. The implementation depends on bread-ecosystem PR #45, which has passed CI but is not merged yet. I am moving this card to TODO as requested for REVIEW items with failing CI. Recheck the breadbar CI after #45 merges; then send it back through review.
PR #37 now passes fresh
check / check (push)on0fd9f05(5m17s). The merged bread-ecosystem #45 dependency is resolved through the existing PR-checkscripts/dev-deps.shworkflow, which records bread-ecosystem d9ab179 in the generated dev-deps lock; Cargo.toml and the committed release-tag Cargo.lock remain unchanged. Local clippy, build, and all 120 tests pass against that same dependency commit. Ready for independent review: #37