- New bread-launcher dep (gtk feature), pinned tag v0.7.4 with a dev-only [patch] entry alongside bread-theme's. - Wire the drawer slot (plan §2/§7): root becomes a vbox whose first row is the existing CenterBox and whose second is drawer_box, appended via the same ModuleRegistry::for_each_in_slot pattern left/centre/right already use. Empty for liquid-motion/glass-workbench (zero children, zero size); theme.rs's window.breadbar > centerbox selector becomes > box > centerbox to follow the new nesting, byte-identical CSS for both existing themes. - modules.workspaces.style = dots: bar::workspaces::make_dot_button, width from modules.workspaces.dot_widths, wired as a third rebuild_buttons arm. - New launcher_entry (plain GtkEntry) and launcher_results (bread_launcher::gtk::ResultsList, sharing breadbox's cache/history via bread_launcher::LAUNCHER_APP) modules, built unconditionally and placed only when a theme's [bar.slots] names them (spotlight today). - Capsule expand/collapse: typing/focus opens the drawer and animates its height via bread_theme::anim::spring_to; Up/Down move the selection, Enter launches (do_launch + record_launch) and collapses, Escape collapses and releases keyboard focus (on_demand ties to GTK's own focus-widget state, so releasing GTK focus hands the compositor keyboard back). - window.width now wires Width::Px into set_default_width (previously unconsumed — Fill-anchored themes never needed it, the capsule does). - Two new --screenshot views: capsule-collapsed, capsule-expanded (the latter focuses launcher_entry, types a query, and captures bar height + the drawer's actual settled height rather than a guessed constant). cargo check/clippy: no new warnings (same two pre-existing: dead_code on system_stats_box/cpu_pair/mem_pair/pwr_pair, from_* on workspaces.rs). cargo test: 18/18 unchanged.
54 lines
2.8 KiB
TOML
54 lines
2.8 KiB
TOML
[package]
|
|
name = "breadbar"
|
|
version = "0.3.3"
|
|
edition = "2021"
|
|
description = "Minimal status bar and notification daemon for Hyprland on Wayland"
|
|
license = "MIT"
|
|
authors = ["Breadway <plasticbread849@gmail.com>"]
|
|
repository = "https://git.breadway.dev/Breadway/breadbar"
|
|
keywords = ["wayland", "hyprland", "bar", "status-bar", "gtk4"]
|
|
categories = ["gui"]
|
|
|
|
[dependencies]
|
|
bread-theme = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", tag = "v0.7.4", features = ["gtk"] }
|
|
# Widget rendering client: bread-utils::BreadClient (emit/request/subscribe)
|
|
# for talking to breadd's IPC socket, and bread-shared purely for the
|
|
# WidgetSpec/WidgetNode wire types so we deserialize into real structs
|
|
# instead of hand-parsing serde_json::Value. See src/widgets/.
|
|
bread-utils = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", tag = "v0.7.4", features = ["bread-client"] }
|
|
# v0.8.0-rc.1 carries bread_shared::widget; keep this bread tag even if
|
|
# ecosystem crates move independently.
|
|
bread-shared = { git = "https://git.breadway.dev/Breadway/bread", tag = "v0.8.0-rc.1" }
|
|
# Capture primitives for `--screenshot` mode — see src/screenshot.rs.
|
|
bread-screenshots = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", tag = "v0.7.4" }
|
|
# Headless app-launcher core + GTK4 results-list widget (plan §3/§7): theme
|
|
# 04/spotlight embeds the SAME `ResultsList` breadbox's overlay wraps, via
|
|
# `bar::launcher_results` — one implementation, two hosts. `gtk` feature for
|
|
# the results widget itself.
|
|
bread-launcher = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", tag = "v0.7.4", features = ["gtk"] }
|
|
gtk4 = { version = "0.11", features = ["v4_12"] }
|
|
gtk4-layer-shell = "0.8"
|
|
relm4 = { version = "0.11", features = ["macros"] }
|
|
hyprland = { version = "0.4.0-beta.3", features = ["tokio"] }
|
|
futures-lite = "2"
|
|
zbus = { version = "5", default-features = false, features = ["tokio"] }
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "process", "signal", "sync"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
clap = { version = "4", features = ["derive"] }
|
|
anyhow = "1"
|
|
# Pure-Rust SVG rasteriser (default features off → no text/font deps; the icons
|
|
# are vector-only). Needed because librsvg dropped its gdk-pixbuf SVG loader.
|
|
resvg = { version = "0.47", default-features = false }
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
strip = "symbols"
|
|
|
|
# DEV ONLY — remove before tagging. Points bread-theme at the local
|
|
# bread-ecosystem checkout so Phase 2 can build against `bread_theme::shell`
|
|
# (feature/shell-theme-manifest) before it is tagged as a release.
|
|
[patch."https://git.breadway.dev/Breadway/bread-ecosystem"]
|
|
bread-theme = { path = "../bread-ecosystem/bread-theme" }
|
|
bread-launcher = { path = "../bread-ecosystem/bread-launcher" }
|