1
0
Fork 0
mirror of https://github.com/Zedfrigg/ironbar.git synced 2025-08-17 14:51:04 +02:00
Commit graph

34 commits

Author SHA1 Message Date
9d18ce52f5
refactor: recv_glib dependency arrays
Adds a dependency array system to `recv_glib` which internally clones the passed deps and then passes by reference to the callback.

This cleans up a lot of the big `{}` blocks full of `widget.clone()` and removes a lot of boilerplate. Yay!
2025-05-26 22:46:25 +01:00
postsolar
c4b29e199c Calendar: reset selected date on each popup open 2025-05-20 17:50:09 +03:00
8575300044
refactor(module): remove redundant into_popup parameters 2025-05-19 15:57:44 +01:00
f929aef2d9
refactor: replace channel macros with ext trait methods 2025-05-18 15:22:58 +01:00
c20feb77b7
feat: fully implement orientation/justify options
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
2025-03-22 19:24:41 +00:00
BowDown097
59b5ddcc69 refactor(clock): move justify above common 2025-01-02 07:01:28 -08:00
BowDown097
9cb1dfc1b1 refactor: enum/struct formatting 2025-01-01 12:27:33 -08:00
BowDown097
708118d266 feat: justify property for clock and custom label 2025-01-01 12:16:04 -08:00
a9a32817e0
Revert "Fix Pango markup not escaped" 2024-06-02 17:42:18 +01:00
9d8a3eb370
fix: correctly escape pango markup 2024-06-02 15:23:30 +01:00
36d724f148
feat(config): json schema support
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.
2024-05-31 22:01:50 +01:00
c7743b28c6
docs: add rustdoc comments to all module options
This part of an upcoming effort to generate documentation from code.

Pushing this out before that stage so that the JSON schema is fully documented.
2024-05-23 21:46:33 +01:00
Claire Neveu
70b2c592b2 feat: Add orientation support for custom label and button 2024-04-06 12:03:43 -04:00
Claire Neveu
702b0a63bf feat: Add orientation support for clock 2024-04-06 12:03:15 -04:00
994f4a4a12
feat: ability to add custom modules instead native modules
Resolves #131
2024-04-01 15:01:37 +01:00
Ross MacLeod
f4384b6252 feat: enable use of markup in clock module format and format_popup, and update documentation to reflect supporting Pango markup in both 2024-02-08 23:33:32 -05:00
57b57ed002
refactor: pass context into modules controllers
This paves the way to keep things tidier for the next refactors.
2024-01-07 23:42:34 +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
06251e293e
refactor: fix new pedantic clippy warnings 2023-07-16 20:17:32 +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
738b9e3da7
feat(config): use default fallback with config instructions
When no config file is found, the bar will now automatically instead load a hard-coded default consisting of the `focused` and `clock` modules, and a `label` informing you the bar is not configured. Instructions are also printed to the log.
2023-07-04 17:38:39 +01:00
b310ea7636
feat(clock): localization support 2023-07-03 23:20:37 +01:00
bd90167f4e
feat(clock): format option for popup header 2023-06-30 11:10:19 +01:00
dea66415c2
feat: module-level name and class options
BREAKING CHANGE: To allow for the `name` property, any widgets that were previously targeted by name should be targeted by class instead. This affects **all modules and all popups**, as well as several widgets inside modules. **This will break a lot of rules in your stylesheet**. To attempt to mitigate the damage, a migration script can be found [here](https://raw.githubusercontent.com/JakeStanger/ironbar/master/scripts/migrate-styles.sh) that should get you most of the way.

Resolves #75.
2023-05-06 13:22:35 +01:00
dfe1964abf
feat(custom): slider widget
Resolves partially #68.
2023-04-10 00:17:09 +01:00
b054c17d14
feat(workspaces): support for using images in name_map 2023-01-30 11:51:01 +00:00
3cf9be89fd
feat: global icon theme setting
BREAKING CHANGE: This removes the `icon_theme` option from `launcher` and `focused`. You will need to set this at the top of your config instead.
2023-01-30 11:51:01 +00:00
5e21cbcca6
refactor: macros to reduce repeated code 2022-12-11 22:45:52 +00:00
9d5049dde0
refactor: standardise error messages 2022-12-11 21:31:45 +00:00
2c1b2924d4
refactor: move most of the horrible add_module macro content into proper functions 2022-12-04 23:23:22 +00:00
c9e66d4664
feat: common module options (show_if, on_click, tooltip)
The first three of many options that are common to all modules.

Resolves #36. Resolves partially #34.
2022-11-28 22:09:18 +00:00
06cfad62e2
feat: more positioning options (#23)
* feat: more positioning options

Can now display the bar on the left/right, and avoid anchoring to edges to centre the bar.

BREAKING CHANGE: The `left` and `right` config options have been renamed to `start` and `end`
2022-10-15 16:27:25 +01:00
720ba7bfb0
Major module refactor (#19)
* refactor: major module restructuring

Modules now implement a "controller", which allows for separation of logic from UI code and enforces a tighter structure around how modules should be written. The introduction of this change required major refactoring or even rewriting of all modules.

This also better integrates the popup into modules, making it easier for data to be passed around without fetching the same thing twice

The refactor also improves some client code, switching from `ksway` to the much more stable `swayipc-async`. Partial multi-monitor for the tray module has been added.

BREAKING CHANGE: The `mpd` module config has changed, moving the icons to their own object.
2022-09-25 22:49:00 +01:00