#5326·Waybar

niri/window title updates can suppress tooltips across Waybar

Author: bjnobreCreated Sep 15, 2026Updated Sep 15, 2026
Labelsbugsnicustomclockinhibitormpd

Describe the bug

With niri/window enabled, updates to the focused window title can make tooltips throughout Waybar stop appearing. For example, this happens while a terminal title contains a frequently updated spinner.

The tooltips sometimes return after suspending and waking the computer, or when my CAVA module starts updating after music begins. A later niri/window title update makes them stop again.

I previously contributed #5212 (d32e7fa8), which caches ALabel tooltip markup and serves it through query-tooltip so content updates do not restart GTK's shared tooltip delay. However, niri/window currently bypasses that path:

cpp
if (tooltipEnabled()) label_.set_tooltip_markup(sanitizedTitle);

The equivalent Sway window module uses setTooltipMarkup() instead.

To reproduce

Use a minimal bar containing niri/window and a static tooltip target:

jsonc
{
  "modules-left": ["niri/window", "custom/control"],

  "niri/window": {
    "format": "{title}",
    "tooltip": true
  },

  "custom/control": {
    "exec": "printf 'Control'",
    "interval": "once",
    "format": "{}",
    "tooltip": true,
    "tooltip-format": "Static control tooltip"
  }
}

In the focused terminal, change its title repeatedly:

bash
while :; do
  printf '\033]0;%s\007' "$(date +%s%N)"
  sleep 0.2
done

Then hover over Control without moving the pointer. Its tooltip stops appearing. A static isolated module does show its tooltip with the same Waybar binary when niri/window is not producing these updates.

Expected behaviour

Window title updates from niri/window should not prevent this or other modules' tooltips from appearing. niri/window should use the cached ALabel::setTooltipMarkup() path.

Environment

  • Waybar version: Waybar v0.15.0-970-gff0abe49 (built from source; branch contains unrelated tray changes)
  • Compositor: Niri 26.04
  • Distribution: Debian

Debug output

No relevant warning is printed when the tooltip stops appearing.

Additional context

The direct set_tooltip_markup() call is still present in current src/modules/niri/window.cpp. The behavior returning after suspend/wake or CAVA activity suggests those events force GTK to query the pointer target again; they only recover the tooltip temporarily.