A one-click bar toggle for Omarchy v4 ("Quattro") that strips compositor effects for gaming — and restores your exact configuration when you toggle it back.
On: animations off, blur off, shadows off, gaps 0, rounding 0, tearing allowed. The focus border is deliberately left alone so you can still see which window has focus.
Off: your own Hyprland configuration, exactly as it was.
Game mode uses Omarchy's own toggle mechanism (the one behind
omarchy-hyprland-toggle): a small Lua flag file is written into the
sourced toggles directory ($XDG_STATE_HOME, or ~/.local/state when
unset) at omarchy/toggles/hypr/community-game-mode.lua, followed by
hyprctl reload. Toggling off deletes the file and reloads again.
Because the "off" path is your config with the flag absent, there is nothing to save or restore by hand — no drifting state, and the toggle survives shell restarts and reboots (the flag file persists; the widget re-probes it on startup).
omarchy plugin add https://github.com/devmobasa/omarchy-game-mode --enableThe widget lands in the bar's right section by default; move it with
omarchy bar move community.game-mode <left|center|right>.
Click the gamepad icon (it takes the bar's active color while game mode is on). From a script or keybinding:
omarchy-shell community.game-mode toggle # flip
omarchy-shell community.game-mode status # "on" | "off"Keybinding example for ~/.config/hypr/bindings.lua:
o.bind("SUPER + CTRL + G", "Game mode", "omarchy-shell community.game-mode toggle")Pick any free chord; to reuse one Omarchy already binds, call
hl.unbind(...) first.
Omarchy Nexus ships a Game Mode toggle on its Controls page that manages the same flag file. Both controllers watch it, so either can toggle and neither goes stale. Nexus additionally lets you configure which effects the flag strips (its Settings page); this widget always writes the full default strip set.
- Tearing additionally needs
allow_tearingsupport from your GPU stack and, for windowed games, animmediatewindow rule; the flag flips the master switch. - If anything ever looks stuck,
rm "${XDG_STATE_HOME:-$HOME/.local/state}/omarchy/toggles/hypr/community-game-mode.lua" && hyprctl reloadis a complete manual reset.
./test/all # model fixtures, contract pins, manifest validation, qmllint