waybar-niri-workspaces(5)

<h1>✨ waybar-niri-workspaces(5) ✨</h1>

okay so bestie, you opened waybar-niri-workspaces(5) and it's a page from the File Formats Manual section, which is just fancy talk for "this is a config page, not a command you type." It's all about waybar's niri workspaces module. Let's go πŸ’…


πŸ’– NAME πŸ’–

waybar - niri workspaces module


πŸ¦‹ DESCRIPTION πŸ¦‹

The workspaces module displays the currently used workspaces in niri. That's it, that's the job, and it does it gorgeously. ✨


πŸŽ€ CONFIGURATION πŸŽ€

Addressed by niri/workspaces

This is where you live, bestie. Every option below goes in there. πŸ‘‘

  • all-outputs β€” typeof: bool, default: false β€” If it's set to false, workspaces only get shown on the output they're actually on. If you set it to true, every single workspace shows up on every output. Main character energy, no filter.
  • format β€” typeof: string, default: {value} β€” The format, i.e. how the information should be displayed. Dress it up however you want πŸŽ€
  • format-icons β€” typeof: array β€” Based on the workspace name, index and state, the corresponding icon gets selected. Go look at ICONS below, iykyk.
  • disable-click β€” typeof: bool, default: false β€” If it's false, you can click to change workspace. If it's true, that behaviour is disabled. So true = hands off, false = click away 🫢
  • disable-markup β€” typeof: bool, default: false β€” If it's true, the button label will escape pango markup.
  • current-only β€” typeof: bool, default: false β€” If it's true, only the active or focused workspace will be shown. Just the one. The main character. ⭐
  • on-update β€” typeof: string β€” A command to execute when the module is updated.
  • expand β€” typeof: bool, default: false β€” Enables this module to consume all left over space dynamically. It's stretching out, periodt 🌈

🌟 FORMAT REPLACEMENTS 🌟

These are the little placeholders you can drop into format:

  • {value}: Name of the workspace, or index for unnamed workspaces, as defined by niri.
  • {name}: Name of the workspace for named workspaces.
  • {icon}: Icon, as defined in format-icons.
  • {index}: Index of the workspace on its output.
  • {output}: Output where the workspace is located.

🧚 ICONS 🧚

Additional to workspace name matching, the following format-icons can be set. Slay πŸ’…

  • default: Will be shown, when no string matches are found.
  • focused: Will be shown, when workspace is focused.
  • active: Will be shown, when workspace is active on its output.
  • urgent: Will be shown, when workspace has urgent windows.
  • empty: Will be shown, when workspace is empty.

🌸 EXAMPLES 🌸

     "niri/workspaces": {
          "format": "{icon}",
          "format-icons": {
               // Named workspaces
               // (you need to configure them in niri)
               "browser": "",
               "discord": "",
               "chat": "<b></b>",

               // Icons by state
               "active": "",
               "default": ""
          }
     }

πŸŽ€ Style πŸŽ€

Selector girlies, this one's for you:

  • #workspaces button
  • #workspaces button.focused: The single focused workspace.
  • #workspaces button.active: The workspace is active (visible) on its output.
  • #workspaces button.urgent: The workspace has one or more urgent windows.
  • #workspaces button.empty: The workspace is empty.
  • #workspaces button.current_output: The workspace is from the same output as the bar that it is displayed on.
  • #workspaces button#niri-workspace-<name>: Workspaces named this, or index for unnamed workspaces.

no cap, go set up your bar and make niri look absolutely iconic πŸ”₯

and that's the whole page bestie 🫢 β€” this was waybar-niri-workspaces(5), dated 2026-02-08. see you in the next one, mwah πŸ’–

πŸ“¦ where this page comes from