Renaming workspaces on Hyprland will now work as expected.
This also refactors the workspace code to depend on IDs rather than
names which should make it more robust against the same sort of issue
in future.
Fixes#469
* Add reverse order for launcher items/favorites
* Add lanucher reverse order to docs
* Add example configs for json,toml,yaml,corn
---------
Co-authored-by: SerraPi <serrapm2@gmail.com>
When using spotify in wayland with hyprland, the spotify icon is not
pulled up correctly by the launcher module.
The class/app_id is "" while the name/title is "Spotify Premium". This
uses item.name as a fallback which ensure spotify icon shows up
correctly under wayland.
Refs: #228, #146
This does away with `lazy_static` singletons for all the clients, instead putting them all inside a `Clients` struct on the `Ironbar` struct.
Client code has been refactored in places to accommodate this, and module code has been updated to get the clients the new way.
The Wayland client has been re-written from the ground up to remove a lot of the needless complications, provide a nicer interface and reduce some duplicate data.
The MPD music client has been overhauled to use the `mpd_utils` crate, which simplifies the code within Ironbar and should offer more robustness and better recovery when connection is lost to the server.
The launcher module in particular has been affected by the refactor.
Regression introduced by recent GTK refactor.
The `glib_recv` macros previously using the passed in expression as the receiver, which was causing a new receiver to be created *every* time an event was received. This caused some peculiar behaviours where some events just never got through if sent too close to each other.
This was most obvious in the `workspaces` module.
Fixes#381