Linux: window.focus/window.show triggers useless "Signal is ready" on every notification, when using GNOME

Author: diegoeCreated Feb 8, 2021Updated Sep 12, 2026
LabelsBug
  • I have searched open and closed issues for duplicates

Bug Description

Mutter/GNOME Shell have, since forever, prevented focus stealing. Instead, a notification of "App is ready" is shown, this is helpful when you start an app, and go do something else while it opens (think your browser, or -hah- an electron app). Also super helpful to avoid the exasperation of apps stealing focus for whatever reason.

However, whenever Signal sends a message notification, it seems to try to raise the window when "Draw attention to this window" is checked. This causes any incoming message's notification to be immediately obstructed by a "Signal is ready" notification (see screenshot).

https://github.com/signalapp/Signal-Desktop/blob/a173a9b33ff8dccbe02b9ad2d5e268ca3b036563/js/notifications.js#L158-L165 https://github.com/signalapp/Signal-Desktop/blob/7095e070eb540d2ea2af42b489e3d6c2a4b8175e/main.js#L124-L146

I think .focus() vs .show() did not make a difference for me, but I could be misremembering.

Arguably, you could say that it is mutter's choice to interpret focus/show as an event itself (and turn it into a notification), but I would say that Signal still shouldn't be showing/focusing the window on every notification. If the goal is/was to trigger a platform's animation/behavior (blinking, bouncing, etc), then I would say that Linux (GNOME) is worthy of the same consideration.

If you would like to keep it simple, you could just default the pref to false on platform=Linux. Otherwise, you can special case GNOME (there's an env var: XDG_CURRENT_DESKTOP). Note that default GNOME has no tray or window list, and no bouncing/blinking/etc behavior except the "is ready" notification.

Steps to Reproduce

  1. Receive a notification
  2. See your message notification immediately get obscured by "Signal is ready"
  3. Be sad

Actual Result:

Notifications are obscured because of the window.focus()/window.show() triggered with each notification

Expected Result:

Signal triggers only one notification (the message one)

Screenshots

Screenshot from 2021-01-29 14-36-27

Platform Info

Signal Version:

1.39.6, through Flatpak

Operating System:

Debian sid + GNOME 3.38 (can reproduce on HEAD, too)

Source: signalapp/Signal-Desktop