| name | quickshell-status-meter |
| description | Use when creating status bars, volume OSDs, health/resource meters, progress bars, or temporary overlay indicators. |
| source_examples | ["examples/quickshell/components/StatusMeter.qml","examples/quickshell/standalone/status-osd.qml"] |
| source_docs | ["https://git.outfoxxed.me/quickshell/quickshell-examples.git","https://doc.qt.io/qt-6/qml-qtqml-timer.html","https://doc.qt.io/qt-6/qtquicklayouts-overview.html"] |
Quickshell Status Meter
When to use
Use this for value displays such as volume, health, mana, battery, CPU, RAM, progress, loading, or transient OSD feedback.
Steps
- Clamp visual width to
0..1 so bad data cannot overflow the track.
- Use a track rectangle plus a fill rectangle anchored to the left/top/bottom.
- Use
Layout.fillWidth when the meter lives in a row or column.
- For passive OSDs, use
LazyLoader so the window exists only while visible.
- For passive OSDs only, set
exclusiveZone: 0 and mask: Region {} so the overlay does not reserve space or steal clicks.
- Use
Timer for auto-hide behavior; keep it local and deterministic.
Safety baseline
- Keep work in the project sandbox unless explicitly asked to edit source.
- Do not write to
~/.config/quickshell.
- Do not launch a live persistent widget from a skill; generate/static-review first.
- Keep KDE/Wayland examples free of
hyprctl and FloatingWindow.
Verification
- Meter fill width is clamped or otherwise bounded.
- Passive OSDs use click-through masks; interactive meters do not.
- Auto-hide overlays have an explicit timer or animation path.