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`.
It is possible/valid to define multiple bars by the same name by setting `name` on the top-level bar object, but not specifying monitors. This updates IPC to support this scenario.
Allow IPC to act on multiple bars by the same name (#777)
* feat: add sway-mode module
* refactor: Avoid making multiple connections to SwayIPC
Now `sway::Client` is store in `ironbar.clients`, and allow dynamically
registering event listeners, instead of hardcoding events for Workspace
updates.
Remove the use of `swayipc::Connection` from `sway-mode` module, and
replace it with the new event listener system.
#671
This splits most CLI/IPC commands into two categories:
- `var` for ironvars
- `bar` for controlling individual bars.
It also introduces more commands for visibility, as well as breaking existing ones.
New commands:
- `show`
- `hide`
- `toggle_visible`
- `set_popup_visible`
- `get_popup_visible`
Lastly, the implementation of some existing commands has been improved.
BREAKING CHANGE: All IPC commands have changed. Namely, `type` has been changed to `command`, and bar/var related commands are now under a `subcommand`. The full spec can be found on the wiki.
BREAKING CHANGE: Several CLI commands are now located under the `var` and `bar` categories. Usage of any commands to get/set Ironvars or control bar visibility will need to be updated.
BREAKING CHANGE: The `open_popup` and `close_popup` IPC commands are now called `show_popup` and `hide_popup` respectively.
BREAKING CHANGE: The popup `name` argument has been renamed to `widget_name` on all IPC commands.
BREAKING CHANGE: The `set-visibility` CLI command now takes a `true`/`false` positional argument in place of the `-v` flag.
BREAKING CHANGE: `ok_value` responses will no longer print `ok` as the first line when using the CLI
This PR includes the necessary code changes, CI changes and documentation to generate and deploy a full JSON schema for each release and the master branch, which can be used within config files for autocomplete and type checking.