Aparently Rust doesn't implicitly cast a `Result<Arc<T>>` to
`Result<Arc<dyn T>>`, so the `Result` was being mapped with a explicity
cast.
But unwrapping the `Result` with a `?` and then wrapping it back into
`Ok` make the implicit cast work. This avoid typing the entire type,
which was breaking the code in multiple lines.
This allows Ironbar to run on a wider range of compositors, where support for the `wlr_foreign_toplevel` protocol used by focused/launcher, and the `wlr_data_control_device` protocol used by clipboard is missing
* Fix compilation for many feature combinations
* fix: keep Mpris as the default music player type
* fix: update futures-lite comment
* fix: remove redundant "clap" feature dependency from "cli"
* fix: don't make IPC a dependency of sysinfo module
* refactor: move serde_json feature to "shared" section
* refactor: avoid cfgs inside listen_workspace_events
by splitting list_keyboards_events out of it, which manages its own
connection to the Hyprland IPC socket.
* refactor: sort multiline cfg any's
* Revert "refactor: avoid cfgs inside listen_workspace_events"
This reverts commit 1b4202ed80c9483c609ada8c4436e0fec26a9eef.
* refactor: split listen_workspace_events in more functions
* style: fix broken identation
Not sure why rustfmt didn't catch this.
Adds `orientation` and `justify` options to all modules and custom
widgets where it makes sense to do so.
Any modules without support document this. Widgets fully document the
options inline where present for now.
Resolves#296
This completely reworks the sysinfo module to add support for aggregate functions, better support for working with individual devices, the ability to specify units, and some string formatting support.
Several new tokens have also been added, and performance should be marginally improved.
BREAKING CHANGE: Use of the `sys_info` module in your config will need to be updated to use the new token format. See the wiki page for more info.
This extends the existing `keys` module to be able to show the current keyboard layout, and cycle between layouts (using the `next` command) by clicking. The `keys` module has been renamed to `keyboard` to more accurately reflect its extended featureset.
Renames existing `alphanumeric` sorting method to `label` and adds a new method called `name` which uses the real workspace name, akin to behaviour before #799.
BREAKING CHANGE: The workspace `sort` config option valid values have changed. Where `alphanumeric` is explicitly set, this will need changing to one of `label` or `name`.