72 lines
3.9 KiB
Markdown
72 lines
3.9 KiB
Markdown
# Game Bar
|
||
|
||
An overlay for [DankMaterialShell](https://danklinux.com/docs/dankmaterialshell/plugins-overview).
|
||
|
||
## 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 |
|
||
| **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:
|
||
|
||
1. **Home Assistant URL**, e.g. `http://homeassistant.local:8123`
|
||
2. **Long-lived access token** — HA profile page → *Security* → *Create token*.
|
||
It is stored in `plugin_settings.json`, which is world-readable by default
|
||
(`chmod 600` it if that matters to you).
|
||
3. **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
|
||
|
||
```bash
|
||
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 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-recorder` device name, e.g. `default_output`; `gpu-screen-recorder --list-audio-devices`).
|
||
- **Home Assistant** — URL, access token, refresh interval, and the entity picker.
|
||
- **Reset widget positions** — back to the default arrangement on every monitor.
|
||
|
||
## License
|
||
|
||
MIT
|