Wayfire Workspace

July 19, 2026 · View on GitHub

DMS Registry

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

screenshot

Requirements

  • Wayfire with ipc and ipc-rules plugins enabled
  • DMS >= 1.4.6
  • Python 3

Installation

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

  1. Open DMS Settings → Plugins → Scan for Plugins
  2. Enable Wayfire Workspace
  3. 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

SettingDefaultDescription
Poll Interval200msState file read interval
Max Workspace Icons3Max icons in bar
Show Occupied OnlyfalseShow only workspaces with windows
Active ColorprimaryCurrent workspace color
Occupied ColorsurfaceContainerHighestWorkspace with windows color
Empty ColorsurfaceTextAlphaEmpty 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