This is a major refactor which updates GTK, GLib and GTK Layer Shell to their latest versions.
GLib channels, previously used for receiving events on the GLib Main Context thread have been deprecated and a new method for running Futures on the main thread has been added instead. This commit also replaces all the deprecated code with this.
As part of the above, a bug was uncovered related to creating the GLib main context inside the Tokio runtime. Spawning of Tokio tasks has been refactored to fix this.
Previously icons were only loaded from the theme based on the provided icon name. Sometimes no icon name was provided, and sometimes the name is just missing from the theme.
This falls back to using the provided pixbuf, and then falls back to just displaying the name as text if that is not available.
Previously icons were only loaded from the theme based on the provided icon name. Sometimes no icon name was provided, and sometimes the name is just missing from the theme.
This falls back to using the provided pixbuf, and then falls back to just displaying the name as text if that is not available.
* refactor: major module restructuring
Modules now implement a "controller", which allows for separation of logic from UI code and enforces a tighter structure around how modules should be written. The introduction of this change required major refactoring or even rewriting of all modules.
This also better integrates the popup into modules, making it easier for data to be passed around without fetching the same thing twice
The refactor also improves some client code, switching from `ksway` to the much more stable `swayipc-async`. Partial multi-monitor for the tray module has been added.
BREAKING CHANGE: The `mpd` module config has changed, moving the icons to their own object.