Commit graph

27 commits

Author SHA1 Message Date
Ian Douglas Scott
aa438821b9 status-area: Seperate daemon for status notifier daemon
This allows the applet to be restarted on panel configuration changes
without replacing the daemon, or having races between different applet
instances trying to run the watcher.

Otherwise, this should behave similarly to the existing version.

Should fix https://github.com/pop-os/cosmic-panel/issues/284.
2026-02-02 10:36:16 -08:00
Ian Douglas Scott
fe0e4bf409 status-area: Use ItemIsMenu correctly
The comment that was previously here assumed that `ItemIsMenu` should be
defined for any status item that has a menu, but the FreeDesktop spec
rather defines it as an item that "only supports the context menu", so
we should open the menu instead of trying to call `Activate`.

This change won't affect behavior if `ItemIsMenu` is true, but `Activate`
errors, except by opening the menu without having to wait for that
errror first. It will fix the left click to open menu behavior if any
client defines that method to not error, but does set `ItemIsMenu`.
2026-02-02 10:34:25 -08:00
Ian Douglas Scott
6e99ad42b5 status-area: Don't add duplicate status item
Some clients seem to have issues with this.
2026-02-02 10:34:25 -08:00
Michael Aaron Murphy
f06c6a0b80 chore: update dependencies and debian changelog 2026-01-13 15:33:04 -05:00
Hojjat
a502720a42 fix(status-area): update menu on property update too
Updated menu text (activate/deactivate) or checkmark trigger a property
update and not a layout update.
2026-01-12 12:18:11 -05:00
夜未央,天将亮
9db4ebdc2d
fix(status-area): implement activate on left-click with menu fallback 2025-12-30 08:27:24 +01:00
Ian Douglas Scott
9b979ccf74 status-area: Add theme_path to IconUpdate 2025-12-18 11:41:28 -07:00
Ian Douglas Scott
e7e275abf7 status-area: Use struct instead of enum for IconUpdate 2025-12-18 11:41:28 -07:00
Ashley Wulber
b026db6f7c fix(status-area): better handle apps with no menus 2025-11-10 11:50:39 -05:00
Cheong Lau
5369b4eb29
perf: use rustc-hash for HashMap and HashSet 2025-10-22 04:33:30 +02:00
Cheong Lau
8e0f1c4a09
chore: apply recommendations from clippy 2025-10-04 02:51:18 +02:00
Vukašin Vojinović
2b7b4cba56 chore: update to Rust 2024 edition 2025-08-18 16:44:50 +02:00
Ashley Wulber
a5d813dc9b feat(status-area): provide activation token on menu item activation 2025-08-06 12:52:33 -04:00
Ian Douglas Scott
1d3d869f4a
status-area: Fix handling of NameOwnerChanged with non-None new name (#1010)
Fixes issue where `fcitx5` app icon persists after it is no longer
running. It seems it was getting a `NameOwnerChanged` event with the
acquired name after `register_status_notifier_item()`.
2025-08-04 21:33:55 +02:00
Ian Douglas Scott
417f43a0f5 Update to zbus 5.x 2025-05-28 13:40:23 -04:00
Ian Douglas Scott
2a939e5a11 status-area: Handle changes to icon properties
It seems status icons, at least some, don't send property change
notifications. So we can't rely on that, and have to disable caching.
And handle the `NewIcon` signal defined in
https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierItem

I'm not sure whether or not there's a *good* reason it works this way,
but regardless I see `nm-applet` and `ibus` update their icons as
they should after these changes.
2025-03-17 20:46:08 -07:00
Ashley Wulber
5b5cd77e7c update iced 2024-10-31 17:52:33 -04:00
Ian Douglas Scott
a5dfc883b8 status-area: Call AboutToShow before showing menu
Comments in `gnome-shell-extension-appindicator` indicate this is
necessary for some clients. Checking the return value doesn't seem to
be.

There are more comments about Dropbox; more may be needed to fix it,
which doesn't seem to behave very properly.
2024-06-24 13:34:15 -06:00
Ian Douglas Scott
1370558546 status-area: Ignore shortcut field to fix parse error
If this has the wrong type, it causes a parse error due to
https://github.com/dbus2/zbus/issues/856.

This fixes the status icon for Slack, and probably other applications.
Not sure how this field is defined in general, but with Slack it is
an `aas`.

`gnome-shell-extension-appindicator` doesn't seem to use the `shortcut`
field either.
2024-06-24 13:34:15 -06:00
Ian Douglas Scott
3641bf8bce status-area: Use zbus::interface instead of deprecated dbus_interface 2024-06-24 13:34:15 -06:00
Ashley Wulber
87250b5e50 zbus update 2024-05-18 01:38:41 +02:00
Michael Aaron Murphy
8527257ddd chore: add SPDX license identifiers 2024-05-06 21:56:50 +02:00
Ian Douglas Scott
d5aa2f3252 status-area: Handle clients that don't provide icon_name/icon_pixmap
It seems some clients expose the properties and leave them empty, but
others just provide either one on its own.

This fixes clients like Mattermost.
2024-03-28 15:31:44 -07:00
Ian Douglas Scott
180e75cb9a
status-area: Show icons that have icon_pixmap but not icon_name (#302)
This is at least one of the issue behind
https://github.com/pop-os/cosmic-applets/issues/165. OBS now shows it's
icon instead of an empty space. But the Mattermost flatpak doesn't show
anything. (Is that Flatpak related, or does it not use
`StatusNotifierItem`?)

Requires https://github.com/pop-os/libcosmic/pull/368. Ideally, it
should have some way to choose from multiple icons in memory of
different sizes.
2024-03-27 13:33:37 -07:00
daniel.eades
fed18d3726 avoid single variant match statements 2023-11-16 15:47:20 -05:00
daniel.eades
41b88532c9 remove needless borrows 2023-11-16 15:47:20 -05:00
Ian Douglas Scott
6a64486163 Iced port of status area applet
This is based on the GTK version of the status area applet that was
previously in this repository.

This exposes app indicators found over dbus. As used in applications
like nm-applet and steam.
2023-08-24 16:57:27 -07:00