• v0.19.0 607e28284b

    v0.19.0 Stable

    JakeStanger released this 2026-05-17 17:14:26 +01:00 | 73 commits to master since this release

    📅 Originally published on GitHub: Sun, 17 May 2026 16:21:20 GMT
    🏷️ Git tag created: Sun, 17 May 2026 16:14:26 GMT

    📦 Note to packagers

    Ironbar no longer depends on openssl for the http feature since it uses native TLS. This dependency can be removed.

    💥 BREAKING CHANGES

    • due to bb9b337 - introduce profiles support (commit by @JakeStanger):

      the volume icons volume_high, volume_medium and volume_low options have been replaced with a single volume option. Use the new profiles options to configure.

    • due to 1d0b966 - introduce profiles support (commit by @JakeStanger):

      This removes the thresholds option in favour of the new standardised profiles system.

    • due to 6ea5744 - add truncate_formats option (PR #1471 by @MrFantOlas):

      The existing volume truncate option now affects the bar, and not the popup. To truncate popup content as before, use truncate_popup.

    New Features

    • 34a4273 - inhibit: add inhibit module (commit by @slowsage)
    • d03aeab - volume: marquee effect for volume audio inputs (commit by @postsolar)
    • aece75d - music: add marquee support (PR #1284 by @postsolar)
      • ↘️ addresses issue #1011 opened by @postsolar
    • 3d58c45 - battery: allow config to show/hide icon or label (commit by @tobias47n9e)
    • 7177d52 - workspaces: add 'index' sort order for niri support (commit by @jbms)
    • 6cfa450 - workspaces: add format options for custom workspace labels (commit by @jbms)
    • 2c1b2a3 - cli: ability to validate config and exit (commit by @JakeStanger)
    • 2916a45 - image: add debug data to paintables (commit by @JakeStanger)
    • 0269fdb - Access ironbar variables from cairo/lua (PR #1344 by @untoldwind)
    • fdc9a43 - menu: option to change app icon sizes (PR #1350 by @benpz)
    • fe69363 - volume: horizontal sink volume slider option (PR #1353 by @imgurbot12)
    • 775b1b1 - config: standardised profiles system (commit by @JakeStanger)
    • bb9b337 - volume: introduce profiles support (commit by @JakeStanger)
    • 1d0b966 - battery: introduce profiles support (commit by @JakeStanger)
    • a801b49 - new brightness module #962 (PR #1235 by @xMAC94x)
      • ↘️ addresses issue #962 opened by @yazoink
    • 2114824 - volume: source/output support with additional config/css controls (commit by @imgurbot12)
    • 16b2fb9 - volume: change default sink_slider_orientation (commit by @JakeStanger)
    • 4bb7608 - volume: add show_sinks and show_sources options (commit by @JakeStanger)
    • 032addf - network manager: rework module (PR #1233 by @Rodrigodd)
    • 4f6f8db - battery: add messages for all battery states (commit by @tobias47n9e)
    • b4c8d73 - cairo: expand tilde ~ in script path (commit by @sanpii)
    • f7b79d3 - clock: add parameter to set gtk_calendar_set_show_week_numbers (commit by @janquednau)
    • f22285c - config/profiles: add use_default_profiles option (commit by @JakeStanger)
    • 3e4d407 - battery: allow percent to be omitted from profile matcher (commit by @JakeStanger)
    • 6ea5744 - volume: add truncate_formats option (PR #1471 by @MrFantOlas)
      • ↘️ addresses issue #1422 opened by @MrFantOlas
    • 898b61a - logging: log commit for non-tagged versions (commit by @JakeStanger)

    🐛 Bug Fixes

    • 99e3e40 - image: symbolic icons not rendering in GTK 4.20+ (commit by @slowsage)
    • 36fca2c - tray: redraw icon when name or pixmap changes (commit by @Windblows2000)
    • 239461b - tray: improve pixmap selection algorithm (commit by @JakeStanger)
    • 96e8538 - nix: don't use hostPlatform.system alias (commit by @imnotpoz)
    • 3cf04a0 - music: fix seek bar interaction and freezing in popup (commit by @postsolar)
    • c3dfde5 - music: seek only on release, not during drag (commit by @postsolar)
    • 76cebb6 - music: update progress label immediately during drag (commit by @postsolar)
    • 8ac2b8a - launcher: popup flicker when popup_autohide enabled (commit by @JakeStanger)
    • 3a4b7b0 - inhibit: Replace infinity symbol with nerd font for readability (commit by @slowsage)
    • 7ec3f7b - theme: file names other than style.css causing error (commit by @JakeStanger)
    • 39debc1 - image: steam icons resolving at low res (commit by @JakeStanger)
    • f232bac - tray: Handle tray race + Event::Remove (PR #1318 by @slowsage)
    • 738885b - examples: wrong battery detection logic in some config files (commit by @purrion)
    • 39824cf - cairo: typo in ModuleConfig::name() (PR #1354 by @teodord25)
    • 4a4b7d5 - single-quotes escape-sequences for labels (commit by @imgurbot12)
    • 5098755 - menu: cannot open initially using ipc (commit by @JakeStanger)
    • 83e8728 - minimal theme: sliders not visible (commit by @ikoas)
    • e60eb4c - menu stealing first popup (regression from #5098755) (commit by @JakeStanger)
    • b310ce3 - tray: preserve tooltip when icon widget changes (commit by @nazya)
    • 2cb9288 - script: scripts get terminated and launched again upon reload (PR #1407 by @esther-ff)
      • ↘️ fixes issue #1102 opened by @postsolar
    • 641b1fe - workspaces: favourite buttons not working for inactive/empty workspaces #964 (commit by @CameronBarnes)
    • 7210ad7 - script: regression from #1407 causing cpu spike (commit by @JakeStanger)
    • d9d4b49 - tray: svg's did not load (PR #1397 by @pancakedevourer)
      • ↘️ fixes issue #1221 opened by @MagneFire
      • ↘️ fixes issue #1442 opened by @the-nummer-zone
    • 73c9e91 - tray: crash due to regression from #1397 (commit by @JakeStanger)
    • 66c431e - docs: fixed incorrect / inconsistent IPC documentation (commit by @janquednau)
    • 45896e8 - network-manager: not accepting char to display icons (commit by @MrFantOlas)
    • 4ced540 - volume: some apps showing as "audio stream" (commit by @JakeStanger)
    • 4331316 - volume: volume respects default sink and source (PR #1475 by @MrFantOlas)
    • 8f42c06 - volume: crashing in some cases such as with easyeffects running (commit by @JakeStanger)
    • 5157aa1 - tray: icon updates sometimes breaking icon (commit by @JakeStanger)
    • ceda2e9 - battery: consider threshold in time calculation (PR #1481 by @slowsage)
    • 5ef0d39 - volume: default sink/source incorrectly switching (commit by @JakeStanger)
    • dcff995 - tray: empty icon names being incorrectly loaded (commit by @JakeStanger)

    ♻️ Refactors

    Tests

    📝 Documentation Changes

    Downloads
  • v0.18.0 585eb5f7c9

    v0.18.0 Stable

    JakeStanger released this 2025-12-17 22:03:07 +00:00 | 324 commits to master since this release

    📅 Originally published on GitHub: Wed, 17 Dec 2025 22:08:00 GMT
    🏷️ Git tag created: Wed, 17 Dec 2025 22:03:07 GMT

    GTK4!

    Details on important differences compared to the previous GTK3 versions can be found here: https://github.com/JakeStanger/ironbar/wiki/gtk4

    📦 Note for packagers

    GTK4 means a change to dependencies - namely switching out the major GTK version and dropping libdbusmenu-gtk3. Details here.

    💥 BREAKING CHANGES

    • due to aa130d1 - port to gtk4 (commit by @JakeStanger):

      Popups now use the native GTK popover widget, rather than a separate window. Styles will need updating.

    • due to 557b9b8 - generate completions using cli instead of build (commit by @JakeStanger):

      Shell completions are no longer generated at build time, and must be generated using ironbar --print-completions <shell>

    New Features

    • aa130d1 - port to gtk4 (commit by @JakeStanger)
    • e79ef46 - tray: handle sni status property (commit by @JakeStanger)
    • 750e02b - logging: --debug cli flag now sets logging level to debug (commit by @JakeStanger)
    • 595ce0a - clipboard: options for configuring image width/height (commit by @JakeStanger)
    • 0af16dc - add config and theme args, default themes (commit by @JakeStanger)
    • 377f72d - workspaces: implement urgency for niri (commit by @Rodrigodd)
    • 222f5c5 - bluetooth: add options for popup height limit (commit by @xMAC94x)
    • d6999bb - add double-click support for all modules (commit by @postsolar)
    • 2200be3 - add configurable tray icon click actions (commit by @postsolar)

    🐛 Bug Fixes

    • 68b1a63 - menu: .open class not added when height property not set (commit by @JakeStanger)
    • 63e975a - notifications: close popup on panel open (commit by @JakeStanger)
    • 6b2a1b2 - workspaces: send workspace move for hyprland
    • 502d0d9 - logging: panic messages have escaped ansi sequences (commit by @JakeStanger)
    • 0bfa479 - potential race condition on monitor connection causing issues with bar creation (PR #1198 by @azertyfun)
    • 68e1f8a - some icons not resolving (commit by @azertyfun)
    • 99e682f - autohide: errors on startup (commit by @JakeStanger)
    • dbaab6d - autohide: keep open if popup is visible (commit by @JakeStanger)
    • 954271d - autohide: trigger close on popup close (commit by @JakeStanger)
    • 9d160d0 - nix: replace deprecated wrapGAppsHook (commit by @TaskForceTorture)
    • 123733d - nix: add dbus as a dependency (commit by @TaskForceTorture)
    • 2539676 - nix: add dbus to the devshell (commit by @postsolar)
    • 905424f - keyboard: init fails if keyboard layout not available (commit by @JakeStanger)
    • 2c11d67 - regression from #1198 (commit by @JakeStanger)
    • 9c141dd - ipc: crash handling error from bar (commit by @JakeStanger)
    • a067914 - ipc: popup commands broken for custom module (commit by @JakeStanger)
    • 2c215ea - desktop: handle spaces in file names (PR #1263 by @slowsage)
    • bcd00f5 - launcher: close popup when mouse leaves (commit by @slowsage)
    • 1a6d7f4 - image: remote images not loading (PR #1267 by @slowsage)
      • ↘️ fixes issue #1261 opened by @tixwho
    • 423cf50 - keyboard: pango markup not working in layout map (commit by @tobias47n9e)
    • 859c9c2 - autohide: not working on vertical bars (commit by @JakeStanger)
    • eb39c9f - tray: menus inaccessible when autohide enabled (commit by @JakeStanger)
    • 91e1897 - CSS style issues on minimal theme with no gtk theme (PR #1281 by @esther-ff)
    • 19188ae - keyboard: layout update not working on sway (PR #1282 by @tobias47n9e)

    ♻️ Refactors

    Tests

    📝 Documentation Changes

    Downloads
  • v0.17.1 152c57ca6b

    v0.17.1 Stable

    JakeStanger released this 2025-10-05 11:54:47 +01:00 | 469 commits to master since this release

    📅 Originally published on GitHub: Sun, 05 Oct 2025 11:02:13 GMT
    🏷️ Git tag created: Sun, 05 Oct 2025 10:54:47 GMT

    This is a very small release to mark the last commit of the GTK3 version of Ironbar, mostly to act as a "stable" fallback point if required.

    All future commits and releases will be built on GTK4.

    New Features

    🐛 Bug Fixes

    • 2aef88a - tray: menu buttons work on single screen only (commit by @JakeStanger)
    • d09ba89 - flake: correct apps.default to point to ironbar (commit by @GavBog)

    ♻️ Refactors

    • 1fb1b27 - config: serde::__private methods -> custom deserialization (commit by @slowsage)

    📝 Documentation Changes

    Downloads
  • v0.17.0 b9438f6a4a

    v0.17.0 Stable

    JakeStanger released this 2025-09-07 22:12:46 +01:00 | 532 commits to master since this release

    📅 Originally published on GitHub: Sun, 07 Sep 2025 21:17:15 GMT
    🏷️ Git tag created: Sun, 07 Sep 2025 21:12:46 GMT

    A huge release a long time in the making. Thanks to everybody who contributed in any form, especially those who submitted PRs and are listed below! It means a lot to have so many people contributing to my silly little project.

    💥 BREAKING CHANGES

    • due to 03136e7 - new sorting options (commit by @JakeStanger):

      The workspace sort config option valid values have changed. Where alphanumeric is explicitly set, this will need changing to one of label or name.

    • due to 01de0ac - overhaul to add aggregate/unit/formatting support (commit by @JakeStanger):

      Use of the sys_info module in your config will need to be updated to use the new token format. See the wiki page for more info.

    • due to 322fc0c - standardize home-manager module options (commit by @74k1):

      programs.ironbar.systemd is not enabled by default anymore

    • due to 3e55d87 - overhaul .desktop and image resolver systems (commit by @JakeStanger):

      The icon_theme setting has been moved from per-bar to top-level

    • due to 0d8ec47 - commands for controlling css class names (commit by @JakeStanger):

      The load-css command has been moved to the style subcommand (ie ironbar style load-css).

    New Features

    • afe534c - add .urgent workspace css class (commit by @Rodrigodd)
    • df4bfc8 - truncate: explicit off mode (commit by @JakeStanger)
    • da13b9d - launcher: truncate and truncate_popup config options (commit by @JakeStanger)
    • 64b953c - launcher: add option to minimize window if focused (commit by @pachliopta)
    • 9f7c391 - sway: support workspace rename events (PR #799 by @quietvoid)
    • 7f71a38 - launcher: open new window on middle-click (commit by @BowDown097)
    • ccfe73f - libinput keys module (commit by @JakeStanger)
    • 03136e7 - workspaces: new sorting options (commit by @JakeStanger)
    • 4381fd5 - add shell completions (commit by @donovanglover)
    • 708118d - justify property for clock and custom label (commit by @BowDown097)
    • 87c6801 - launcher: icon overrides (commit by @BowDown097)
    • 03e6f10 - keyboard: ability to display and switch kb layout (PR #836 by @kuzy000)
      • ↘️ addresses issue #575 opened by @madfanat
    • 5e7e741 - volume: add pango support to button (commit by @JakeStanger)
    • 01de0ac - sysinfo: overhaul to add aggregate/unit/formatting support (commit by @JakeStanger)
    • 02a8dda - workspaces: niri support (commit by @anant-357)
    • 183ca40 - launcher: pagination controls when item count is reached (commit by @JakeStanger)
    • ba5ec80 - label: add truncate to module and custom widget (commit by @JakeStanger)
    • b83f26c - sysinfo: expose values as ironvars (commit by @JakeStanger)
    • c20feb7 - fully implement orientation/justify options (commit by @JakeStanger)
    • 5a5b110 - rename sway_mode to bindmode and add Hyprland support (commit by @Rodrigodd)
    • 322fc0c - nix: standardize home-manager module options (commit by @74k1)
    • 89073dc - nix: use lib.fileset for src (commit by @reo101)
    • b13c725 - custom: add halign and valign options to box widget (PR #988 by @BBFifield)
      • ↘️ addresses issue #985 opened by @BBFifield
    • 3a0e102 - change icon_overrides to apply to all resolved images (commit by @JakeStanger)
    • 96e10fe - add menu module (commit by @ClaireNeveu)
    • 5520562 - support glob patterns for keyboard layout icons (PR #949 by @postsolar)
    • 53b1e0f - bluetooth: add bluetooth module (commit by @kuzy000)
    • ebcb972 - smooth scrolling speed option (commit by @JakeStanger)
    • 69df0c9 - menu, notifications, upower: use ironbar image system (commit by @JakeStanger)
    • a2bd428 - upower: expose properties as ironvars (commit by @JakeStanger)
    • c76e569 - upower: dynamic thresholds for styling (commit by @JakeStanger)
    • 0d8ec47 - ipc: commands for controlling css class names (commit by @JakeStanger)
    • 757588e - notifications: add class for button widget (commit by @JakeStanger)
    • ffca125 - support pango markup in icon buttons (commit by @JakeStanger)

    🐛 Bug Fixes

    ♻️ Refactors

    📝 Documentation Changes

    Downloads
  • v0.16.1 f31c1710d6

    v0.16.1 Stable

    JakeStanger released this 2024-11-24 16:08:28 +00:00 | 1026 commits to master since this release

    📅 Originally published on GitHub: Sun, 24 Nov 2024 16:09:59 GMT
    🏷️ Git tag created: Sun, 24 Nov 2024 16:08:28 GMT

    💥 BREAKING CHANGES

    • due to e4e9632 - menu causing bar to lose focus on sway (commit by @JakeStanger):

      The direction option has been changed to only accept horizontal or vertical

    New Features

    🐛 Bug Fixes

    ♻️ Refactors

    📝 Documentation Changes

    Note to maintainers

    The tray module now depends on libdbusmenu-gtk3 , which must be present at build time and runtime.

    Downloads
  • v0.16.0 973819ca45

    v0.16.0 Stable

    JakeStanger released this 2024-08-10 15:43:10 +01:00 | 1158 commits to master since this release

    📅 Originally published on GitHub: Sat, 10 Aug 2024 14:43:50 GMT
    🏷️ Git tag created: Sat, 10 Aug 2024 14:43:10 GMT

    💥 BREAKING CHANGES

    • due to 9dd7112 - improve CLI structure, add new commands (commit by @JakeStanger):

      • ok_value responses will no longer print ok as the first line when using the CLI
      • 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.
      • 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.
      • The open_popup and close_popup IPC commands are now called show_popup and hide_popup respectively.
      • The popup name argument has been renamed to widget_name on all IPC commands.
      • The set-visibility CLI command now takes a true/false positional argument in place of the -v flag.

    New Features

    🐛 Bug Fixes

    ♻️ Refactors

    📝 Documentation Changes

    Downloads
  • v0.15.1 3a1c604423

    v0.15.1 Stable

    JakeStanger released this 2024-05-05 12:27:31 +01:00 | 1288 commits to master since this release

    📅 Originally published on GitHub: Sun, 05 May 2024 11:29:43 GMT
    🏷️ Git tag created: Sun, 05 May 2024 11:27:31 GMT

    Release to bump hyprland-rs version due to Hyprland v0.40 socket path breaking change.

    📝 Documentation Changes

    Downloads
  • v0.15.0 b4b8987594

    v0.15.0 Stable

    JakeStanger released this 2024-04-28 22:34:24 +01:00 | 1307 commits to master since this release

    📅 Originally published on GitHub: Sun, 28 Apr 2024 21:37:13 GMT
    🏷️ Git tag created: Sun, 28 Apr 2024 21:34:24 GMT

    New Features

    🐛 Bug Fixes

    ♻️ Refactors

    📝 Documentation Changes

    Note for maintainers

    The addition of new modules requires the following new build dependencies:

    • libpulse
    • luajit

    It also requires lua-lgi as a runtime dependency.

    Downloads
  • v0.14.1 bce8122bb9

    v0.14.1 Stable

    JakeStanger released this 2024-02-10 20:45:34 +00:00 | 1483 commits to master since this release

    📅 Originally published on GitHub: Sat, 10 Feb 2024 20:53:31 GMT
    🏷️ Git tag created: Sat, 10 Feb 2024 20:45:34 GMT

    🐛 Bug Fixes

    ♻️ Refactors

    Tests

    📝 Documentation Changes

    Downloads
  • v0.14.0 82896d91e0

    v0.14.0 Stable

    JakeStanger released this 2024-01-20 18:05:14 +00:00 | 1528 commits to master since this release

    📅 Originally published on GitHub: Sat, 20 Jan 2024 18:13:31 GMT
    🏷️ Git tag created: Sat, 20 Jan 2024 18:05:14 GMT

    New Features

    🐛 Bug Fixes

    • 4099847 - styles: hot reload not working when edited with vim (commit by @JakeStanger)
    • f24b21d - focused: clear when no window is focused (commit by @JakeStanger)
    • 34ed6a9 - focused: not clearing when switching to empty workspace (commit by @JakeStanger)
    • 518c2ef - Home Manager systemdIntegration warnings (commit by @delliottxyz)
    • 5f82b6e - tray: existing icons rendering as text (commit by @chmanie)
    • 80de5dd - some modules crashing due to recent gtk refactor (commit by @JakeStanger)
    • c356b22 - workspaces: favourites missing inactive class on startup (commit by @JakeStanger)
    • b4d7545 - regression: GTK refactor causing updates to be missed (commit by @JakeStanger)
    • b004d50 - launcher: favourites not focused when opened (commit by @JakeStanger)
    • 963f8ed - script: spawning outside of tokio runtime causing crash (commit by @JakeStanger)

    ♻️ Refactors

    📝 Documentation Changes

    Downloads