Files
QuestAppLauncher/README.md
oxmc7769 1aeebe6c9c
Some checks failed
Build / Build launcher (push) Has been cancelled
Remove remaining .txt
2026-03-18 09:36:36 -07:00

3.5 KiB
Raw Permalink Blame History

Quest App Launcher

Build

A VR home-screen replacement for Meta Quest 2, built in Unity by oxmc for Hoover High School. Replaces the default Quest shell with a fully configurable app grid — custom icons, renamed apps, user-defined tabs, and automatic asset updates from any HTTP or GitHub source.

Features

  • Scrollable grid of all installed apps, configurable rows × columns
  • Auto-categorized tabs (Quest / 2D) and user-defined custom tabs
  • App name overrides and custom icons via JSON or zip icon packs
  • Asset auto-update from GitHub releases or any plain HTTP endpoint — not just one source, any number of repos can be configured
  • Sort by alphabetical or most recently used
  • Configurable background skybox
  • Managed policy support for IT/MDM deployments (hidden apps, name overrides, wallpaper, disable settings)
  • Memory-efficient lazy icon loading — textures are loaded/unloaded based on scroll position

Requirements

  • Meta Quest 2
  • Unity (see ProjectSettings/ProjectVersion.txt for version)
  • Meta XR SDK (included via Package Manager)

Building

Builds are handled entirely by GitHub Actions — there is no local build command.

  • build.yml — runs tests (on master), builds the Android APK, uploads to GitHub Releases as HooverHighQuestAppLauncher.apk
  • activation.yml — manual trigger to request a Unity license activation file

Source Structure

Path Description
Assets/Scenes/QuestAppLauncher.unity Main scene
Assets/Plugins/Android/AppInfo.java Android plugin: enumerates installed apps, extracts icons, reads usage stats via JNI
Assets/Scripts/ C# scripts: grid layout, app processing, settings, downloads
Assets/OVRInputSelection/ Controller ray input and pointer visualization
.github/workflows/ CI build and license activation workflows

Configuration

Settings are stored in config.json in the app's persistent data path on-device. The file is created with defaults on first run and can be pushed via adb:

adb push config.json /sdcard/Android/data/dev.oxmc.QuestAppLauncher/files/

Key settings:

  • Grid size — rows × columns (110 each)
  • Sort modeaz (alphabetical) or mostRecent
  • Show 2D apps — toggle non-VR apps on or off
  • Auto category — places Quest / 2D apps into auto tabs; position: top, left, right, or off
  • Custom category — user-defined tabs from appnames.json; same position options
  • Background — path to a skybox image, or "default"
  • Auto update — checks configured repos for new icon packs and app name files on startup
  • Download repos — list of asset sources; supports GitHub releases (type: "github") and any plain HTTP manifest endpoint (type: "http") — multiple sources can be combined

Custom app names and icons

Place appnames.json (or appnames*.json) in the persistent data path to rename apps and assign them to tabs. Place iconpack*.zip files (containing <packageName>.jpg entries) or individual <packageName>.jpg files to override icons.

See docs.md for the full format reference, all config fields, managed policy details, and useful adb commands.

Credits

  • tverona1 — original creator
  • noxx — original app icon