[GH-ISSUE #1405] Support sd_notify during launch. #6043

Open
opened 2026-05-23 01:54:47 +01:00 by JakeStanger · 1 comment
Owner

Originally created by @rodrada on GitHub (Feb 28, 2026).
Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/1405

Is your feature request related to a problem? Please describe:

Some programs like KeepassXC don't seem to comply with the tray standard, which prevents their icons from appearing if they are started before the system bar. Their autostart service must be modified like this:

xdg.configFile."systemd/user/app-org.keepassxc.KeePassXC@autostart.service.d/dependencies.conf".text = ''
    [Unit]
    After=tray.target
'';

This is an acceptable workaround, but, if I'm correct, Ironbar is considered started before it owns org.kde.StatusNotifierWatcher on D-Bus. That makes yet another tweak necessary:

# Do not consider ironbar started until it owns system tray in user bus.
xdg.configFile."systemd/user/ironbar.service.d/tray.conf".text = ''
    [Service]
    ExecStartPost=${pkgs.glib}/bin/gdbus wait --session --timeout 3 org.kde.StatusNotifierWatcher
'';

Describe the solution you'd like:

It would be very convenient to have Ironbar support sd_notify so that we could set Type=notify in the service file and have Ironbar notify systemd when it's ready (of course, after acquiring the right D-Bus names).

That way, the default service file would not need to be overriden with gdbus wait hacks.

Describe alternatives you've considered:

Mentioned above.

Originally created by @rodrada on GitHub (Feb 28, 2026). Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/1405 **Is your feature request related to a problem? Please describe:** Some programs like KeepassXC don't seem to comply with the tray standard, which prevents their icons from appearing if they are started before the system bar. Their autostart service must be modified like this: ``` xdg.configFile."systemd/user/app-org.keepassxc.KeePassXC@autostart.service.d/dependencies.conf".text = '' [Unit] After=tray.target ''; ``` This is an acceptable workaround, but, if I'm correct, Ironbar is considered started *before* it owns `org.kde.StatusNotifierWatcher` on D-Bus. That makes yet another tweak necessary: ``` # Do not consider ironbar started until it owns system tray in user bus. xdg.configFile."systemd/user/ironbar.service.d/tray.conf".text = '' [Service] ExecStartPost=${pkgs.glib}/bin/gdbus wait --session --timeout 3 org.kde.StatusNotifierWatcher ''; ``` **Describe the solution you'd like:** It would be very convenient to have Ironbar support `sd_notify` so that we could set `Type=notify` in the service file and have Ironbar notify systemd when it's ready (of course, after acquiring the right D-Bus names). That way, the default service file would not need to be overriden with `gdbus wait` hacks. **Describe alternatives you've considered:** Mentioned above.
Author
Owner

@JakeStanger commented on GitHub (Feb 28, 2026):

Sounds reasonable, and looks reasonably straightforward

<!-- gh-comment-id:3977231811 --> @JakeStanger commented on GitHub (Feb 28, 2026): Sounds reasonable, and looks reasonably straightforward
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
JakeStanger/ironbar#6043
No description provided.