Wayfire Workspace
July 19, 2026 · View on GitHub
A DankMaterialShell bar widget that displays Wayfire workspace information via IPC — workspace numbers, active/occupied indicators, and click-to-switch.
Features
- Display workspace numbers in the bar
- Active workspace highlighted, occupied workspace indicated with a dot
- Click any workspace to switch
- Popup grid for overview
- Colors, poll interval, and display mode configurable via DMS settings
Screenshot

Requirements
- Wayfire with
ipcandipc-rulesplugins enabled - DMS >= 1.4.6
- Python 3
Installation
⭐ Via DMS Registry (Recommended)
The plugin is available in the DMS registry. Install with one command:
dms plugins install wayfireWorkspace
Then restart DMS.
Manual
If you prefer to install manually or want the latest development version:
git clone https://github.com/joyanhui/dms-ext-wayfire-workspace.git
cp -r dms-ext-wayfire-workspace ~/.config/DankMaterialShell/plugins/WayfireWorkspace/
chmod +x ~/.config/DankMaterialShell/plugins/WayfireWorkspace/wayfire-workspace-state
Then restart DMS.
Wayfire Config
Enable IPC plugins and start the daemon in wayfire.ini:
[core]
plugins = ipc ipc-rules ...
[autostart]
wayfire_ws = /path/to/wayfire-workspace-state daemon
Enable in DMS
- Open DMS Settings → Plugins → Scan for Plugins
- Enable Wayfire Workspace
- Go to Bar settings and add it to your widget list
Usage
- Click a workspace number to switch
- Click the widget area to open the popup grid
- Active workspace is highlighted, occupied ones show a dot, empty ones are dimmed
Configuration
| Setting | Default | Description |
|---|---|---|
| Poll Interval | 200ms | State file read interval |
| Max Workspace Icons | 3 | Max icons in bar |
| Show Occupied Only | false | Show only workspaces with windows |
| Active Color | primary | Current workspace color |
| Occupied Color | surfaceContainerHighest | Workspace with windows color |
| Empty Color | surfaceTextAlpha | Empty workspace color |
How it works
Wayfire (ipc socket) → wayfire-workspace-state (Python daemon)
├── subscribes to workspace/view events
└── writes /tmp/wayfire-workspace-state.json
DMS Plugin (WayfireWorkspace.qml)
└── polls state file → renders workspace buttons
Files
plugin.json DMS plugin manifest
WayfireWorkspace.qml Bar widget component
WayfireWorkspaceSettings.qml Settings panel
wayfire-workspace-state Python daemon/CLI
License
MIT