lys-wm-workspaces
lys-wm workspace indicators with click-to-switch.
Add it to your layout with lys-wm-workspaces:
yaml
bar:
layout:
- monitor: "*"
right: [lys-wm-workspaces]General
| Field | Type | Default | Description |
|---|---|---|---|
monitor-specific | bool | true | Show only workspaces on this bar's monitor. |
display-mode | DisplayMode | "label" | What identifies each workspace button. |
urgent-show | bool | true | Pulse animation on workspaces with urgent windows. |
urgent-mode | UrgentMode | "workspace" | Where the urgent pulse is applied. |
active-indicator | ActiveIndicator | "background" | Visual indicator for the active workspace. |
divider | string | " " | Text separator between workspace identity and app icons. |
app-icons-show | bool | false | Show application icons for windows on each workspace. |
app-icons-dedupe | bool | true | Deduplicate application icons within a workspace. |
app-icons-fallback | string | "ld-app-window-symbolic" | Fallback icon for applications not matched by app-icon-map. |
app-icons-empty | string | "ld-minus-symbolic" | Icon shown when a workspace has no application windows. |
icon-gap | Size | 0.3 | Gap between app icons within a workspace button. Accepts a scale multiplier or pixels (e.g. "4px"). |
workspace-padding | Size | 0.5 | Padding for workspace content along the bar direction. Accepts a scale multiplier or pixels (e.g. "8px"). |
icon-size | Size | 1 | Workspace icon size. Accepts a scale multiplier or pixels (e.g. "16px"). |
label-size | Size | 1 | Workspace label and divider size. Accepts a scale multiplier or pixels (e.g. "16px"). |
workspace-ignore | array of string | [] | Workspaces to hide from the display. |
active-color | ColorValue | "accent" | Color for the active (visible on its output) workspace. |
occupied-color | ColorValue | "fg-muted" | Color for occupied workspaces (have windows but not active). |
empty-color | ColorValue | "fg-subtle" | Color for empty workspaces and placeholder slots. |
container-bg-color | ColorValue | "bg-surface-elevated" | Background color for the workspaces container. |
border-show | bool | false | Display border around the workspaces container. |
border-color | ColorValue | "border-default" | Border color for the workspaces container. |
workspace-map | WorkspaceMap | {} | Per-workspace icon and color overrides, keyed by workspace number. |
app-icon-map | map of string | {} | Application icon mapping with glob pattern support. |
left-click | WorkspaceClickAction | "focus:this" | Action on left click. |
middle-click | WorkspaceClickAction | "" | Action on middle click. |
right-click | WorkspaceClickAction | "" | Action on right click. |
scroll-up | WorkspaceClickAction | "focus:previous" | Action on scroll up. |
scroll-down | WorkspaceClickAction | "focus:next" | Action on scroll down. |
More about monitor-specific
When true (default), each bar shows only its own output's workspaces. When false, all workspaces from every output are shown.
More about display-mode
label(default): show the workspace numbericon: show an icon fromworkspace-map(falls back to label if unmapped)none: show nothing — only app icons visible (if enabled)
More about urgent-mode
workspace(default): whole button pulsesapplication: only the urgent app icon pulses, falling back toworkspacewhen app icons are disabled
More about app-icons-dedupe
When true, one icon per unique app_id. When false, one icon per window.
More about icon-size
Applies to identity icons and custom icons from workspace-map.
More about workspace-ignore
Glob patterns matched against the workspace number. Example:
"1?"— hide numbers 10-19
More about active-color
In background indicator mode, also used as the button background.
More about workspace-map
Example
yaml
modules:
lys-wm-workspaces:
workspace-map:
"1": {icon: ld-globe-symbolic, color: "#4a90d9"}
"2": {icon: ld-terminal-symbolic}More about app-icon-map
Maps window app_id or title to symbolic icon names. Supports:
- No prefix: matches
app_id(e.g."*firefox*") app:prefix: explicitapp_idmatch (e.g."app:org.mozilla.*")title:prefix: matches window title (e.g."title:*YouTube*")
Example
yaml
modules:
lys-wm-workspaces:
app-icon-map:
"*firefox*": ld-globe-symbolic
"title:*YouTube*": ld-youtube-symbolicDefault configuration
yaml
modules:
lys-wm-workspaces:
monitor-specific: true
display-mode: label
urgent-show: true
urgent-mode: workspace
active-indicator: background
divider: ' '
app-icons-show: false
app-icons-dedupe: true
app-icons-fallback: ld-app-window-symbolic
app-icons-empty: ld-minus-symbolic
icon-gap: 0.30000001192092896
workspace-padding: 0.5
icon-size: 1.0
label-size: 1.0
workspace-ignore: []
active-color: accent
occupied-color: fg-muted
empty-color: fg-subtle
container-bg-color: bg-surface-elevated
border-show: false
border-color: border-default
workspace-map: {}
app-icon-map: {}
left-click: focus:this
middle-click: ""
right-click: ""
scroll-up: focus:previous
scroll-down: focus:next