usage guide

Everything you do day-to-day: the launch splash, the settings window, scopes, and profiles.

the five invocation modes

CommandWhat happens
ritz %command%Steam launch path: shows the splash, then launches (or opens the editor).
ritzOpens the settings GUI manager — no game launch.
ritz --print %command%Prints the assembled launch command and exits — never launches. Outside real Steam (which sets $SteamAppId for you), pair it with an id: RITZ_APPID=<id> ritz --print %command%.
ritz --splash <appid> -- %command%Internal: the splash window, spawned as its own process.
ritz --edit [--launch] <appid> [-- %command%]Opens the settings GUI scoped to one game.
RITZ_APPID=<id> ritz %command%Gives a non-Steam game a stable identity.

The splash and the editor each spawn as their own process, so ritz stays the single windowless process Steam tracks from click to game exit — it forwards the exit code, fires lifecycle hooks, and cleans up when the game closes.

the launch splash

ritz shows one of three different always-on-top windows, depending on whether it already knows the game and whether it can resolve an AppID at all: a one-time naming wizard the first time it sees a known AppID, the countdown splash on every launch after that, or — if no AppID can be resolved — a setup screen that writes nothing and always cancels the launch, prompting you to fix the shortcut's Steam launch options. They're separate screens shown on separate launches, not steps of one session.

first launch: the new-game wizard

The first time ritz sees a game it has no config for, it runs this 3-step wizard instead of the countdown splash — and it's the whole wizard, there's no 4th step:

  1. Name — confirm/edit the game's display name (pre-filled from Steam where possible).
  2. Profile — pick a pinned profile with one key, or use the default.
  3. Confirm — a static "Ready to Launch!" screen, deliberately with no countdown (auto-launching on a timer here would risk saving a wrong guessed name) — review and launch, or jump into the editor first.

every launch after that: the countdown splash

Once a game is known, ritz shows this instead — a small splash with the game name, its assigned profile, and a countdown that launches automatically when it hits zero:

The normal countdown splash: game name, profile, and a 1.7s countdown to launch
KeyAction
W / EnterLaunch immediately.
EOpen this game's config in the editor; closing it then continues (or cancels) the launch.
Q / EscCancel the launch.
timeoutLaunches automatically after the splash timeout.

The splash shows the game name, its assigned profile, and the countdown. It's keyboard-first, so it works inside gamescope/Big-Picture flows, but every button is also clickable with a mouse.

the settings window

ritz settings GUI showing the navigator, module tree, the Misc module's options with scope colors, and the launch-command preview

Run ritz (or press E on the splash). The window has three columns:

scopes & colors

Every option resolves through four layers, lowest to highest priority:

extension default → global → profile → game

ColorScopeMeaning
grayDefaultNo override anywhere — the module's built-in default.
redGlobalSet in global.json; applies to every game.
greenProfileSet in a profile; applies to games using that profile.
blueGameSet for this specific game; wins over everything.

A value's color tells you where it currently comes from. While editing a given scope, values you set there show in that scope's color; inherited values show in the color of the scope they came from, and an inherited control is shown read-only.

setting and resetting: left-click a checkbox to set the value at the current scope; right-click to reset it to inherited. Sliders, dropdowns, and text boxes have an enable toggle that works the same way.

profiles

A profile is a reusable bundle of settings — e.g. Competitive FPS (gamescope fullscreen + low latency) or Controller Couch (4K + FSR). A profile may itself inherit from a parent profile, forming an extra layer below it.

general settings & maintenance

SettingEffect
Splash timeoutSeconds the launch splash counts down before launching (per-game overridable).
Default profileProfile applied to games that don't pick their own.
Editor closing actionWhether closing the launch-mode editor window launches the game or cancels.
Monospace UI fontRender the UI in Geist Mono (techy) vs proportional Geist.
Touch ModeDrag content to scroll (handy on touchscreens).
Use full UI widthLet setting rows fill the pane instead of capping their width.

maintenance actions

where things live

~/.config/ritz/
├─ general.json          app settings
├─ global.json           the global scope
├─ profiles/<name>.json   profiles
├─ games/<appid>.json     per-game overrides
├─ extensions/           modules (bundled + your drop-ins)
└─ plugins/              bundled plugins

Override the location with $RITZ_CONFIG_DIR. Only explicitly-set values are stored, so files stay small. Ready to write your own module? Head to the extension reference →