When mako receives a notification containing the image-data hint (inline raw RGBA pixel data), it silently stops rendering all following notifications. mako remains registered on D-Bus, continues to accept notifications and return valid IDs, and even emits NotificationClosed signals after the configured timeout, but nothing is displayed on screen.
Running makoctl reload restores normal behavior. Disabling icons entirely (icons = false) prevents the issue.
Environment
- mako 1.10.0
- Wayland compositor: river
- Triggered by: Thunderbird email notifications
Steps to reproduce
- Start mako normally
- Use the Python script below (I noticed this first when receiving Thunderbird notifications)
No notification is rendered and any following notification (notify-send "test" "hello") is also not rendered
- Run makoctl reload:
notify-send "test" "hello" renders the notification again
Other observations
- makoctl list shows following notifications as pending
- Notifications are closed via timeout (D-Bus NotificationClosed signal is emitted normally)
- No errors are printed to stderr
The issue appears specific to the image-data hint (inline pixel data). Notifications with icon file paths (app-icon or image-path) do not trigger the freeze.
Script to Reproduce
import dbus
bus = dbus.SessionBus()
notify = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
notify_iface = dbus.Interface(notify, 'org.freedesktop.Notifications')
width, height, channels = 48, 48, 4
rowstride = width * channels
data = [230, 126, 34, 255] * (width * height)
image_data = dbus.Struct(
[dbus.Int32(width), dbus.Int32(height), dbus.Int32(rowstride),
dbus.Boolean(True), dbus.Int32(8), dbus.Int32(channels),
dbus.Array(data, signature='y')],
signature='iiibiiay'
)
notify_iface.Notify(
'Thunderbird', dbus.UInt32(0), '',
'New message', 'Test body',
dbus.Array(['default', 'Activate', 'mark-as-read-moz', 'Mark as Read', 'delete-moz', 'Delete'], signature='s'),
{'image-data': image_data, 'desktop-entry': 'Thunderbird', 'suppress-sound': False},
dbus.Int32(-1)
)
Workaround
Set icons = false in ~/.config/mako/config. This prevents mako from processing the image-data hint and the rendering freeze does not occur.
When mako receives a notification containing the image-data hint (inline raw RGBA pixel data), it silently stops rendering all following notifications. mako remains registered on D-Bus, continues to accept notifications and return valid IDs, and even emits
NotificationClosedsignals after the configured timeout, but nothing is displayed on screen.Running makoctl reload restores normal behavior. Disabling icons entirely (icons = false) prevents the issue.
Environment
Steps to reproduce
No notification is rendered and any following notification (notify-send "test" "hello") is also not rendered
notify-send "test" "hello"renders the notification againOther observations
The issue appears specific to the image-data hint (inline pixel data). Notifications with icon file paths (app-icon or image-path) do not trigger the freeze.
Script to Reproduce
Workaround
Set icons = false in ~/.config/mako/config. This prevents mako from processing the image-data hint and the rendering freeze does not occur.