1
0
Fork 0
mirror of https://github.com/Zedfrigg/ironbar.git synced 2025-04-20 11:54:23 +02:00
Commit graph

21 commits

Author SHA1 Message Date
aa45396062
feat: ability to set bar layer and exclusive zone 2024-06-13 21:42:40 +01:00
9dd711235f
feat!: improve CLI structure, add new commands
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
2024-06-01 17:04:51 +01:00
7413f78e04
feat(cli): debug flag 2024-06-01 17:01:14 +01:00
cfaba87f2f
feat(ipc): ironvar list command 2024-04-13 23:08:45 +01:00
9245188af7
refactor: better error handling for client initialization 2024-04-01 16:34:25 +01:00
994f4a4a12
feat: ability to add custom modules instead native modules
Resolves #131
2024-04-01 15:01:37 +01:00
a10466e7e9
fix(popup): re-position on resize due to content change 2024-02-18 14:57:33 +00:00
8371a92204
feat: load bars on monitor when it connects
Finally, Ironbar will respond to events of monitors being (dis)connected, and will create bars when a monitor connects.

This means at last - resolves #291

yaay
2024-01-13 17:20:09 +00:00
c702f6fffa
refactor: major client code changes
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.
2024-01-09 23:33:07 +00:00
b4d75450ac
fix(regression): GTK refactor causing updates to be missed
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
2023-12-31 15:56:41 +00:00
bea442ed96
refactor: update gtk/glib, remove glib channels
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.
2023-12-18 22:09:21 +00:00
b2fa19ab6c
refactor: begin restructuring core code to better encapsulate
This is a first pass towards trying to structure things a bit better, with data generally encapsulated under a single hierarchical tree, rather than lots of globals all over the place. Lots of work is still required.

The plan is that with this and some more work, #291 should become a lot easier to sort.
2023-12-08 22:39:27 +00:00
08e354e019
refactor: fix new clippy warnings 2023-10-19 21:12:19 +01:00
b7ee794bfc
feat(ipc): commands for opening/closing popups
Also includes some refactoring around related GTK helper code
2023-07-16 19:15:55 +01:00
c582bc3390
fix(cli): set-visible command causing panic 2023-07-16 18:47:44 +01:00
A-Cloud-Ninja
2ccb2633c6
feat: IPC for get_visible, set_visible, new bar name config option 2023-07-16 18:21:44 +01:00
eee2182ab9
fix(ipc): command/response casing 2023-07-09 19:59:17 +01:00
7d3bb02b46
feat(ipc): reload config command 2023-07-01 00:05:12 +01:00
c6319b78fd
feat(ipc): support for injecting additional stylesheets 2023-06-29 16:26:55 +01:00
ded50cca6f
feat: support for 'ironvar' dynamic variables 2023-06-29 16:26:54 +01:00
f5bdc5a027
feat: ipc server and cli 2023-06-29 16:19:19 +01:00