[PC] Meta Quest Tray Tool — free modern OTT-style tray app for Quest Link / SteamVR
**Meta Quest Tray Tool** is a free Windows system-tray app for Meta Quest PCVR (Link / Air Link) and SteamVR OpenXR.
It’s a **brand-new C# app**, not a decompile and not a continuation of older unfinished ports. Goal: keep the Oculus Tray Tool workflow alive on today’s Meta stack — Steam-first PCVR friendly.
**Author:** Eliminater74
**Status:** public releases on GitHub (**v1.1.1** latest) — Windows 10/11, self-contained Setup.exe (no separate .NET install)
**Download:** MetaQuestTrayTool/releases/latest
**Repo / docs / screenshots / short demo:** MetaQuestTrayTool
---
### Inspired by (please give credit)
Huge respect to **ApollyonVR** and the original **Oculus Tray Tool (OTT)** — the classic tray app that made SS / ASW / profiles / Link tweaks easy for years.
- Original OTT: https://techtipsvr.com/oculus-tray-tool/
Meta Quest Tray Tool is **inspired by OTT’s ideas and layout**, rebuilt from scratch for current Meta Quest Link, SteamVR OpenXR, and modern Windows. It is **not** affiliated with ApollyonVR or Meta. If you loved OTT, this is meant to fill that gap — not replace the credit OTT earned.
---
### What it does (short)
Lives in the notification area. Opens an OTT-style sidebar on **Status** by default.
**Global VR defaults** stay applied until a game with a **personal profile** launches → that profile’s tweaks apply → when the game exits, **global defaults come back**, with a tray notification.
You can also push SideQuest-style **ADB headset** tweaks (USB or Wireless Pair), switch **OpenXR** Meta vs SteamVR, manage Link bitrate / sharpening, run **Dash → SteamVR** over Air Link, open **SteamVR Home** on demand, use **hotkeys / voice**, and **update in-app** from GitHub — without digging through registries.
**Important for SteamVR users:** when the tray runs elevated (recommended), **SteamVR cannot click that tray menu**. Mid-session control is HotKeys, voice, and automation.
---
### What works now (v1.1.1)
**Tray + shell**
- Notification-area host with themes (Pure Black / Dark / Light)
- Sidebar: **Status**, Game Settings, Tray Tool, Power Options, Service & Startup, Log, Advanced, Quest Link, Headset, **VR Tools**, Info / About
- Hover tooltips; close-to-tray; start minimized; hide from Alt+Tab; single-instance
- Hands-free elevated start (one UAC, then silent elevated at logon)
- Screenshots + short demo video in the repo README
**Status & SteamVR**
- Live Status chips (PCVR Ready, SteamVR install/running/Stable|Beta, OpenXR, OVRService, session type, ADB, battery/Wi‑Fi, profile, HotKeys/Voice, Dash→SteamVR, GPU, audio)
- SteamVR install detect + Install SteamVR action
- PCVR Ready checklist (Info) with fix actions
- Recover PCVR after Link / Steam / VD drop
- Session probe: Meta Air Link vs wired, Steam Link / SteamVR, Virtual Desktop
**Oculus / Meta PC runtime**
- Detect Meta/Oculus install + `OVRService` (start / stop / restart + automation)
- **Open Meta Horizon Link** — tray, hotkey (**Ctrl+Num 9**), voice
- **Open Oculus Debug Tool GUI** (`OculusDebugTool.exe`) — classic OTT shortcut — tray / shell / hotkey / voice
- **OVRService Manual-at-boot** (Service & Startup) — optional Manual startup so Meta Horizon Link does not auto-open at Windows sign-in; documented what it does/does not do; re-applies after Meta updates
- **PreventDashLaunch → SteamVR over Link** (OculusKiller registry — no Meta process killing): auto SteamVR on Link — tray, Quest Link, Service & Startup, **Ctrl+Num 0**, voice (“dash to steam v r”); optional **restart OVRService when SteamVR exits** (return to Quest Home)
- **PreventDashLaunch** + **CoreChannel** (`LIVE` / `PublicTest` / `NO_UPDATES`)
- **SteamVR Home** (`steamtours`) on demand — Service & Startup / tray / hotkey / voice
(Meta’s old Oculus Home / Homeless is gone — not coming back)
**Game settings (OculusDebugToolCLI)**
- Super Sampling, ASW (Auto / Off / 45 / 30 / 18), FOV, Adaptive GPU, mip flags, FOV stencil, Visual HUD
- Tray **Cycle Perf HUD**; optional close overlays on Link connect
- Custom extra CLI / ADB lines on global + personal profiles
**Profiles**
- Personal per-process profiles (Steam / Meta library picker with cover art, or custom)
- Auto-apply on launch → restore **global** on exit (including Link + OpenXR)
- **Launch** from library / profile (`steam://run/{appId}`)
- Profile **ignore list** + **save last-good** mid-session
- Built-in global presets + PCVR game presets (MSFS 2024, Beat Saber, HL:Alyx, DCS, iRacing, …)
- `%AppData%\MetaQuestTrayTool\profiles.json` + Advanced settings backup
**Quest Link / Air Link**
- Bitrate, encode width, HEVC, sliced encoding, sharpening, distortion, DBR / max / offset, Mobile ASW
- Presets on the Quest Link page; per-profile Link overrides (inherit = keep global)
- ODT registry reference: `docs/ODT-REGISTRY.md`
**HotKeys + voice**
- Defaults **Ctrl+Numpad 0–9** (ASW, SS cycle, apply global, restart OVRService, Perf HUD, Meta Link, Dash→SteamVR)
- Assign **Open Debug Tool** / **Open SteamVR Home** in Configure
- Voice: Windows speech — push-to-talk (**Ctrl+Shift+V** default) or always-on; mic picker; min confidence; custom phrases
- Full list: `docs/VOICE-AND-HOTKEYS.md`
**OpenXR / audio / power**
- Switch ActiveRuntime Meta vs SteamVR (global + per-profile)
- Steam Link assist (force SteamVR OpenXR while Steam Link / SteamVR is active, restore after)
- Under Steam Link / VD, Meta Link registry + ODT are gated; ADB / OpenXR / power / audio still apply
- Audio auto-switch when Link audio is active (doesn’t steal speakers just because Meta virtual audio is installed)
- Separate **communications** playback/recording pickers
- Power plan switch, USB selective suspend, restart `OVRService` after sleep
**Headset ADB**
- Bundled Google platform-tools
- CPU/GPU, texture size, refresh, FFR, chroma, capture; paste / proximity / guardian helpers
- Auto-apply on connect (resets on Quest reboot)
- **Wireless ADB**: host, connect port, **Pair** (pairing port + code), Connect / Disconnect, Enable tcpip, auto-reconnect
- Trusted VR headset only — phones / tablets / emulators ignored
- Battery / charge / Wi‑Fi via ADB
**Updates / tools**
- In-app updates from GitHub `v*` (on start, schedule, or Check now); ADB stopped before Setup
- **VR Tools** page + tray: curated third-party links
---
### What does **not** work yet / known limits
**Out of scope / not planned**
- Authenticode / code-signed Setup.exe (SmartScreen may warn until budget allows)
- Permanent AirLink (Meta-side)
- Full Dash Manager–style dash customizer / permanently replacing `OculusDash.exe`
- Reviving Oculus Home / Homeless
- macOS / Linux; hotkey profiles per game (global only)
**Runtime caveats (Meta / Windows)**
- Newer Meta runtimes sometimes **reject** `server:` ASW CLI commands — the log will say so
- Pixel density / SS often needs a **new VR session** to stick
- Link registry changes usually need a **Link reconnect** or `OVRService` restart
- ADB `debug.oculus.*` props **reset on Quest reboot** — leave apply-on-connect on
- Elevated tray cannot be clicked from SteamVR — use HotKeys / voice / auto
- Wireless ADB ≠ Air Link
- Windows-only
---
### Possible later
- Authenticode signing for Setup.exe (when budget allows)
- Optional dedicated elevated helper process (tray can already start elevated via scheduled task)
- More built-in presets as people request process names
Feedback and bug reports welcome — especially “profile didn’t apply for game X (process name: …)” or audio / SteamVR session edge cases.
---
### Requirements
- Windows 10 / 11 (64-bit)
- Meta Quest PC software (for Link / Debug Tool CLI) and/or SteamVR (for Steam OpenXR)
- Quest Developer Mode + USB debugging (or Wireless ADB Pair) for headset ADB features — ADB is bundled
---
### How to get it
**Installer (recommended):**
MetaQuestTrayTool/releases/latest
Run `MetaQuestTrayTool-Setup-*.exe` — Program Files, Start Menu, Uninstall. Self-contained (includes .NET 8). Settings under `%AppData%\MetaQuestTrayTool\` survive uninstall.
**From source:** open `MetaQuestTrayTool.sln` → F5, or `dotnet build` / `.\scripts\build-installer.ps1`.
---
### Credits again
- **ApollyonVR** — Oculus Tray Tool (the inspiration)
- Meta / Oculus Debug Tool CLI & Link stack
- SideQuest-style ADB property ideas for standalone Quest tweaks
- Community PCVR presets will grow from feedback
Not affiliated with Meta, ApollyonVR, Valve, Samsung, HTC, or Pico.
Thanks for reading — happy to take feature requests and “does this work on Quest 3S / Steam Link?” reports.
