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

69 commits

Author SHA1 Message Date
673b05e337
fix: panic when module controller errors
If an individual controller fails, it will now error independently and allow other modules to continue loading.

Fixes #1057
2025-06-22 16:26:19 +01:00
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
Claire Neveu
96e10fe139
feat: add menu module
Adds a new Menu module which allows users to create XDG or custom menus that open after clicking on a button.

Resolves #534

Co-authored-by: Jake Stanger <mail@jstanger.dev>
2025-05-26 16:23:49 +01:00
3e55d87c3a
refactor: overhaul .desktop and image resolver systems
Rewrites the desktop file parser code and image resolver code to introduce caching system and make fully async. They should be much faster now.

BREAKING CHANGE: The `icon_theme` setting has been moved from per-bar to top-level
2025-05-25 16:24:17 +01:00
ca524f19f6
refactor: fix some strict clippy warnings 2025-05-25 12:14:24 +01:00
c6f3af4142
refactor: improvements to feature flags 2025-05-16 22:33:54 +01:00
Rodrigodd
5a5b110c7a feat: rename sway_mode to bindmode and add Hyprland support
Signed-off-by: Rodrigodd <rodrigobatsmoraes@hotmail.com>
2025-04-21 19:13:59 -03:00
15177d707e
build: add feature flags for custom, label, script modules 2025-03-24 22:11:24 +00: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
202c19efd4
refactor: update to rust 2024, fix strict clippy warnings 2025-03-03 21:28:29 +00:00
49ab7e0c7b
Merge pull request #837 from BowDown097/master
feat: icon overrides
2025-02-15 22:43:46 +00:00
BowDown097
d5e4e08863 refactor: address requested changes (2) 2025-02-05 07:40:54 -08:00
BowDown097
40d449e011 refactor: address requested changes 2025-02-04 09:48:10 -08:00
kuzy000
03e6f10141
feat(keyboard): ability to display and switch kb layout (#836)
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.
2025-02-03 21:19:30 +00:00
BowDown097
d1b4af4710 refactor: make icon overrides bar-level and apply to focused module 2025-01-16 21:39:06 -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
ccfe73f6a7
feat: libinput keys module
Adds a new module which shows the status of toggle mod keys (capslock, num lock, scroll lock).

Resolves #700
2024-12-27 19:44:25 +00:00
da13b9d500
feat(launcher): truncate and truncate_popup config options 2024-11-24 21:35:38 +00:00
8b05ed526d
refactor: move label truncate function to ext trait
 Conflicts:
	src/gtk_helpers.rs
	src/modules/music/mod.rs
2024-11-24 21:35:31 +00:00
df4bfc83d0
feat(truncate): explicit off mode 2024-11-24 21:30:54 +00:00
05530cf776
fix: regression caused by #652 2024-11-10 17:35:47 +00:00
04f45ccae1
refactor: fix some pedantic clippy warnings 2024-08-14 21:26:40 +01:00
Rodrigo Batista de Moraes
e307e15dc4
feat: new sway-mode module (#671)
* 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
2024-08-05 13:22:01 +01:00
6d0fe4c8ac
feat: add networkmanager module 2024-08-04 12:55:12 +01:00
aa45396062
feat: ability to set bar layer and exclusive zone 2024-06-13 21:42:40 +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
b0a05b7cda
feat: new cairo module
Resolves #105

Co-authored-by: A-Cloud-Ninja <5809177+A-Cloud-Ninja@users.noreply.github.com>
2024-04-17 20:35:35 +01:00
Claire Neveu
44be58594b feat: Add orientation and direction support for sys info 2024-04-06 12:05:04 -04: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
3ba8b4bd96
fix: regressions introduced by #505
- Crash on startup if modules missing common options
- Crash on startup due to disable_popup incorrectly mandatory
2024-04-01 15:40:12 +01:00
46cbaca5e0
feat: option to disable module popup 2024-04-01 15:09:11 +01:00
994f4a4a12
feat: ability to add custom modules instead native modules
Resolves #131
2024-04-01 15:01:37 +01:00
706e040e25
refactor: split bar/top-level config structs
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.
2024-03-29 21:54:04 +00:00
7742a46578
feat: swaync notifications module
Adds a new module which connects to SwayNC to display information from the notifications deamon.

Resolves #7
2024-03-04 20:33:53 +00:00
a70956bb3b
feat: add new volume module 2024-03-04 19:53:02 +00:00
a55ba8c523
refactor: rename get_orientation method to orientation 2024-02-18 14:57:29 +00:00
thmasq
ddf91b18cc build: add focused and launcher feature flags 2024-01-13 22:08:31 -03:00
b2a37a32b0
refactor: fix clippy warning 2023-12-31 00:50: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
ee04cd025a
feat: bar auto-hide options
Adds two new bar-level options:

- `start_hidden`, which stops a bar from showing when Ironbar starts. It can then be hidden via IPC or auto-hide.
- `autohide`, which takes a delay after which the bar will be hidden when the cursor leaves. Hovering at the screen edge where the bar is located reveals the bar again.

Resolves #167
2023-12-10 22:56:43 +00:00
06251e293e
refactor: fix new pedantic clippy warnings 2023-07-16 20:17:32 +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
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
a9ac29d885
fix: clipboard partially behind wrong feature flag 2023-06-30 23:00:52 +01:00
ded50cca6f
feat: support for 'ironvar' dynamic variables 2023-06-29 16:26:54 +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
38da59cd41
refactor: fix a few pedantic clippy warnings 2023-05-04 20:07:46 +01:00