Monadeck — a SteamVR-style Launcher for Monado
Envision works, but I never liked its GTK UI or its PATH-bound, .desktop-file plugin system — and it does a lot of things (source builders, driver profiles, dependency checks) I never use. So I built Monadeck: a SteamVR-style launcher and orchestrator for my Monado fork, focused on the ~40% of Envision I actually reach for.
Repo: github.com/Eidenz/monadeck — grab the latest release there.
Think of it as the SteamVR you no longer have: it starts the runtime, shows you what's connected, and gives you an in-headset dashboard to launch games and adjust your playspace.
What it does
Runtime orchestration (the desktop app):
- Starts and stops
monado-servicewith the right environment for your headset (render scale, pacing, compositor, NVIDIA/AMD tweaks) — no launch-option guesswork. - Registers Xrizer as your OpenVR runtime automatically.
- Shows a live device strip (headset, controllers, trackers, gloves) with battery levels via libmonado.
- Launches overlay plugins by explicit path or by picking an installed app.
One-click setup (no building):
- If no Monado is found, Monadeck can download the prebuilt portable fork and Xrizer for you, into its own folders — it never touches or overwrites an existing install.
- A built-in pre-flight check verifies the
xr-hardwareudev rules andpkexecare present, and tells you exactly how to fix them if not.
Coexistence is a hard rule: every runtime switch backs up your active_runtime.json and openvrpaths.vrpath, and restores them when you stop — so Monadeck never breaks an existing SteamVR setup.
In-headset dashboard
Enable the built-in overlay and you get a curved, SteamVR-style dashboard you can summon over any game:
- Game library — Steam and non-Steam titles (it parses
shortcuts.vdf, which most launchers miss), with cover/hero/logo art, favorites, collections, sorting, and playtime. - Playspace mover — nudge and rotate your play space like OVR Advanced Settings, with per-game overrides on top of a global offset.
- Timer, battery readouts, low-battery warnings, and in-headset toasts.
- Set active / Freeze / Kill per running app (Freeze uses the fork's controller-freeze feature).
- Haptics and optional UI sounds.
Visual binding editor
Instead of hand-editing Xrizer/SteamVR binding JSON (see the manual method), Monadeck bundles a visual binding editor: browse your games, click controller zones, assign actions, tweak parameters, and save straight to an Xrizer per-game override. Index/Knuckles are fully supported.
Bonus: flat games in VR (UEVR mode)
Monadeck can inject UEVR into flat Unreal Engine games for you — it downloads the injector, launches the game under Proton, and waits for injection, all from the in-headset library. See the UEVR page for the details.
Monadeck targets my Monado fork running from prefix /usr (or a Monadeck-installed portable copy). It also works against stock Monado — features that need the fork (like controller freeze) simply hide themselves when the loaded runtime doesn't support them.