Gaming Mode — Reference
Trigger configuration
[gaming_mode]
trigger = { key = "BTN_BASE", ms = 400 }
| Field | Default | Description |
|---|---|---|
key |
"BTN_BASE" |
Button to double-press. Any evdev key name. Set to "disabled" to turn off the trigger entirely. |
ms |
400 |
Maximum time between the two presses in milliseconds. |
In pause/preview mode the double-click is still detected and writes last_action so the HUD preview can show the action — but Gaming Mode is not actually toggled and haptics do not fire.
Auto-detection
[gaming_mode]
auto_detect_steam_games = true # default
When true, Gaming Mode activates automatically when a Steam game is detected as the focused window, and deactivates when focus moves away.
Detection uses two signals — either is sufficient:
- Steam Big Picture Mode — focused window has class
"steam"and a caption containing"Big Picture"or"Big-Picture". - Steam game process — the focused window's PID is a descendant of
reaper, whose parent issteam. This is the process tree structure Steam uses for every launched game (native, Proton, Wine, bwrap, etc.). Makima walks/proc/{pid}/statusupward from the focused PID — typically 3–7 files, under 1 ms.
Set to false to disable. Gaming Mode can then only be toggled via the double-click trigger or IPC.
Haptic feedback
haptic_on fires when Gaming Mode turns on; haptic_off fires when it turns off. Both have sensible built-in defaults and do not need to be set in the config.
For the pulse chain format and all available fields, see Haptic Feedback.
IPC commands
echo "gaming_mode enable" | socat - UNIX-CONNECT:$XDG_RUNTIME_DIR/makima-control.sock
echo "gaming_mode disable" | socat - UNIX-CONNECT:$XDG_RUNTIME_DIR/makima-control.sock
See IPC for the full command reference.
while_gaming bindings
By default, all bindings are suppressed while Gaming Mode is active. Bindings tagged while_gaming = true opt out of that suppression — they remain active in Gaming Mode and also continue to work normally in desktop use.
[commands]
BTN_THUMBL = { run = ["deckery-hud-toggle"], no_pause = true, while_gaming = true, label = "Toggle HUD" }
State export
Gaming Mode state is reflected in $XDG_RUNTIME_DIR/makima-state.json:
{
"context": {
"gaming_mode": true
},
"gaming_mode_trigger": {
"key": "BTN_BASE",
"label": "Toggle Gaming Mode"
}
}
gaming_mode_trigger is null when trigger = { key = "disabled" }.
See State JSON for the full schema.