main
Game Bar
An overlay for DankMaterialShell.
Widgets
| Widget | Contents |
|---|---|
| Audio | Master output volume + mute, output device switching, microphone volume + mute, input device switching |
| Apps | Per-application volume sliders with individual mute, app icon and what is playing |
| Media | Now playing with album art, seek bar, previous/play/next, and a chip per MPRIS source to switch between players |
| Capture | Record the focused monitor, arm a replay buffer and save the last N seconds, or hand a screenshot to the quickCapture plugin (needs gpu-screen-recorder) |
| Visualiser | Bars driven by whatever is actually playing out of this machine (needs cava) |
| Bluetooth | Paired devices with battery, connect/disconnect, adapter and scan toggles |
| Notes | The shell's notepad scratch tab, editable in place; file-backed tabs are shown read-only |
| Timer | Countdown with presets and an optional label, plus a stopwatch tab with laps; ends with a sound and a notification even when the overlay is closed |
| Performance | CPU (usage, temperature), memory (used / total), network (rx/tx), disk (root usage, read/write) |
| Home | Home Assistant entities you pick: lights (toggle + brightness), numbers (slider over the entity's own min/max/step), switches/fans, media players (volume, mute, play/pause), covers, scenes and scripts, plus read-only sensors |
Home Assistant
Settings → Plugins → Game Bar:
- Home Assistant URL, e.g.
http://homeassistant.local:8123 - Long-lived access token — HA profile page → Security → Create token.
It is stored in
plugin_settings.json, which is world-readable by default (chmod 600it if that matters to you). - Refresh, then tick the entities you want in the Home widget.
State is polled (default every 5 s) only while the Home widget is open. The token is handed to
curl through the process environment, so it never shows up in the process list.
If a refresh fails, dms ipc call gameBar homeStatus shows what the plugin actually sent and got
back. A 401 means Home Assistant rejected the token; compare with
curl -H "Authorization: Bearer <token>" https://your-ha/api/
Note that editing plugin_settings.json by hand does not reach a running shell.
IPC commands
| Command | Effect |
|---|---|
dms ipc call gameBar toggle |
Toggle the overlay |
dms ipc call gameBar open |
Open the overlay |
dms ipc call gameBar close |
Close the overlay |
dms ipc call gameBar widget audio|apps|media|home|system |
Show/hide one widget |
dms ipc call gameBar homeToggle <entity_id> |
Toggle an entity (activates a scene/script/button) |
dms ipc call gameBar homeRefresh |
Re-poll Home Assistant now |
dms ipc call gameBar homeStatus |
Print URL, token length, HTTP status, entity/picked counts and last error |
dms ipc call gameBar record |
Start/stop recording the focused monitor |
dms ipc call gameBar replay |
Arm/disarm the replay buffer |
dms ipc call gameBar saveReplay |
Write the last N seconds to disk |
dms ipc call gameBar captureStatus |
Print recorder mode, monitor, elapsed time and last file |
dms ipc call gameBar brightnessStatus |
Print the display→DDC map, pins and resolved brightness per screen |
dms ipc call gameBar layoutStatus |
Print each screen's layout key and where every widget resolves |
dms ipc call gameBar timer <seconds> [label] |
Start a countdown |
dms ipc call gameBar timerStop |
Stop and reset the countdown |
dms ipc call gameBar timerStatus |
Print countdown and stopwatch state |
dms ipc call gameBar resetLayout |
Forget all saved widget positions |
Settings
Settings → Plugins → Game Bar (gear icon):
- Background dimming — how dark the desktop behind the overlay gets (0–95%).
- Capture — folder, frame rate, quality, replay buffer length and the recorded audio source
(a
gpu-screen-recorderdevice name, e.g.default_output;gpu-screen-recorder --list-audio-devices). - Timer — sound on/off, notification on/off and which sound file to play.
- Home Assistant — URL, access token, refresh interval, and the entity picker.
- Reset widget positions — back to the default arrangement on every monitor.
License
MIT
Languages
QML
100%