feat(niri): add workspace-taskbar support

Adds a per-workspace app-icon taskbar (Workspace class) to the
niri/workspaces module. Rebased onto master: integrated with the
existing window-rewrite feature so the {windows} and {total} format
replacements continue to work alongside the new taskbar.
This commit is contained in:
sewaustav
2026-07-04 01:50:16 +02:00
committed by Alexays
parent d6b6e72896
commit 9cd09c2569
6 changed files with 458 additions and 206 deletions
+26
View File
@@ -91,6 +91,20 @@ If none of the sorting options are enabled, workspaces keep their output/index o
typeof: bool ++
default: false ++
Enables this module to consume all left over space dynamically.
*workspace-taskbar*: ++
typeof: object ++
Contains settings for the workspace taskbar, which displays app icons within each workspace.
*enable*: ++
typeof: bool ++
default: false ++
Enables the workspace taskbar mode.
*icon-size*: ++
typeof: int ++
default: 18 ++
Size of the icons in the workspace taskbar.
*ignore-workspaces*: ++
typeof: array ++
@@ -166,6 +180,16 @@ Additional to workspace name matching, the following *format-icons* can be set.
}
```
```
"niri/workspaces": {
"format": "{icon}",
"workspace-taskbar": {
"enable": true,
"icon-size": 18
}
}
```
# Style
- *#workspaces button*
@@ -177,3 +201,5 @@ Additional to workspace name matching, the following *format-icons* can be set.
the bar that it is displayed on.
- *#workspaces button#niri-workspace-<name>*: Workspaces named this, or index
for unnamed workspaces.
- *#workspaces button.niri-workspace*: The main container for the workspace.
- *#workspaces button .niri-taskbar-btn*: The icon buttons within the taskbar.