Steam / Gamescope gaming mode launcher for Omarchy OS (Hyprland, Arch)
Find a file
2025-11-23 19:15:07 +00:00
Configuration Configuration 2025-11-23 19:12:16 +00:00
Installation Installation 2025-11-23 19:09:55 +00:00
LICENSE Update LICENSE 2025-11-23 14:30:31 +00:00
README.md README.md 2025-11-23 19:07:55 +00:00
Requirements Requirements 2025-11-23 19:08:41 +00:00
Screenshots Screenshots 2025-11-23 19:15:07 +00:00
Usage Usage 2025-11-23 19:10:53 +00:00

W.O.P.R Steam Gaming Mode for Hyprland

“Shall we play a game?”

W.O.P.R is a Hyprland-centric “gaming mode” launcher for Arch-based systems (designed on Omarchy).
It installs a pair of helper scripts and Hyprland keybinds that:

  • Start gamescope in a full-screen gaming session
  • Launch Steam in Big Picture / Gamepad UI mode
  • Apply CPU & GPU performance tweaks
  • Optionally show a MangoHud overlay
  • Restore everything cleanly when you quit

Once installed you get:

  • Super + Shift + SEnter Gaming Mode (W.O.P.R TUI, then Steam)
  • Super + Shift + RExit Gaming Mode (restore governors, GPU states, idle, etc.)

Features

  • 🖥 Resolution presets

    The TUI detects your current monitor and lets you choose:

    • Native resolution (best quality)
    • 1440p upscaled (1080p → 1440p)
    • 1440p native (2560×1440)
    • 4K upscaled (1440p → 4K)
    • 4K/UHD native (3840×2160)

    Internally it configures gamescopes render and output sizes to match.

  • 📊 MangoHud presets

    • Off cleanest view
    • Minimal FPS counter only
    • Full Stats FPS, frametime, CPU/GPU temps, power, RAM, etc.
  • ⚙️ Performance mode

    When PERFORMANCE_MODE=enabled (default):

    • Uses gamemoderun to wrap gamescope/Steam
    • Can add --rt --immediate-flips to gamescope for lower latency
    • Optionally grants cap_sys_nice to gamescope (if you accept the prompt)
    • Switches CPU governor to performance-oriented mode while gaming
    • Applies GPU performance tweaks and records original settings

    On exit, CPU governor, GPU power/perf modes and idle behaviour are restored.

  • 🎮 Steam launch modes

    Configurable via /etc/gaming-mode.conf or ~/.gaming-mode.conf:

    • STEAM_LAUNCH_MODE=bigpicturesteam -tenfoot (default)
    • STEAM_LAUNCH_MODE=gamepaduisteam -gamepadui
  • 🧠 Smart GPU support

    Detects GPU(s) via lspci and helper functions:

    • NVIDIA installs Vulkan loader, 32-bit libs and video drivers
    • AMD installs RADV Vulkan stack, 32-bit libs and VAAPI/VDPAU
    • Intel Arc (xe) installs lean Vulkan + compute stack and applies a GSK_RENDERER=gl fix for GTK4 apps on Arc
    • Intel iGPU (i915/Xe) installs the full Intel media/Vulkan stack

    On first run it can also add you to relevant groups (e.g. video, input, gamemode etc.), and will warn that you need to log out and back in.

  • 🎨 Omarchy-aware theming

    If available, it reads colours from:

    • ~/.config/omarchy/current/theme/ghostty.conf
    • ~/.config/omarchy/current/theme/colors.sh

    and uses them to style the gum TUI. If those arent present, it falls back to a neutral dark theme.

  • 🪟 Tidy Hyprland integration

    • Automatically finds your Hyprland config:
      • ~/.config/hypr/bindings.conf
      • ~/.config/hypr/keybinds.conf
      • ~/.config/hypr/hyprland.conf
    • Appends a clearly-marked block of bindings and window rules
    • Makes the W.O.P.R terminal floating, centred and pinned

How it works

The installer script (WOPR.sh):

  1. Validates environment

    • Requires pacman, hyprctl and a Hyprland config under ~/.config/hypr/.
  2. Checks Steam + GPU dependencies

    • Refreshes pacman DB (pacman -Syy)
    • Optionally offers a full system upgrade (pacman -Syu)
    • Verifies the multilib repository is enabled (needed for 32-bit Steam)
    • Assembles a list of core packages (Steam, Vulkan loaders, 32-bit libs etc.) plus GPU-specific packages, then offers to install anything missing.
  3. Installs core tools (if needed)

    Through setup_requirements() it ensures:

    • steam, gamescope, mangohud, gum
    • python, pciutils, libcap, gamemode
    • plus whatever is needed by your GPU
  4. Deploys launcher scripts

    Creates:

    • ~/.local/share/steam-launcher/enter-gamesmode
    • ~/.local/share/steam-launcher/leave-gamesmode

    These manage:

    • Session state (~/.cache/gaming-session)
    • CPU governor / GPU perf modes
    • Hypridle (suspend/lock) behaviour
    • gamescope + Steam start/stop
    • MangoHud configuration
  5. Adds Hyprland keybinds

    Appends a block like:

    # Gaming Mode bindings - added by installation script
    windowrulev2 = float, class:(WOPR-Terminal)
    windowrulev2 = size 800 600, class:(WOPR-Terminal)
    windowrulev2 = center, class:(WOPR-Terminal)
    windowrulev2 = pin, class:(WOPR-Terminal)
    
    bindd = SUPER SHIFT, S, Steam Gaming Mode, exec, <your-terminal> ~/.local/share/steam-launcher/enter-gamesmode
    bindd = SUPER SHIFT, R, Exit Gaming Mode,   exec, ~/.local/share/steam-launcher/leave-gamesmode
    # End Gaming Mode bindings
    
    (It auto-detects whether your config uses bind or bindd.)
    
    
    
    
    
  6. Validation

    A final check confirms: • Launcher scripts exist and are executable • The bindings block is present in your Hypr config • gamescope capabilities are compatible with PERFORMANCE_MODE