From 9b979ccf74ea87669c8281bfe78602e539886998 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 4 Nov 2025 10:29:58 -0800 Subject: [PATCH] status-area: Add `theme_path` to `IconUpdate` --- .../src/subscriptions/status_notifier_item.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cosmic-applet-status-area/src/subscriptions/status_notifier_item.rs b/cosmic-applet-status-area/src/subscriptions/status_notifier_item.rs index 392a2463..377f3bcd 100644 --- a/cosmic-applet-status-area/src/subscriptions/status_notifier_item.rs +++ b/cosmic-applet-status-area/src/subscriptions/status_notifier_item.rs @@ -4,6 +4,7 @@ use cosmic::iced::{self, Subscription}; use futures::{FutureExt, StreamExt}; use rustc_hash::FxHashMap; +use std::path::PathBuf; use zbus::zvariant::{self, OwnedValue}; #[derive(Clone, Debug)] @@ -24,6 +25,7 @@ pub struct Icon { pub struct IconUpdate { pub name: Option, pub pixmap: Option>, + pub theme_path: Option, } impl StatusNotifierItem { @@ -96,9 +98,11 @@ impl StatusNotifierItem { async fn icon_events(item_proxy: StatusNotifierItemProxy<'static>) -> IconUpdate { let icon_name = item_proxy.icon_name().await; let icon_pixmap = item_proxy.icon_pixmap().await; + let icon_theme_path = item_proxy.icon_theme_path().await.map(PathBuf::from); IconUpdate { name: icon_name.ok(), pixmap: icon_pixmap.ok(), + theme_path: icon_theme_path.ok().filter(|x| !x.as_os_str().is_empty()), } } @@ -136,6 +140,9 @@ pub trait StatusNotifierItem { #[zbus(property)] fn icon_name(&self) -> zbus::Result; + #[zbus(property)] + fn icon_theme_path(&self) -> zbus::Result; + // https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/Icons #[zbus(property)] fn icon_pixmap(&self) -> zbus::Result>;