Add system tray with minimize-to-tray (Tartube parity 1.6)
Uses ksni (StatusNotifierItem via zbus) so we keep our pure-Rust / no-GTK stack — zbus is already pulled in by notify-rust and rfd. Behavior: - Tray icon shows the bundled icon.png; left-click brings the window back to focus - Right-click menu: Show / Hide / Quit - Clicking the window's X button minimizes to tray instead of exiting - Ctrl+Q (or the tray's Quit item) actually exits Failure modes are silent and non-blocking: no DBus → app behaves as if tray flag was off. No StatusNotifier host (e.g. GNOME without the AppIndicator extension) → icon invisible but app still runs normally, and the X-button close cancellation only fires when the tray spawn returned a handle. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
5fd63de903
commit
abe7d63794
5 changed files with 264 additions and 2 deletions
20
Cargo.lock
generated
20
Cargo.lock
generated
|
|
@ -2040,6 +2040,19 @@ version = "3.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
|
||||
|
||||
[[package]]
|
||||
name = "ksni"
|
||||
version = "0.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a7ca513d0be42df5edb485af9f44a12b2cb85af773d91c27dc796d1c58b78edc"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"pastey",
|
||||
"serde",
|
||||
"tokio",
|
||||
"zbus 5.15.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "leb128fmt"
|
||||
version = "0.1.0"
|
||||
|
|
@ -2731,6 +2744,12 @@ version = "1.0.15"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
||||
|
||||
[[package]]
|
||||
name = "pastey"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4"
|
||||
|
||||
[[package]]
|
||||
name = "percent-encoding"
|
||||
version = "2.3.2"
|
||||
|
|
@ -5104,6 +5123,7 @@ dependencies = [
|
|||
"axum",
|
||||
"eframe",
|
||||
"image",
|
||||
"ksni",
|
||||
"notify-rust",
|
||||
"r2d2",
|
||||
"r2d2_sqlite",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue