breadhelp 0.2.0: live guided tour overlay replacing static onboarding

Replaces the old in-window onboarding wizard with a real screen-wide
tour: dim + spotlight cutout around the actual on-screen component
(breadbar, breadbox), floating callout teaching the shortcut, and
event-driven confirmation via real Hyprland/breadd signals instead of
click-through fakery.
This commit is contained in:
Breadway 2026-07-15 18:48:10 +08:00
parent 78b2f420a5
commit b2f0b2a500
22 changed files with 1186 additions and 299 deletions

71
Cargo.lock generated
View file

@ -39,12 +39,14 @@ dependencies = [
[[package]]
name = "breadhelp"
version = "0.1.0"
version = "0.2.0"
dependencies = [
"async-channel",
"bread-theme",
"gdk4",
"glib",
"gtk4",
"gtk4-layer-shell",
"serde",
"serde_json",
"toml 0.8.23",
@ -260,6 +262,7 @@ dependencies = [
"gdk-pixbuf",
"gdk4-sys",
"gio",
"gl",
"glib",
"libc",
"pango",
@ -323,6 +326,26 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "gl"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404"
dependencies = [
"gl_generator",
]
[[package]]
name = "gl_generator"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
dependencies = [
"khronos_api",
"log",
"xml-rs",
]
[[package]]
name = "glib"
version = "0.22.7"
@ -452,6 +475,34 @@ dependencies = [
"pango",
]
[[package]]
name = "gtk4-layer-shell"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4069987ff4793699511a251028cc336b438e46565b463f111250148d574752a"
dependencies = [
"bitflags",
"gdk4",
"glib",
"glib-sys",
"gtk4",
"gtk4-layer-shell-sys",
"libc",
]
[[package]]
name = "gtk4-layer-shell-sys"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f566a5ec5bcc454e7fcf2ab76930887ced5365afce12c1e5201bb296b95f1b9"
dependencies = [
"gdk4-sys",
"glib-sys",
"gtk4-sys",
"libc",
"system-deps",
]
[[package]]
name = "gtk4-macros"
version = "0.11.0"
@ -511,6 +562,12 @@ version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "khronos_api"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
[[package]]
name = "libc"
version = "0.2.186"
@ -526,6 +583,12 @@ dependencies = [
"libc",
]
[[package]]
name = "log"
version = "0.4.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
[[package]]
name = "memchr"
version = "2.8.2"
@ -1032,6 +1095,12 @@ dependencies = [
"memchr",
]
[[package]]
name = "xml-rs"
version = "0.8.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f"
[[package]]
name = "zmij"
version = "1.0.21"