Release / tsunagi-linux-aarch64 (push) Successful in 2m44s
Release / tsunagi-linux-x86_64 (push) Successful in 4m37s
Release / tsunagi-macos-aarch64 (push) Canceled after 0s
Release / tsunagi-windows-x86_64 (push) Canceled after 0s
Release / Publish release (push) Canceled after 0s
The tray process holds only the icon and starts the same binary with --window on Open; the window ends when closed, which works on Wayland where a window cannot be hidden. The devices table now names devices as hostname (id5), leaves out this device and counts the others. Co-Authored-By: Claude <noreply@anthropic.com>
42 lines
1.5 KiB
TOML
42 lines
1.5 KiB
TOML
[package]
|
|
name = "tsunagi-tray"
|
|
version = "0.1.0"
|
|
description = "Tray application to manage a running tsunagi agent."
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
[[bin]]
|
|
name = "tsunagi-tray"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# The agent control client and the report types: the GUI is a thin client over
|
|
# the same local control interface the CLI uses, so it reuses these directly
|
|
# and never re-implements the protocol.
|
|
tsunagi = { path = "../tsunagi", version = "0.1.0" }
|
|
# Native, lightweight GUI — no web engine. eframe re-exports egui.
|
|
eframe = { version = "0.31", default-features = false, features = ["default_fonts", "glow", "wayland", "x11"] }
|
|
# Cross-platform tray icon + menu (Windows tray, macOS menu bar, Linux SNI).
|
|
tray-icon = "0.21"
|
|
# Background worker that talks to the agent off the UI thread.
|
|
tokio = { version = "1.53", features = ["rt", "rt-multi-thread", "sync", "time", "macros"] }
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
egui-phosphor = "0.9"
|
|
|
|
# Linux only: tray-icon (already GTK-based there) needs the app to initialise
|
|
# GTK and run its main loop.
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
gtk = "0.18"
|
|
|
|
# Windows and macOS: the tray process has no GUI toolkit, only an event loop to
|
|
# serve the icon (and, on macOS, the Accessory activation policy that keeps it
|
|
# out of the Dock). Pinned to eframe's winit so the types unify.
|
|
[target.'cfg(any(windows, target_os = "macos"))'.dependencies]
|
|
winit = "0.30"
|
|
|
|
[lints]
|
|
workspace = true
|