[GH-ISSUE #1335] Some tray icons are blank until updated by app #8827

Closed
opened 2026-05-23 03:54:29 +01:00 by JakeStanger · 13 comments
Owner

Originally created by @jficz on GitHub (Jan 15, 2026).
Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/1335

Describe the bug
I can easily replicate this with Element-desktop and sometimes with Nextcloud client but with slightly different results. With element the icon only appears after it is changed (like with unread messages badge), with Nextcloud, it appears when ironbar is restarted.

To reproduce
Steps to reproduce the behavior:

  1. Start Element-desktop and Nextcloud client
  2. Observe blank spaces instead of icons in tray
  3. Restart ironbar
  4. Nextcloud icon appears correctly but not Element
  5. wait until you receive a message on Element
  6. the icon appears with unread badge

Expected behavior
Icons should appear normally.

System information:

  • Distro: Nixos unstable
  • Compositor: Hyprland
  • Ironbar version: 0.19.0-pre+date=2026-01-12_f232bac (built from ironbar repo flake)

Additional context
Element icon updates normally after the first update - i.e. the badge disappears once the new messages are read.

I tried to replicate with some other apps (Slack, nm-applet) but I couldn't. Only with Element and Nextcloud.

Element is an electron app, Slack, too.
Nextcloud is a QT app.

Screenshots

after nextcloud and element start
Image

after ironbar is restarted

Image

after message is recieved on Element

Image
Originally created by @jficz on GitHub (Jan 15, 2026). Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/1335 **Describe the bug** I can easily replicate this with Element-desktop and _sometimes_ with Nextcloud client but with slightly different results. With element the icon only appears after it is changed (like with unread messages badge), with Nextcloud, it appears when ironbar is restarted. **To reproduce** Steps to reproduce the behavior: 1. Start Element-desktop and Nextcloud client 2. Observe blank spaces instead of icons in tray 3. Restart ironbar 4. Nextcloud icon appears correctly but not Element 5. wait until you receive a message on Element 6. the icon appears with unread badge **Expected behavior** Icons should appear normally. **System information:** - Distro: Nixos unstable - Compositor: Hyprland - Ironbar version: 0.19.0-pre+date=2026-01-12_f232bac (built from ironbar repo flake) **Additional context** Element icon updates normally after the first update - i.e. the badge disappears once the new messages are read. I tried to replicate with some other apps (Slack, nm-applet) but I couldn't. Only with Element and Nextcloud. Element is an electron app, Slack, too. Nextcloud is a QT app. **Screenshots** after nextcloud and element start <img width="253" height="29" alt="Image" src="https://github.com/user-attachments/assets/4fc2e427-16ba-4fd2-ab90-2363044707fc" /> after ironbar is restarted <img width="207" height="30" alt="Image" src="https://github.com/user-attachments/assets/46fb5783-94b4-4b48-8618-3355ff4a7727" /> after message is recieved on Element <img width="233" height="35" alt="Image" src="https://github.com/user-attachments/assets/f0d33ead-93cc-4a1b-87ca-e42536416d40" />
JakeStanger 2026-05-23 03:54:29 +01:00
Author
Owner

@jficz commented on GitHub (Jan 15, 2026):

Huh, I just noticed that the nextcloud icon actually appears at start for a fraction of a second and then disappears. The icon that appears is a gray "offline" icon, then once the app connects, the icon disappears until ironbar is restarted and then the "online" blue icon appears.

<!-- gh-comment-id:3754994450 --> @jficz commented on GitHub (Jan 15, 2026): Huh, I just noticed that the nextcloud icon actually _appears_ at start for a fraction of a second and then disappears. The icon that appears is a gray "offline" icon, then once the app connects, the icon disappears until ironbar is restarted and then the "online" blue icon appears.
Author
Owner

@Rick-Phoenix commented on GitHub (Mar 28, 2026):

Same thing happens with the tailscale tray icon

<!-- gh-comment-id:4148538202 --> @Rick-Phoenix commented on GitHub (Mar 28, 2026): Same thing happens with the tailscale tray icon
Author
Owner

@jficz commented on GitHub (Apr 8, 2026):

Latest observation is that, for me, only the Nextcloud desktop app (QT) has problem with icons. I didn't notice any issues with Element in the past month or so but I moved away from it recently and I was getting a lot of messages that updated the icon so it might just be that I didn't observe the problem, not that it disappeared.

There are two states the icon is in:

  • blank
  • blue NC logo with green ✔️ badge when a sync happens - but that icon usually disappears back to blank after a couple of seconds/minuts
<!-- gh-comment-id:4205567122 --> @jficz commented on GitHub (Apr 8, 2026): Latest observation is that, for me, only the Nextcloud desktop app (QT) has problem with icons. I didn't notice any issues with Element in the past month or so but I moved away from it recently and I was getting a lot of messages that updated the icon so it might just be that I didn't observe the problem, not that it disappeared. There are two states the icon is in: - blank - blue NC logo with green ✔️ badge when a sync happens - but that icon usually disappears back to blank after a couple of seconds/minuts
Author
Owner

@benoitlx commented on GitHub (Apr 15, 2026):

With zapzap tray icon the icon appears when starting zapzap but disappears when I have unread messages.

Runnig ironbar 0.19.0-pre

<!-- gh-comment-id:4252175130 --> @benoitlx commented on GitHub (Apr 15, 2026): With zapzap tray icon the icon appears when starting zapzap but disappears when I have unread messages. Runnig ironbar 0.19.0-pre
Author
Owner

@JakeStanger commented on GitHub (May 10, 2026):

There's been a few fixes to tray icon rendering recently. Can you confirm if this is still an issue please?

<!-- gh-comment-id:4415417939 --> @JakeStanger commented on GitHub (May 10, 2026): There's been a few fixes to tray icon rendering recently. Can you confirm if this is still an issue please?
Author
Owner

@jficz commented on GitHub (May 11, 2026):

no difference as of 0.19.0-pre+date=2026-05-10_d44268b. In fact it's slightly worse - now I'm completely missing Slack icon. Though not sure if that's slack or ironbar problem. I'll see if I can debug more

<!-- gh-comment-id:4419304287 --> @jficz commented on GitHub (May 11, 2026): no difference as of 0.19.0-pre+date=2026-05-10_d44268b. In fact it's slightly worse - now I'm completely missing Slack icon. Though not sure if that's slack or ironbar problem. I'll see if I can debug more
Author
Owner

@jficz commented on GitHub (May 11, 2026):

I think it's more about gtk icons on NixOS/HM than rendering itself but it's just a hunch at this point. I can try to get some logs but if you have any specific thing you'd like me to look at, let me know

<!-- gh-comment-id:4419313878 --> @jficz commented on GitHub (May 11, 2026): I _think_ it's more about gtk icons on NixOS/HM than rendering itself but it's just a hunch at this point. I can try to get some logs but if you have any specific thing you'd like me to look at, let me know
Author
Owner

@JakeStanger commented on GitHub (May 11, 2026):

The most important thing to help debug is to get an idea of how far along the pipeline the issue arises, ie does system_tray get the data and correctly send it to Ironbar, or is it lost at the first hurdle?

The one NixOS case that could be a problem as far as I can think, is if programs are sending a hard coded path to their icon file, but it's not been patched to point at the store. Loading from the icon theme itself or from pixmap directly should work fine.

<!-- gh-comment-id:4419339408 --> @JakeStanger commented on GitHub (May 11, 2026): The most important thing to help debug is to get an idea of how far along the pipeline the issue arises, ie does `system_tray` get the data and correctly send it to Ironbar, or is it lost at the first hurdle? The one NixOS case that could be a problem as far as I can think, is if programs are sending a hard coded path to their icon file, but it's not been patched to point at the store. Loading from the icon theme itself or from pixmap directly should work fine.
Author
Owner

@jficz commented on GitHub (May 11, 2026):

check, I'll see what I can dig up

<!-- gh-comment-id:4419353502 --> @jficz commented on GitHub (May 11, 2026): check, I'll see what I can dig up
Author
Owner

@jficz commented on GitHub (May 11, 2026):

ok, this is what I got. Tried to trigger the issue by manually pausing and resuming sync on Nextcloud. It seems like the icon data is there but it's blank. The icon appeared after I started ironbar again through the user service (i.e. not debug):

2026-05-11T10:43:20.137424Z DEBUG ironbar::modules: 479: Setting bar locked status: true
2026-05-11T10:43:20.959498Z DEBUG ironbar::modules::tray: 255: activating: MenuItem { address: ":1.1610", menu_path: "/MenuBar", submenu_id: 8 }
2026-05-11T10:43:20.960513Z DEBUG ironbar::modules: 479: Setting bar locked status: false
2026-05-11T10:43:20.984974Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) })
2026-05-11T10:43:20.985022Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }
2026-05-11T10:43:20.985188Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:20.985224Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:20.985362Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Account synchronization is disabled", description: "" })))
2026-05-11T10:43:20.985378Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Account synchronization is disabled", description: "" }))
2026-05-11T10:43:20.985456Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:20.985468Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:21.653949Z DEBUG ironbar::modules: 479: Setting bar locked status: true
2026-05-11T10:43:22.484505Z DEBUG ironbar::modules: 479: Setting bar locked status: false
2026-05-11T10:43:22.484503Z DEBUG ironbar::modules::tray: 255: activating: MenuItem { address: ":1.1610", menu_path: "/MenuBar", submenu_id: 9 }
2026-05-11T10:43:22.505956Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) })
2026-05-11T10:43:22.505994Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }
2026-05-11T10:43:22.506124Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.506170Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.509659Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })))
2026-05-11T10:43:22.509672Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))
2026-05-11T10:43:22.509729Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.509742Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.512166Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) })
2026-05-11T10:43:22.512179Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }
2026-05-11T10:43:22.512222Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.512237Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.512281Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })))
2026-05-11T10:43:22.512290Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))
2026-05-11T10:43:22.512334Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.512337Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.513727Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) })
2026-05-11T10:43:22.513733Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }
2026-05-11T10:43:22.513768Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.513773Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.513825Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })))
2026-05-11T10:43:22.513828Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))
2026-05-11T10:43:22.513846Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:22.513850Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.176804Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) })
2026-05-11T10:43:23.176843Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }
2026-05-11T10:43:23.177027Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })))
2026-05-11T10:43:23.177023Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.177033Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))
2026-05-11T10:43:23.177054Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.177090Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.177100Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.184826Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) })
2026-05-11T10:43:23.184837Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }
2026-05-11T10:43:23.184911Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.184923Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.184972Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Last sync was successful.", description: "" })))
2026-05-11T10:43:23.184976Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Last sync was successful.", description: "" }))
2026-05-11T10:43:23.184998Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'
2026-05-11T10:43:23.185017Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610'

I'm not sure all of the events are related to the NC icon change tho, I removed one Bluetooth update entry that popped up in the middle.

Also disregard the Slack icon issue - might have been related to multiple sleep-resume and ironbar restart cycles. Force-killing slack and starting ironbar now shows the icon without any apparent issues so far.

This means that only the NC icon remains problematic (for me). I've got a couple of others which work, namely:

  • Slack
  • OpenSnitch UI
  • nm-applet
  • harfanglabs EDR client
<!-- gh-comment-id:4419950260 --> @jficz commented on GitHub (May 11, 2026): ok, this is what I got. Tried to trigger the issue by manually pausing and resuming sync on Nextcloud. It _seems_ like the icon data is there but it's blank. The icon appeared after I started ironbar again through the user service (i.e. not debug): ``` 2026-05-11T10:43:20.137424Z DEBUG ironbar::modules: 479: Setting bar locked status: true 2026-05-11T10:43:20.959498Z DEBUG ironbar::modules::tray: 255: activating: MenuItem { address: ":1.1610", menu_path: "/MenuBar", submenu_id: 8 } 2026-05-11T10:43:20.960513Z DEBUG ironbar::modules: 479: Setting bar locked status: false 2026-05-11T10:43:20.984974Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }) 2026-05-11T10:43:20.985022Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) } 2026-05-11T10:43:20.985188Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:20.985224Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:20.985362Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Account synchronization is disabled", description: "" }))) 2026-05-11T10:43:20.985378Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Account synchronization is disabled", description: "" })) 2026-05-11T10:43:20.985456Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:20.985468Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:21.653949Z DEBUG ironbar::modules: 479: Setting bar locked status: true 2026-05-11T10:43:22.484505Z DEBUG ironbar::modules: 479: Setting bar locked status: false 2026-05-11T10:43:22.484503Z DEBUG ironbar::modules::tray: 255: activating: MenuItem { address: ":1.1610", menu_path: "/MenuBar", submenu_id: 9 } 2026-05-11T10:43:22.505956Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }) 2026-05-11T10:43:22.505994Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) } 2026-05-11T10:43:22.506124Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.506170Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.509659Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))) 2026-05-11T10:43:22.509672Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })) 2026-05-11T10:43:22.509729Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.509742Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.512166Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }) 2026-05-11T10:43:22.512179Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) } 2026-05-11T10:43:22.512222Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.512237Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.512281Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))) 2026-05-11T10:43:22.512290Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })) 2026-05-11T10:43:22.512334Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.512337Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.513727Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }) 2026-05-11T10:43:22.513733Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) } 2026-05-11T10:43:22.513768Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.513773Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.513825Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))) 2026-05-11T10:43:22.513828Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })) 2026-05-11T10:43:22.513846Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:22.513850Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.176804Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }) 2026-05-11T10:43:23.176843Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) } 2026-05-11T10:43:23.177027Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" }))) 2026-05-11T10:43:23.177023Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.177033Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Preparing for sync.", description: "" })) 2026-05-11T10:43:23.177054Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.177090Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.177100Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.184826Z DEBUG system_tray::client: 521: received tray item update: NewIcon -> Some(Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) }) 2026-05-11T10:43:23.184837Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Icon { icon_name: Some(""), icon_pixmap: Some([IconPixmap { width: 16, height: 16, pixels: "<length: 1024>" }, IconPixmap { width: 32, height: 32, pixels: "<length: 4096>" }, IconPixmap { width: 64, height: 64, pixels: "<length: 16384>" }]) } 2026-05-11T10:43:23.184911Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.184923Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.184972Z DEBUG system_tray::client: 521: received tray item update: NewToolTip -> Some(Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Last sync was successful.", description: "" }))) 2026-05-11T10:43:23.184976Z DEBUG system_tray::client: 375: [:1.1610/StatusNotifierItem] received property change: Tooltip(Some(Tooltip { icon_name: "", icon_data: [], title: "Nextcloud: Last sync was successful.", description: "" })) 2026-05-11T10:43:23.184998Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' 2026-05-11T10:43:23.185017Z DEBUG ironbar::modules::tray: 438: Received tray update for ':1.1610' ``` I'm not sure all of the events are related to the NC icon change tho, I removed one Bluetooth update entry that popped up in the middle. Also disregard the Slack icon issue - might have been related to multiple sleep-resume and ironbar restart cycles. Force-killing slack and starting ironbar now shows the icon without any apparent issues so far. This means that only the NC icon remains problematic (for me). I've got a couple of others which work, namely: - Slack - OpenSnitch UI - nm-applet - harfanglabs EDR client
Author
Owner

@JakeStanger commented on GitHub (May 11, 2026):

Thanks, that's very helpful. I think I know what's happening. Those blank icon_name values are probably overruling the pixmap it should be using.

Could you try setting prefer_theme_icons = false in your tray module config and see if it still happens?

github.com/JakeStanger/ironbar@d44268bdf0/src/modules/tray/icon.rs (L25-L31)

If that helps, that else just needs a icon_name.is_empty() check

<!-- gh-comment-id:4419993818 --> @JakeStanger commented on GitHub (May 11, 2026): Thanks, that's very helpful. I think I know what's happening. Those blank `icon_name` values are probably overruling the pixmap it should be using. Could you try setting `prefer_theme_icons = false` in your tray module config and see if it still happens? https://github.com/JakeStanger/ironbar/blob/d44268bdf050826f4246d6c5d9f1a920ea7d9686/src/modules/tray/icon.rs#L25-L31 If that helps, that `else` just needs a `icon_name.is_empty()` check
Author
Owner

@jficz commented on GitHub (May 11, 2026):

From what I was able to replicate, yeah, prefer_theme_icons = false works :) (for me ™️)

<!-- gh-comment-id:4421060857 --> @jficz commented on GitHub (May 11, 2026): From what I was able to replicate, yeah, `prefer_theme_icons = false` works :) (for me ™️)
Author
Owner

@JakeStanger commented on GitHub (May 11, 2026):

#1485 should get it I think. Can you give that a quick test for me and confirm when you get a chance please?

<!-- gh-comment-id:4423866319 --> @JakeStanger commented on GitHub (May 11, 2026): #1485 should get it I think. Can you give that a quick test for me and confirm when you get a chance please?
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#8827
No description provided.