1
0
Fork 0
mirror of https://github.com/Zedfrigg/ironbar.git synced 2025-09-18 12:46:58 +02:00
Commit graph

575 commits

Author SHA1 Message Date
f83c9e6852
refactor(networkmanager): merge devices and watchers fields in ClientInner 2025-09-04 11:17:42 +02:00
01de9da7e0
refactor(networkmanager): store property watcher join handles & stop them when no longer needed
Also optimise dbus connection and proxy creation.
2025-09-03 18:11:56 +02:00
13c2520c76
refactor(networkmanager): use inner client with static lifetime, make its functions methods 2025-09-03 12:41:20 +02:00
5385c7e705
refactor(networkmanager): Replace Mutex with RwLock for shared state in run(), add debug logging 2025-09-03 11:29:40 +02:00
3ffb668e6b
refactor(networkmanager): pass device proxy directly to device state watcher
Also clarify what receiver we're dealing with in handle_update_events.
2025-09-02 23:23:44 +02:00
4c516a1c2a
refactor(networkmanager): rename DeviceStateChanged event to DeviceChanged
Also add a little TODO about icon order.
2025-09-02 22:44:14 +02:00
ec00b2ce69
refactor(networkmanager): break Client::run up into multiple functions
Also replace its shared state lifetime and synchonisation mechanisms with Arc<Mutex<_>>.
2025-09-02 22:26:30 +02:00
226b32ce6a
fix(networkmanager): support late module initialisation
For example when a second monitor is connected while Ironbar is already running.
2025-09-02 20:42:26 +02:00
4594271c42
refactor(networkmanager): remove now unused state.rs 2025-08-20 20:02:47 +02:00
dfad982204
refactor(networkmanager): implement clippy::pedantic suggestions 2025-08-20 19:08:42 +02:00
4a09e95370
Merge branch 'master' into feat/networkmanager-multi-icon 2025-08-20 17:40:27 +02:00
48493c6193
refactor(networkmanager): event-based approach, update module interfaces
An extensive refactor of the multiple icons features, containing the following changes:

- Reflect the changes in module UI and client interfaces to the rest of Ironbar
- Replace state-based communication from client to UI with an event-based one
- D-bus device watching rewritten without the use of macros
- Defining which types of devices get an icon now takes place in the UI code
2025-08-20 15:16:27 +02:00
e6f610687c
refactor(networkmanager): remove unnecessary async & unused fields 2025-08-17 21:15:10 +02:00
8bb95e2e3f
fix(networkmanager): prevent race condition, support all device types 2025-08-17 20:57:40 +02:00
1836ab2943
refactor(networkmanager): replace state-based w/ event-based approach 2025-08-16 15:31:06 +02:00
9ca5f4baa4
WIP failed attempt at StreamMap-based implementation 2025-08-14 18:14:31 +02:00
26686739a0
WIP update of networkmanager & volume modules 2025-08-10 16:37:55 +02:00
slowsage
0159c0155e fix: app_id StartupWMClass resolution in launcher 2025-08-03 16:22:06 -04:00
Alan
5520562a18
feat: support glob patterns for keyboard layout icons (#949)
* Simplistic globbing for matching keyboard layout icons

Update the logic for determining the display text for the current keyboard layout.
Instead of a direct map lookup, iterate through the layout map to support wildcard matching.

Patterns ending with `*` will match any language string starting with the characters before the `*`. This allows grouping similar layouts (e.g., `English`, `English (Colemak-DH ISO)`) under a single pattern like `English*`.

* Use `IndexMap` instead of `HashMap` for keyboard layout icons map

This enables users to choose which globs to prioritize via ordering in the config

* Enable feature `serde` for `indexmap`

* Document wildcard matching for keyboard layouts

* Enable `indexmap2` feature flag for `schemars`

* Add missing period

* use string slices

* Fix formatting
2025-07-20 22:19:58 +01:00
feccc29fd1
fix: regression caused by #1089
This resolves an issue caused by a previous fix which broke launching applications with the `launcher` and `menu` modules
2025-07-20 16:21:31 +01:00
slowsage
ff185d0de9 fix(desktop_file): case-insensitive app_id -> desktop_file find 2025-07-19 04:01:51 -04:00
40adfaf810
fix: opening programs via launcher and menu leaving zombie processes
Fixes #1020
2025-07-14 21:42:11 +01:00
c4f5485d53
fix(ipc): message size limited to 1024 bytes
Fixes #1065
2025-07-14 21:06:57 +01:00
f1a8b42cfa
chore: clippy/fmt 2025-07-14 19:55:46 +01:00
3a3888a2d6
chore: update deps 2025-07-14 19:55:25 +01:00
b68e4b4af9
chore(deps): update system-tray 2025-07-14 19:34:04 +01:00
c42024d48a
Merge branch 'master' into develop
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/clients/networkmanager.rs
#	src/modules/networkmanager.rs
#	src/modules/volume.rs
2025-07-14 14:44:53 +02:00
bb7e927309
Merge pull request #1060 from Username404-59/master
Add a launch_command setting
2025-06-22 17:39:51 +01:00
Username404-59
d891893101
Rename launch_command to open_program & move it to desktop_file.rs 2025-06-22 18:31:22 +02:00
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
Username404-59
d2f46a59b4
Make launch_command more flexible with {app_name} 2025-06-22 16:45:17 +02:00
Username404-59
a6f63b3bf1
Improve launch_command 2025-06-22 16:15:33 +02:00
Username404-59
a253a23d57
Remove now unused imports in menu 2025-06-21 19:12:22 +02:00
Username404-59
c2d55a1963
Add documentation for launch_command 2025-06-21 14:47:53 +02:00
Username404-59
931807e326
Add a launch_command setting
(and put duplicate code in a function)
2025-06-21 14:21:54 +02:00
Preston Corless
81ce2c169f
fix(upower): round battery percent to whole number (#1058) 2025-06-20 18:20:27 +01:00
923fc4b5af
Merge pull request #1048 from postsolar/feat/music-popup-truncate
feat(music): Add `truncate_popup_{artist,album,title}` to `music`
2025-06-16 11:40:42 +01:00
postsolar
69ae4c2ac6 Add truncate_popup_{artist,album,title} to music 2025-06-16 13:36:28 +03:00
postsolar
f9ff267aa2 Add truncate option for volume popup 2025-06-14 05:43:42 +03:00
b62d0d58cb
refactor: fix clippy warnings 2025-05-27 13:33:05 +01:00
3c4b6a0fdb
refactor: remove unnecessary Clone constraint from recv_glib methods 2025-05-27 13:31:22 +01:00
448f461943
fix: regression - image prefixes not handled correctly
Fixes #1015
2025-05-27 11:38:08 +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
333796a9ae
Merge pull request #609 from ClaireNeveu/menu-widget
feat: Add Menu module
2025-05-26 16:37:15 +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
9ed0d1270a
fix: unable to use markup in icon labels 2025-05-25 23:27:03 +01:00
3a0e102afc
feat: change icon_overrides to apply to all resolved images 2025-05-25 16:24:17 +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
bd9b3af5bc
Merge pull request #999 from postsolar/fix-calendar-date
fix(clock): reset selected calendar date on each popup open
2025-05-20 16:55:09 +01:00