waybar-hyprland-workspaces(5) File Formats Manual (NAME) waybar-hyprland-workspaces - hyprland waybar (DESCRIPTION) workspaces Hyprland . (CONFIGURATION) hyprland/workspaces . format: : (string) : {id} . format-icons: : (array) . (ICONS) . window-rewrite: : (object) (Regex) . . {class} {title} / . `class<...>` `title<...>` . . workspace-taskbar.enable true . window-rewrite-default: : (string) : "?" . window-rewrite . workspace-taskbar.enable true . format-window-separator: : (string) : " " . workspace-taskbar.enable true . workspace-taskbar: : (object) . enable: : (bool) : false . update-active-window: : (bool) : false true / 'active' . CPU . reverse-direction: : (bool) : false true ( ). active-window-position: : "none" | "first" | "last" : "none" "first" . "last" . update-active-window true . format: : (string) : {icon} . {icon} {title}. icon-size: : (int) : 16 . icon-theme: : (string | array) : [] . . ( ) . orientation: : "horizontal" | "vertical" : horizontal . ignore-list: : (array) : [] (Regex) . . on-click-window: : (string) : "" . : - {address} . - {button} https://api.gtkd.org/gdk.c.types.GdkEventButton.button.html . https://github.com/Alexays/Waybar/wiki/Module:-Hyprland#workspace-taskbars-example . show-special: : (bool) : false true (special) . special-visible-only: : (bool) : false show-special true . persistent-only: : (bool) : false true (persistent) . all-outputs: : (bool) : false false . . active-only: : (bool) : false true . move-to-monitor: : (bool) : false true . . `focusworkspaceoncurrentmonitor` `workspace` Hyprland. ignore-workspaces: : (array) : [] . . show-special all-outputs active-only . sort-by: : (string) : "default" number . name . id . special-centered . . expand: : (bool) : false . (FORMAT REPLACEMENTS) {id}: {name}: {icon}: format-icons. (ICONS) format-icons . o default: . o active: o special: o empty: o visible: . : . o persistent: (EXAMPLES) "hyprland/workspaces": { "format": "{name}: {icon}", "format-icons": { "1": "", "2": "", "3": "", "4": "", "5": "", "active": "", "default": "" }, "persistent-workspaces": { "*": 5, // 5 workspaces by default on every monitor "HDMI-A-1": 3 // but only three on HDMI-A-1 } } "hyprland/workspaces": { "format": "{name}: {icon}", "format-icons": { "1": "", "2": "", "3": "", "4": "", "5": "", "active": "", "default": "" }, "persistent-workspaces": { "*": [ 2,3,4,5 ], // 2-5 on every monitor "HDMI-A-1": [ 1 ] // but only workspace 1 on HDMI-A-1 } } "hyprland/workspaces": { "format": "{name}n{windows}", "format-window-separator": "n", "window-rewrite-default": "", "window-rewrite": { "title<.*youtube.*>": "", // Windows whose titles contain "youtube" "class": "", // Windows whose classes are "firefox" "class title<.*github.*>": "", // Windows whose class is "firefox" and title contains "github". Note that "class" always comes first. "foot": "", // Windows that contain "foot" in either class or title. For optimization reasons, it will only match against a title if at least one other window explicitly matches against a title. "code": "", "title<.* - (.*) - VSCodium>": "codium $1" // captures part of the window title and formats it into output } } "hyprland/workspaces": { // Formatting omitted for brevity "ignore-workspaces": [ "(special:)?chrome-sharing-indicator" ] } (STYLE) o #workspaces o #workspaces button o #workspaces button.active o #workspaces button.empty o #workspaces button.visible o #workspaces button.persistent o #workspaces button.special o #workspaces button.urgent o #workspaces button.hosting-monitor ( workspace-monitor == waybar-monitor ) o #workspaces .workspace-label o #workspaces .taskbar-window ( 'workspace-taskbar.enable' true ) o #workspaces .taskbar-window.active ( 'workspace-taskbar.update-active-window' true ) 2026-08-31 waybar-hyprland-workspaces(5)