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.
In the workspace applet, this now uses `Workspace` in the front-end code
instead of a tuple with unnamed fields. Handling of scrolling is also
moved to the frontend, which uses less code and seems more natural. It
would be good to have a helper in libcosmic for this. It also changes
`ObjectId` to `ExtWorkspaceHandleV1`, which is a little simpler and I
see no reason here to avoid the more strongly typed object.
At some point we may want a shared subscription for workspaces in
multiple applets. As well as a higher-level abstraction for screen
capture.
Requires pop-os/cosmic-protocols#49.
The duplication between applets, and
cosmic-workspace/xdg-desktop-portal-cosmic, should be moved to shared
abstractions. But that can be done after moving to
`ext-image-copy-capture`.
`ToplevelInfo` now contains both ext and cosmic handles, so the tuples
of handles and info are needed. Use just the info.
TuneD provides a compatibility daemon (tuned-ppd) which replaces
power-profiles-daemon in Fedora 41 [1]. However, the new daemon
can report an "unknown" profile in case the user manipulates with
underlying TuneD profiles directly; see [2].
Before this change, the "unknown" profile makes the battery applet
panic. With this change, the applet reports the balanced profile.
This is in line with the behavior of cosmic-settings [3].
[1] https://pagure.io/fesco/issue/3222
[2] https://github.com/redhat-performance/tuned/pull/669
[3] 6f05e9e/cosmic-settings/src/pages/power/backend/mod.rs (L65)