feat: add system tray (StatusNotifierWatcher / SNI)
Some checks failed
release / build (push) Failing after 3s
Some checks failed
release / build (push) Failing after 3s
Implements org.kde.StatusNotifierWatcher as a D-Bus service so apps like Nextcloud can register their tray icons. Icons are rendered from SNI ARGB pixmaps (falling back to icon-name theme lookup), click calls Activate(0,0), and NameOwnerChanged cleans up ghost icons when an app exits. Styling follows the Bread Design System (4px tertiary radius, xs/sm spacing, opacity transitions). Also fixes a latent infinite-loop risk in osd.rs (.flatten → .map_while) and syncs the notifications server version string to CARGO_PKG_VERSION.
This commit is contained in:
parent
a036737823
commit
44a8d95887
8 changed files with 277 additions and 7 deletions
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Minimal status bar and notification daemon for [Hyprland](https://hyprland.org/) on Wayland.
|
||||
|
||||
A single Rust binary that provides a full-width top bar and a standards-compliant D-Bus notification daemon, with no system tray, no launcher, and no wallpaper logic.
|
||||
A single Rust binary that provides a full-width top bar, a system tray, and a standards-compliant D-Bus notification daemon. No launcher, no wallpaper logic.
|
||||
|
||||
## Features
|
||||
|
||||
|
|
@ -10,7 +10,7 @@ A single Rust binary that provides a full-width top bar and a standards-complian
|
|||
|
||||
- Left: live workspace buttons sourced from Hyprland IPC, active workspace highlighted
|
||||
- Centre: clock (`HH:MM`, updates at the top of each minute)
|
||||
- Right: CPU%, RAM, power draw (W), battery level + AC indicator, Bluetooth state, WiFi SSID with signal strength
|
||||
- Right: CPU%, RAM, power draw (W), battery level + AC indicator, Bluetooth state, WiFi SSID with signal strength, system tray (SNI)
|
||||
|
||||
**Notification daemon**:
|
||||
|
||||
|
|
@ -105,6 +105,7 @@ Example — change the font size:
|
|||
| `src/bar/workspaces.rs` | Hyprland IPC event stream, workspace buttons |
|
||||
| `src/bar/clock.rs` | Minute-tick clock |
|
||||
| `src/bar/stats.rs` | Polling loop: CPU, RAM, power, battery, Bluetooth, WiFi |
|
||||
| `src/bar/tray.rs` | `org.kde.StatusNotifierWatcher` D-Bus service, SNI item rendering |
|
||||
| `src/notifications/mod.rs` | `org.freedesktop.Notifications` zbus service |
|
||||
| `src/notifications/popup.rs` | Layer-shell popup window and card stack |
|
||||
| `src/theme.rs` | pywal reader, GTK CSS provider injection |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue