OhmLauncher is a native Android home-screen launcher inspired by Omarchy, with synchronized themes, TTFX backgrounds, widgets, a Quake terminal, configurable edge boxes, and direct integration with Omarchy Linux.
Watch OhmLauncher videos on X.
- Google Play edition: the store build is being prepared with authenticated QR pairing and user-approved Omarchy Link features. Its listing URL will be added here after publication.
- Full GitHub edition: use the release APK below for the complete integration, including advanced local administration and remote-control capabilities that are not distributed through Google Play.
- Download the latest full release APK
- View release notes and previous versions
Install or update the downloaded APK with ADB:
adb install -r OhmLauncher-0.0.6-full.apkInstall Omarchy Link on Omarchy Linux, then restart the shell:
git clone https://github.com/avillagran/omarchy-link.git \
~/.config/omarchy/plugins/cl.villagranquiroz.omarchy-link
omarchy-restart-shellUpdate an existing Omarchy Link installation:
git -C ~/.config/omarchy/plugins/cl.villagranquiroz.omarchy-link pull --ff-only
omarchy-restart-shellAfter installation, enable Omarchy Link in Omarchy's plugin manager, add its widget to the bar, and scan its QR code from the phone.
- Android package:
cl.villagranquiroz.ohm_launcher - Minimum Android version: Android 7.0 / API 24
- Compile and target SDK: 36
- UI: native Android Views and Canvas
- Native terminal backend: Kotlin + JNI PTY
- TTFX backend: the real Rust TTFX binaries, using framed
--parity-dump --pace-dumpoutput
- Android HOME and LAUNCHER activity.
- Fast, pre-indexed application search by label and package name.
- Favorites and edge boxes with persistent JSON configuration.
- Favorite applications can be reordered directly inside the Fav Apps menu.
- Swipe up from the lower half opens the same Fav Apps menu as the bar button.
- Multiple desktops with animated horizontal transitions.
- Direct widget editing with drag, four-corner resize handles, and grid-aware persistence.
- Android
AppWidgetHostintegration for real system widgets. - Unified Omarchy menu with searchable nested sections and native application icons.
- Gesture arbitration between desktops, app drawer, and Quake terminal.
- Real TTFX effects rendered through the bundled Rust binaries.
- Official Omarchy 81×19 wordmark and five-band final gradient.
- Live effect, text, size, resolution, speed, position, audio intensity, and reactivity controls.
- Full-screen live editing plus an embedded preview using the same runtime as the desktop.
- Compact floating TTFX editor for cycling effects and adjusting size and X/Y without opening settings, with per-desktop visibility control.
- Changes to X/Y and audio parameters update without restarting the process; engine-input changes are restarted and coalesced safely.
- Audio-reactive coloring through Android's audio spectrum APIs.
- Lossless parsing of the public widget configuration.
- Native clock, particle/hourglass clock, text, battery, app grid, container, tiling, plugin, runtime, and Android system widgets.
- The particle clock keeps stable per-character particle pools, so only changed digits reorganize.
- Omarchy plugin discovery, validation, enable/disable, deletion, installation, and desktop insertion.
- QML tokenizer, parser, expression runtime, render model, and Android Views renderer for the supported Omarchy subset.
- Recursive installation and validation of local QML and JavaScript dependencies.
- Invalid or incomplete plugins remain visible with diagnostics instead of silently rendering an empty widget.
- Persistent native PTY shell session.
- Ctrl, Alt, Esc, Tab, and arrow controls.
- Keyboard-aware panel sizing using Android window insets.
- Swipe-up dismissal without accidentally opening the app drawer.
- Local HTTP and WebSocket API for health, commands, widgets, terminal control, clipboard, files, input, themes, and screen sharing.
omarchy://deep links._ohm._tcpmDNS advertisement and discovery.- BLE discovery fallback.
- Clipboard and theme synchronization.
- MediaProjection screen capture.
- Canonical Omarchy theme palette support, including live application to launcher chrome, TTFX, widgets, and allowed Android system-bar appearance.
- Companion desktop plugin under
omarchy-link/.
The direct edition also connects to Flux desktops with mutual TLS and persisted certificate pins. Its Omarchy menu offers explicit text, file and battery actions, desktop media, phone screen mirroring, and negotiated theme, original wallpaper and touchpad controls. Theme selection applies its background on both devices. The Background menu shows the active album’s cards followed by Custom, which opens the file picker. Theme/wallpaper selection and touchpad approval require the desktop Ohm extensions; stock Flux capabilities are negotiated separately. Flux is available while the launcher Activity runs and is excluded from the Play edition. See Flux interoperability and validation.
The Google Play and full GitHub editions share the launcher experience, bundled
themes, and authenticated Omarchy pairing. Features that require broad storage,
continuous background access, Accessibility remote control, or developer
administration remain exclusive to the full GitHub edition. See
docs/play-omarchy-link-plan.md for the exact
distribution boundary.
OhmLauncher uses this public data root:
/sdcard/OhmLauncher/
Supported files and directories include:
widgets_config.json
settings.json
favorites.json
runtime_widgets.json
plugins/
plugins.disabled/
Unknown JSON fields are preserved when configuration is edited.
app/src/main/kotlin/cl/villagranquiroz/ohm_launcher/
MainActivity.kt Launcher lifecycle and Android integrations
NativeLauncherView.kt Desktops, widgets, bars, drawer, gestures, and menus
NativeTtfxView.kt Framed TTFX process and Canvas renderer
TtfxSettingsDialog.kt Full live TTFX editor and preview
TtfxMiniControlsView.kt Compact on-desktop TTFX editor
QuakeTerminalView.kt Terminal UI and persistent session
NativePtySession.kt JNI PTY wrapper
LocalApiServer.kt Local REST and WebSocket server
PluginRepository.kt Plugin discovery, validation, and lifecycle
qml/ QML parser, runtime, model, and renderer
app/src/main/cpp/
pty.cpp Native PTY implementation
app/src/test/ JVM unit tests
app/src/androidTest/ Android instrumentation tests
omarchy-link/ Omarchy desktop companion plugin
docs/ Project documentation
Requirements:
- JDK 17
- Android SDK 36
- Android NDK
28.2.13676358 - CMake 3.22.1
Build and run unit tests:
./gradlew testDebugUnitTest assembleDebugThe debug APK is generated at:
app/build/outputs/apk/debug/app-debug.apk
Install it on a connected Android device:
adb install -r app/build/outputs/apk/debug/app-debug.apkSet OhmLauncher as the HOME activity during development:
adb shell cmd package set-home-activity \
cl.villagranquiroz.ohm_launcher/.MainActivity
adb shell input keyevent HOMERun the JVM suite:
./gradlew testDebugUnitTestBuild the APK:
./gradlew assembleDebugRun connected instrumentation tests when an emulator or device is available:
./gradlew connectedDebugAndroidTestOhmLauncher has been exercised on both an Android emulator and a physical Xiaomi device. Features that affect touch routing, AppWidgets, the soft keyboard, TTFX rendering, and launcher behavior should still be validated on a real device before release.
The desktop-side companion is maintained separately at:
github.com/avillagran/omarchy-link
The copy under omarchy-link/ documents and implements the desktop side of discovery, linking, theme synchronization, clipboard exchange, and remote launcher operations. See Install Omarchy Link on Omarchy for installation and update commands.
No license has been declared for the native rewrite yet. Add the intended license before publishing binary releases or accepting external contributions.