ritz logo

Linux · Steam · egui

ritz

A Linux Steam launch console. Set one launch option, and ritz assembles the env vars, gamescope/gamemode wrappers, and launch args for you — from a GUI, per game.

Quickstart → Usage guide Write a module
ritz settings GUI editing the Misc module for PAYDAY 2 — scope-colored toggles for LD_PRELOAD, keyboard layout, and GameMode, with the assembled launch command shown at the bottom
settings.gui — scopes & modules on the left, options in the center, the live launch-command preview below

what it solves

Linux gaming means juggling RADV_PERFTEST, gamescope flags, VKD3D_CONFIG, Proton sync backends, frame-gen quirks, and a wall of VAR=value %command% launch options — per game, by hand. ritz replaces all of that with a single launch option and a settings window. Toggle what you want; ritz assembles the exact command at launch and stays out of the way.

ENV_VARS→ WRAPPERS→ GAME_ENV_VARS→ %command%→ GAME_LAUNCH_ARGS

01 · one launch option

Set ritz %command% once in Steam's launch options. Everything else is configured in the GUI.

02 · layered scopes

Settings cascade global → profile → game, each overriding the last.

03 · JSON modules

Every feature — Gamescope, AMD, Proton, DXVK, VKD3D, and more — is a small JSON manifest. Edit the bundled ones or drop in your own.

04 · live preview

The GUI shows the exact assembled launch command as you toggle options, or dry-run it with ritz --print (outside real Steam, pair it with RITZ_APPID=<ID>).

quickstart

You need Rust (the cargo build tool) and git. On most distros: sudo pacman -S rust git (Arch), sudo apt install cargo git (Debian/Ubuntu), or install Rust via rustup.rs.

  1. Get the code
    git clone https://github.com/Ritze03/ritz.git
    cd ritz
  2. Build it (Linux only) — takes a few minutes the first time
    cargo build --release
  3. Symlink it system-wide — updates automatically after every rebuild
    sudo ln -sf "$(pwd)/target/release/ritz" /usr/bin/ritz
  4. Set the Steam launch option — right-click the game → Properties → Launch Options
    ritz %command%
  5. Launch. The first time, a short wizard asks for a name and an optional profile, then starts the game. After that you get a splash on every launch: W launch · E edit · Q cancel.
Settings window: run ritz with no arguments any time to open the full GUI. Dry run: ritz --print %command% prints the assembled command without launching. Real Steam sets $SteamAppId for you; testing by hand outside Steam needs RITZ_APPID=<ID> ritz --print %command% instead.
Updating: cd ritz && git pull && cargo build --release — nothing else needed, the symlink always points at the freshly built binary. Caveat: if you move or delete the cloned repo, /usr/bin/ritz is left dangling — re-run the symlink command from the new location.

non-Steam games

For non-Steam shortcuts (or anything ritz can't identify from Steam), give it a stable id:

RITZ_APPID=my-game ritz %command%

Running ritz %command% on an unknown game walks you through setting this up and shows the exact launch option to paste.

where to next

usage guide →

The splash, the settings GUI, scopes & colors, profiles, and maintenance actions.

extension reference →

Write your own modules: the full JSON schema with example snippets for every block.