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.
* 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>
This allows for some options which are not actually bar-level to be separated, which makes some work moving forward a little easier and keeps things cleaner.