#1145656 waybar: bars silently lost on 3+ monitors when combined with gtk-layer-shell 0.10.1

Package:
waybar
Source:
waybar
Description:
Highly customizable Wayland bar for Sway and Wlroots based compositors
Submitter:
Fredrik Ax
Date:
2026-08-26 10:27:02 UTC
Severity:
normal
#1145656#5
Date:
2026-08-26 09:47:40 UTC
From:
To:
On a system with three or more monitors, waybar creates its bars and then loses some of
them about a second later. The bar is briefly visible and then disappears, and tiled
clients expand into the space it had reserved. waybar logs one "Timed out waiting for
initial .configure" per lost bar, while still logging "Bar configured (...) for output:
<name>" for those same surfaces, so the log gives no hint that anything failed.

This is a known upstream bug caused by gtk-layer-shell 0.10.1, reported as
https://github.com/Alexays/Waybar/issues/4978 and fixed by
https://github.com/Alexays/Waybar/pull/4984, merged 2026-07-03. The fix changes waybar to
accumulate outputs and create all bars in one batch from an idle callback, rather than
creating each bar as its monitor is discovered.

The reason I am reporting it here rather than only upstream is that neither Debian package
is wrong on its own, but the combination the archive currently ships produces the bug:

  waybar               0.15.0-1   (released 2025-02, predates the fix)
  libgtk-layer-shell0  0.10.1-1   (the version that triggers it)

Upstream has not made a release containing the fix, so the archive cannot get it by a
version bump. Would you consider cherry-picking PR #4984 into debian/patches for a 0.15.0-2
upload? It is a self-contained change to the bar creation path, and the package already
carries one quilt patch so the machinery is in place.

Reproduced on:
  Debian forky/sid, Hyprland 0.56.2
  three outputs: 1920x1200, 2560x1440, 3440x1440, all scale 1
  two bar definitions in one config array, neither pinned to an output

Six surfaces are expected, two per output. waybar reports all six as configured, two time
out, and the compositor's layer list shows only four. Which outputs lose their bars varies
between runs. Setting an explicit width, and removing the tray module, made no difference.

This is how I addressed it locally until you have time to catch up with the maintained
package, in case it is useful to anyone else who lands on this bug in the meantime. I
rebuilt current upstream main against the existing debian/ directory:

    sudo apt build-dep waybar
    mkdir -p ~/src/deb && cd ~/src/deb
    apt source waybar                            # gives waybar-0.15.0/ with debian/
    git clone https://github.com/Alexays/Waybar.git waybar-git
    cd waybar-git && git log -1 --format=%h      # note the short sha, use it below
    cp -a ../waybar-0.15.0/debian .
    dch -v 0.15.0+git20260826.<sha>-1 "Local build of upstream main for #4978."
    dpkg-buildpackage -us -uc -b
    sudo apt install ../waybar_0.15.0+git20260826.<sha>-1_amd64.deb

The 0.15.0+git... version sorts above 0.15.0-1 so it installs over the archive package, and
below both 0.15.1 and 0.16.0, so whatever you upload next replaces it automatically with no
pinning needed at this end. The existing quilt patch applied to main unchanged. All six
surfaces now come up on all three monitors with no timeouts.

Note on the version reported below: the waybar currently installed here is that local
rebuild, so the system information will show 0.15.0+git..., not the archive version. The
bug is against 0.15.0-1 as shipped.