Skip to content

iimage-data hint causes mako to stop rendering all following notifications #629

@marijanp

Description

@marijanp

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

  1. Start mako normally
  2. 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

  1. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions