SimonSchubert/omalauncher
Agentic Android launcher: build your own apps and widgets with AI agents, Omarchy themes, Arch Linux without root
Omalauncher – Android launcher that blends a custom UI with optional Linux apps
What it is
Omalauncher is an Android home‑screen replacement that mimics the visual style of the Omarchy desktop environment. It can also run a full Arch Linux ARM userland inside the phone using proot, so each Linux program appears as its own Android task (a card you can swipe away in the Recents view).
Core features
| Feature | What you get |
|---|---|
| Omarchy‑style themes | All 22 official Omarchy themes plus community‑made ones. Themes affect both the Android launcher UI and any Linux windows that are opened. |
| Widgets written in OWL | OWL is a tiny declarative language for defining home‑screen widgets. Widgets can be edited directly on the phone and are distributed through a small widget store. |
| Optional Arch Linux ARM | A pre‑packed Arch Linux ARM rootfs can be installed (or you can push your own). You get pacman, AUR access, a terminal, file manager, and optional GPU acceleration on Mali GPUs. |
| Coding‑agent bar | The bottom bar accepts text or voice, sends the prompt to an AI coding assistant (Claude Code, Codex, Copilot, etc.) and opens the response in a terminal window. |
| No accounts, ads or tracking | The app works entirely offline; only speech‑to‑text is performed by Android’s built‑in recogniser. |
| Touch‑friendly Linux windows | Tap = left‑click, long‑press = right‑click, drag = scroll. Apps that support touch (e.g., foot, GTK) work natively. |
| Keyboard shortcuts | Super+Enter opens a terminal, Super+Space/Super+A focuses the bar, Super+1..9 switches home pages, etc. |
How it works
- Proot sandbox – The Linux rootfs runs under
proot(a user‑space chroot) so no root privileges are needed. - Wayland compositor – Omalauncher itself acts as the compositor; each Linux window is rendered into its own Android activity, giving the familiar “card” UI in Recents.
- JNI bridge – Kotlin/Compose UI talks to native C++ code (the JNI layer) that handles the proot integration and GPU acceleration.
- OWL widget engine – Widgets are compiled by the
owlcommand‑line tool (written in Kotlin) and displayed by the launcher.
Getting started
- Install from Google Play (requires an arm64 device running Android 10+).
- The launcher works even without the Linux side – you still get themes and Android widgets.
- To add the Linux system, push the pre‑built
ArchLinuxARM‑aarch64‑latest.tar.gzto the app’s data folder (or let the app download it). - Use the bottom bar to launch apps or talk to a coding agent; the chosen agent is saved under
~/.config/omalauncher/agent.
Development & building
# fetch the pre‑built proot binary used by the app
./scripts/fetch-proto.sh
# build and install a debug version on a connected device
./gradlew :app:installDebug
# (optional) skip the 830 MiB Linux rootfs download by pushing it yourself
adb push ArchLinuxARM-aarch64-latest.tar.gz \
/sdcard/Android/data/dev.omalauncher/files/
- Unit tests live in
:owl:testand:app:testDebugUnitTest. - The
owllanguage compiler can be built with./gradlew :owl:owlJar. - Architecture and release notes are in
docs/ARCHITECTURE.mdanddocs/RELEASING.md.
Project layout
app/– Android app (Kotlin, Jetpack Compose, JNI bridge).owl/– OWL widget language implementation and CLI tool.art/– SVG assets for icons and themes.store/– Play Store listing assets.fastlane/– Automation for Play Store uploads.scripts/– Helpers for fetching proot, generating screenshots, etc.
License
The code and artwork are released under the MIT license. Third‑party components (proot, talloc, libandroid‑shmem, coding‑agent logos, Omarchy assets) have their own licenses as listed in THIRD_PARTY.md. The project is independent and not officially affiliated with Omarchy, Arch Linux, or the AI coding services it can launch.
Omalauncher is a niche but functional blend of a custom Android launcher and a portable Linux environment, aimed at power users who want a themed UI plus the ability to run desktop‑class Linux apps on their phone without rooting it.
Related
- Project
- Project
- Project
- Project