#3245·polybar

[Bug]: internal/xworkspaces ignores `label-visible` and may hide a visible workspace on another monitor

Author: nikolasgkouCreated Apr 9, 2026Updated Apr 9, 2026
Labelsbugneeds confirmation

Checklist

  • I have read the appropriate section in the contributing guidelines
  • I believe this issue is a problem with polybar itself and not a misconfiguration on my part
  • I have searched for other open and closed issues that may have already reported this problem
  • I have checked the known issues page for this problem.
  • I have followed the debugging guide to narrow down the problem to a minimal config.

Steps to reproduce

  1. Use Polybar with XMonad in a multi-monitor X11 setup.
  2. Configure internal/xworkspaces with pin-workspaces = true.
  3. Set label-visible = [%name%].
  4. Hide empty workspaces with label-empty =.
  5. Put workspace 1 on monitor 1 and workspace 4 on monitor 2.
  6. Focus monitor 1.

Minimal config

dosini
[bar/example]
width = 100%
height = 26
monitor = ${env:MONITOR:}
modules-left = xworkspaces

[module/xworkspaces]
type = internal/xworkspaces
pin-workspaces = true
label-active = [%name%]
label-active-padding = 1
label-visible = [%name%]
label-visible-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-empty =
label-empty-padding = 0

Polybar log

No relevant warnings or errors were printed while reproducing the issue.

Expected behavior

The workspace that is currently visible on monitor 2 should still be shown on the Polybar instance attached to monitor 2, even when monitor 1 is focused. In this example, workspace 4 should remain visible on monitor 2 and should use label-visible.

Actual behavior

Workspace 4 disappears from the bar on monitor 2 unless that monitor is focused. In this setup, label-visible does not appear to affect how that workspace is rendered.

Window Manager and Version

XMonad 0.18.0 (xmonad-contrib 0.18.1), EWMH enabled

Linux Distribution

Fedora 43

Polybar version

polybar 3.7.2-dev

Features: +alsa +curl -i3 +mpd +network(libnl) +pulseaudio +xkeyboard

X extensions: +randr (+monitors) +composite +xkb +xrm +xcursor

Build type: Release
Compiler: /usr/lib64/ccache/c++
Compiler flags:  -O3 -DNDEBUG -Wall -Wextra -Wpedantic -Wdeprecated-copy-dtor -Wsuggest-override
Linker flags:  -Wall -Wextra -Wpedantic -Wdeprecated-copy-dtor -Wsuggest-override  -Wall -Wextra -Wpedantic -Wdeprecated-copy-dtor -Wsuggest-override

Additional Context / Screenshots

This happens consistently for me with XMonad + EWMH in a multi-monitor setup when pin-workspaces = true and label-empty is blank.

Potentially related: #2693, #950, #2603, but this report focuses specifically on how a workspace that is visible on another monitor is rendered when label-visible is configured.