Skip to main content

Free and open source

Run a real Linux desktop on your Android phone

Local Desktop turns an Android phone or tablet into a Linux computer. It installs Arch Linux ARM with the Xfce desktop and shows it on your screen through its own Wayland compositor. You get desktop Firefox, VS Code, GIMP, LibreOffice and the whole Arch package collection. It needs no root, no extra apps and no computer to set up.

Why Local Desktop

Phones and tablets now have more memory and faster processors than many laptops from a few years ago, and more of them connect to keyboards and monitors. What they lack is desktop software. Local Desktop fills that gap with an ordinary Linux distribution, so the tools you already know work the same way they do on a PC.

No root required

Local Desktop runs Linux inside the app's own storage with proot, so your phone keeps its warranty, its banking apps and its security updates. Nothing on the Android side is modified.

One app, one tap

There is no second app to install, no VNC viewer and no X server to configure. The first launch downloads Arch Linux ARM, installs the Xfce desktop and opens it, all from a single APK.

Native Wayland compositor

The desktop is drawn by a Wayland compositor written in Rust with Smithay and running inside the Android activity. Windows reach the screen without a network protocol in between, which keeps input latency low.

GPU acceleration

On Snapdragon devices, Vulkan runs on Mesa's Turnip driver and OpenGL runs on Zink, so Firefox, WebGL, games and 3D tools use the real GPU instead of software rendering.

External display and trackpad

Plug the phone into a monitor or TV and the Linux desktop moves to the big screen while the phone becomes a trackpad, much like a desktop mode, on any Android device.

Sound, keyboards and mice

PipeWire plays audio through Android's AAudio, physical keyboards and mice work with the usual shortcuts, and the Android keyboard can type straight into Linux apps.

How it works

Android already runs on the Linux kernel, but it has a different filesystem, different libraries and a different graphics stack. Local Desktop adds the missing pieces in four steps.

  1. Arch Linux ARM in app storage. On first launch the app extracts an Arch Linux ARM64 filesystem into its private data folder. It is a regular Arch system: pacman, the official repositories and the AUR all work.
  2. proot instead of chroot. A real chroot needs root. proot gives the same view of the filesystem by intercepting system calls with ptrace, so Linux programs see /usr, /etc and /home as if they ran on a normal PC, while Android's own Linux kernel does the actual work.
  3. A compositor in the Android activity. Linux desktops need a display server. Local Desktop ships its own Wayland compositor inside the Android app, and Xfce (or KDE, or any other Wayland desktop) connects to it as a normal Wayland client.
  4. Android input and audio bridged in. Touch, mouse and keyboard events are translated into Wayland input, and a small PipeWire sink sends Linux audio to AAudio, so the desktop behaves like an ordinary Android app.

The app itself is written in Rust and runs as native code. The developer manual covers each part in detail, and the code is on GitHub.

What you can do with it

  • Write and run code with Visual Studio Code, Neovim, Python, Node.js, Rust or Go, directly on a tablet.
  • Use full desktop Firefox or Chromium with extensions and developer tools, instead of a mobile browser.
  • Edit images in GIMP, write documents in LibreOffice, or manage files with a real desktop file manager.
  • Run local web servers, databases and command line tools to test projects without a laptop.
  • Turn an old phone and a monitor into a small Linux computer for learning or light work.

Installing software works like on any Arch system. pacman -S firefox installs Firefox, and an AUR helper such as yay adds proprietary apps like Google Chrome or Visual Studio Code. The app compatibility pages list tested apps and the tweaks they need.

Guides

Frequently asked questions

Is Local Desktop free?

Yes. The app is free, and its source code is published on GitHub under an open-source license. You can build the APK yourself.

Which devices are supported?

Any 64-bit ARM (arm64) Android device running Android 7.0 or newer. The Linux system and its apps need a few gigabytes of free storage. GPU acceleration currently needs a Qualcomm Adreno 6xx or newer GPU.

Is it a virtual machine?

No. There is no emulator and no second kernel. Linux programs run as normal Android processes on the phone's own kernel, which is why they start quickly and use little memory compared with a virtual machine.

How is it different from Termux with a VNC or X11 viewer?

Those setups combine several apps and send the screen through VNC or X11. Local Desktop is a single app with a built-in Wayland compositor, so setup is one tap and the desktop draws directly to the screen.

Can it break my phone?

No. Everything lives inside the app's private storage and runs with normal app permissions. Uninstalling the app removes the Linux system completely.

Why does the app close in the background on Android 12 and newer?

Android's phantom process killer stops apps that start many child processes. The Getting Started guide explains how to turn it off on Samsung and other devices.

Follow the project

Local Desktop is built in the open by a small team of volunteers. Release notes, deep dives and community milestones are published in the news. Bug reports and feature requests go to GitHub issues, and other questions can be sent through the contact page.

Want a break? Bear War is a small real-time strategy game made by the same team. It runs in the browser and works offline.