Skip to content

Modules fail to render in array (multi-bar) config on v0.15.0 with Hyprland #4954

@kamafozilov

Description

@kamafozilov

Description

When using the array config format to define separate bars per monitor, most modules fail to render on all bars. The GTK widget tree shows all modules are correctly loaded, and no errors appear in debug logs, but the modules are visually invisible on screen. Only a few items (omarchy icon, workspaces, clock) are partially visible.

The same modules work perfectly with a single-object config (no "output" field).

Environment

  • Waybar version: v0.15.0
  • Compositor: Hyprland
  • OS: Arch Linux (Omarchy)
  • Monitors:
    • HDMI-A-1: Samsung Odyssey G40B, 1920x1080@240Hz (landscape)
    • DP-1: HDY 27B1800, 1920x1080@180Hz (portrait, transform: 3)

Steps to Reproduce

  1. Use two monitors with Hyprland
  2. Change waybar config from single-object format to array format with "output" per bar:

Working config (single object, shows on all monitors identically):

{
  "modules-left": ["custom/omarchy", "hyprland/workspaces"],
  "modules-center": ["clock", "custom/update"],
  "modules-right": ["bluetooth", "network", "pulseaudio", "cpu", "battery"],
  // ... module definitions ...
}

Broken config (array format, modules fail to render):

[
  {
    "output": "HDMI-A-1",
    "modules-left": ["custom/omarchy", "hyprland/workspaces"],
    "modules-center": ["clock", "custom/update"],
    "modules-right": ["bluetooth", "network", "pulseaudio", "cpu", "battery"],
    // ... full module definitions ...
  },
  {
    "output": "DP-1",
    "modules-left": ["custom/omarchy", "hyprland/workspaces"],
    "modules-center": ["clock", "custom/update"],
    "modules-right": [],
    // ... module definitions for used modules ...
  }
]
  1. Restart waybar
  2. Observe that most modules on the HDMI-A-1 bar are invisible despite being present in the widget tree

Expected Behavior

All modules defined in modules-right for the HDMI-A-1 bar should render visually, exactly as they do with the single-object config.

Actual Behavior

Only ~2 icons are visible on the right side of the HDMI-A-1 bar. The rest of the modules exist in the GTK widget tree (confirmed via waybar -l debug) but are not rendered on screen.

Debug Log

Running waybar -l debug shows both bars are configured correctly with no errors:

[info] Bar configured (width: 1080, height: 26) for output: DP-1
[info] Bar configured (width: 1920, height: 26) for output: HDMI-A-1

The GTK widget tree for HDMI-A-1 shows all modules present:

window#waybar.background.top..mode-default.HDMI-A-1:dir(ltr)
  box.horizontal.modules-right:dir(ltr)
    widget: box#tray-expander.horizontal
    widget: label#bluetooth.module
    widget: label#network.module
    widget: label#pulseaudio.module
    widget: label#cpu.module
    widget: label#battery.module

No rendering errors in log. All module scripts exit with code 0 or 1 (expected).

Additional Notes

  • Also tested without the battery module (since this is a desktop with no battery and the log shows [warning] No batteries.) — same result.
  • The CSS uses standard module selectors (#cpu, #bluetooth, etc.) with no bar-specific selectors that could conflict with the array format's additional CSS classes.
  • Reverting to the single-object config immediately restores all modules.
  • Possibly related to Waybar 0.15.0 renders invisible on Hyprland (layer exists but nothing visible) #4864 (invisible bar rendering in v0.15.0).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions