Commit graph

12 commits

Author SHA1 Message Date
Breadway
0432c6d73a fix: create GitHub Release before uploading artifacts 2026-06-06 23:52:44 +08:00
Breadway
e3ea3307d2 fix: switch bread-theme to git dep (v0.1.0) for CI 2026-06-06 23:26:49 +08:00
Breadway
7ffd5f785b fix: add missing build deps for hestia (Ubuntu) runner 2026-06-06 23:19:57 +08:00
Breadway
b066198187 fix: use apt-get on hestia runner (Ubuntu, not Arch) 2026-06-06 22:47:41 +08:00
Breadway
c561a449af Refactor theme onto bread-theme; add bakery.toml and release workflow
- breadbox/Cargo.toml: depend on bread-theme with gtk feature
- breadbox/src/main.rs: remove local Palette + hex_to_rgba; use
  bread_theme::{load_palette, hex_to_rgba, gtk::apply_user_css}
- bakery.toml: describes breadbox for bakery install
- release.yml: builds on hestia self-hosted runner, publishes binaries to
  dl.breadway.dev and GitHub Releases on v* tags
2026-06-06 22:31:20 +08:00
Breadway
d823edc14e can't be bothered writing a commit message 2026-05-24 18:57:01 +08:00
Breadway
f4996e495f breadbox: replace backdrop window with full-screen single window
The backdrop approach failed because a GTK4 window with no child widget
gets an empty Wayland input region, so pointer events passed straight
through it rather than being delivered to the GestureClick handler.

Replace with a single full-screen window (anchored to all 4 edges,
transparent background). The launcher UI (vbox) is 700 px wide,
halign=Center, valign=Start — visually identical to before. A
GestureClick on the window closes it when (x,y) falls outside the
vbox's allocation rectangle; clicks inside the vbox reach child widgets
normally and don't trigger the close path.
2026-05-23 12:36:18 +08:00
Breadway
74de775a9b breadbox: fix spurious close via transparent backdrop window
EventControllerFocus::connect_leave was firing whenever the pointer left
the launcher surface because Hyprland's focus-follows-mouse hands keyboard
focus back to the window under the cursor (OnDemand mode).

Fix: introduce a full-screen transparent backdrop window at Layer::Top.
The launcher sits at Layer::Overlay (above it), so the backdrop never
intercepts launcher clicks. Clicking anywhere outside the launcher hits
the backdrop and closes both windows via a shared Rc<dyn Fn()> callback.
The launcher returns to KeyboardMode::Exclusive so the compositor can no
longer steal focus on pointer leave. EventControllerFocus is removed.
2026-05-23 12:31:14 +08:00
Breadway
26431d5969 breadbox: fix unfocus-close, Enter, and arrow key navigation
- KeyboardMode::Exclusive → OnDemand: with Exclusive the compositor
  never sends wl_keyboard::leave, so EventControllerFocus::connect_leave
  never fires. OnDemand lets Hyprland hand focus back on click-outside.
- Move EventControllerKey from search to window, capture phase: bubble
  phase on SearchEntry let its own handlers consume Enter and arrows
  first. Capture phase on the window intercepts all keys before any
  widget sees them, so Enter/Up/Down/Esc always reach our handler.
2026-05-23 12:17:56 +08:00
Breadway
ba8273b2ca breadbox: steal focus on open, close on unfocus
Switch KeyboardMode to Exclusive so Hyprland hands keyboard focus to
breadbox immediately on creation. Add an EventControllerFocus on the
window that calls close() the moment focus leaves (click outside,
alt-tab, compositor focus change, etc.).
2026-05-23 12:12:51 +08:00
Breadway
e6204e94a9 breadbox: replace wofi with native GTK4 layer-shell UI
Remove the wofi subprocess entirely. The launcher now renders its own
Wayland overlay window via gtk4 + gtk4-layer-shell: a SearchEntry at
the top with live fuzzy filtering, a ListBox of results below, and
keyboard navigation (Enter/Esc/arrows). Toggle (keybind press while
open closes it) is handled via a PID file in $XDG_RUNTIME_DIR.
2026-05-23 11:36:29 +08:00
Breadway
d5bbc25986 breadbox: fast Rust application launcher for wofi
Zero-dependency Rust rewrite of the breadboard launcher. Parses
.desktop files in-process (no awk subprocesses), builds a tab-separated
cache for wofi dmenu, and supports stale-while-revalidate background
rebuilds. Apps-only for now; icon support to be added later.
2026-05-23 11:14:16 +08:00