Integration
Quickshell
Quickshell integration is pending upstream support.
Status JSON
stasis info --json is the stable status-bar contract. The text field uses short labels: waiting, active, inhibited, locked, and manual.
The alt and class fields are intended for icon mapping and CSS styling. Tooltips include
the active profile, plan source, state, manual pause status, app/media inhibitor counts, D-Bus inhibit state,
and the next pending action when available.
{
"text": "active",
"alt": "idle_active",
"class": "idle_active",
"tooltip": "Profile: default\nPlan Source: Desktop\nState: active",
"profile": "default"
}Waybar
Example Custom Module
To use Stasis with Waybar, define a custom module that polls stasis info --json.
Icon-based Display
"custom/stasis": {
"exec": "stasis info --json",
"format": "{icon}",
"format-icons": {
"idle_active": "",
"idle_waiting": "",
"idle_inhibited": "",
"manually_inhibited": "",
"locked": "",
"not_running": ""
},
"tooltip": true,
"on-click": "stasis toggle-inhibit",
"interval": 2,
"restart-interval": 2,
"return-type": "json"
}Text-based Display
Or display text instead of icons:
"custom/stasis": {
"exec": "stasis info --json",
"format": "{text}",
"tooltip": true,
"on-click": "stasis toggle-inhibit",
"interval": 2,
"restart-interval": 2,
"return-type": "json"
}System Tray
stasis tray runs the optional StatusNotifier tray frontend. It is separate from
the headless daemon and does not replace stasis info --json, so Waybar and other
status bars can keep polling the JSON output directly.
The tray tooltip shows the current Stasis state. Its menu provides actions to toggle manual inhibition, pause, resume, reload the config, and quit only the tray process.
Start a StatusNotifier tray host first, such as Waybar's tray module, KDE Plasma, or another panel with tray support. The daemon remains headless and does not launch the tray automatically.
Run Manually
stasis traySystemd User Service
Run the daemon and tray as separate user services. Packages may already install this
optional service file as stasis-tray.service.
[Unit]
Description=Stasis System Tray Frontend
PartOf=graphical-session.target
After=graphical-session.target stasis.service
ConditionPathExists=%t
[Service]
Type=simple
ExecStart=/usr/bin/stasis tray
Restart=on-failure
RestartSec=2
[Install]
WantedBy=graphical-session.targetNixOS and Home Manager users can enable the tray through the module option services.stasis.tray.enable.