Plenty of devices can serve as desktop replacements when configured the right way. Gaming handhelds are a great example of this, with the Steam Deck being capable of serving as a server or a desktop with ease. But what about your phone? You can already install multiple distros with Termux, but Local Desktop is a full-on Arch Linux installation with a desktop GUI.

It can be a bit buggy at times, and there are limitations on what you can run, but it does work. I was able to launch VS Code and Firefox on my phone, and all I needed to do was hook up a keyboard to use it like a desktop. You can install alternative desktop environments, too, and you don't need root access to use it. You launch Local Desktop, and approximately ten minutes later, you now have a Linux desktop ready to go.

Getting it running took some persistence

Third time lucky

My installation journey wasn't exactly smooth. I had to reinstall Local Desktop twice before I got everything working properly. The first attempt broke when I left the app in the background during the installation process, so I would suggest you just leave it running rather than interrupting it. The second reinstall became necessary when pacman just stopped letting me install applications entirely. It first threw an error about a locked database file, but when I removed it, it just hung trying to install applications. The third time, though, was the charm.

Once I finally had a stable base, I installed the yay package manager to make grabbing AUR packages easier. From there, I pulled down GIMP and VS Code to test how well this setup handles real desktop applications. Things were still finicky at this point, though. GIMP flat-out doesn't work, for example, and it refuses to launch no matter what I tried.

VS Code, on the other hand, does run, but only with some caveats. You need to launch it with the --no-sandbox and --user-data-dir flags, and I only got it working when running as the root user. I created a secondary user account hoping to run things more securely, which the Local Desktop documentation recommends, but VS Code wouldn't cooperate there. Speaking of user accounts, editing the sudoers file to give my new user permissions was an adventure in itself. Neither vim nor nano work in this environment, so I had to resort to using tee with echo to append myself to the sudoers file. It's not elegant, but it gets the job done.

Some parts work better than others, though. Firefox works great for browsing the web, and I installed Alacritty as my terminal emulator of choice for installing applications. Once you get past the installation issues, using Local Desktop is surprisingly functional. The default XFCE desktop environment feels responsive enough for basic tasks, and you can navigate around with touch controls and an on-screen keyboard if you don't have a mouse connected. That said, you'll want to hook up a keyboard at minimum, as trying to type anything meaningful on a touch keyboard is frustrating to say the least.

I spent most of my time testing this setup with a wired connected, and that's where it starts to feel like an actual usable system. You can resize windows, switch between applications, and generally do the things you'd expect from a Linux desktop. The experience isn't buttery smooth, but it's far from unusable. Firefox handles multiple tabs just fine, and file management works mostly as you'd expect, too. The default file manager lets you navigate the filesystem, and you can access your phone's storage if you set up the appropriate permissions, though I couldn't browse networked storage.

Let's be honest about what Local Desktop is good for, though. If you're expecting to run heavy applications, compile large projects, or do anything particularly demanding, you're going to have a bad time. Your phone, no matter how powerful, isn't designed for sustained desktop workloads, and you'll feel that limitation pretty quickly if you push things too hard. Want to write some code in VS Code while you're away from your main machine? Completely possible, so long as you're okay with running it as root. Need a portable Linux environment for testing or scripts? It'll work as well. And honestly, it's the novelty of it that's the most entertaining part.

How does it even work?

Arch Linux with proot

Running a full Linux desktop on an Android phone without root access sounds like it shouldn't be possible, but Local Desktop pulls it off through some clever engineering. The setup involves several layers working together to create something that feels like a native Linux experience.

At the base level, an Arch Linux ARM64 filesystem gets installed inside the app's internal storage. This is a complete Linux filesystem, just like you'd find on any Arch installation, containing all the packages and system files the distribution needs to function.

Proot handles the next piece of the puzzle. It mounts this filesystem and provides a chroot-like environment, letting applications inside believe they're running on a normal Linux system with root access. Since proot operates entirely in userspace, it doesn't require any special permissions from Android, as it intercepts system calls and translates them on the fly. That's how you can run all of this without rooting your phone.

The display side is where things get interesting. Rather than streaming the desktop through VNC like many similar solutions, Local Desktop includes a minimal Wayland compositor built directly into the app using the Android NDK. This compositor runs natively on Android and provides the display server that the Linux environment needs. Inside the chroot, rootful Xwayland launches alongside the desktop environment, handling X11 compatibility and rendering everything back to an Android native activity.

This architecture is more sophisticated than a simple VNC setup and explains why the experience feels a whole lot more responsive than other implementations would. You're not dealing with the latency of streaming a remote display, as the compositor is running locally and communicating directly with Android's graphics stack. But that also explains some of the limitations. Applications that expect specific kernel features or direct hardware access won't work since you're still running through proot's translation layer, and anything that conflicts with how Xwayland or the Wayland compositor operates might behave unexpectedly.

Is it worth it?

For most people, probably not

Despite everything, I keep coming back to how genuinely impressive Local Desktop is for what it achieves. You're running a full Arch Linux desktop on a phone without needing to root your device, flash custom firmware, or jump through any major hoops. The fact that I can open VS Code, browse the web with Firefox, and use a proper terminal emulator on my phone all while a YouTube video plays from the host operating system is something I wouldn't have expected to work this well even a few years ago.

That said, this isn't going to replace your laptop anytime soon. The installation process requires patience, not every application will work, and the ones that do might need workarounds. It's also worth noting that performance will vary depending on your phone's hardware, as I tested this on the Oppo Find N5 with the Snapdragon 8 Elite, and even then, installing applications was considerably slower than on most x86-based Linux installations that I've used.

If you're someone who enjoys tinkering with Linux, wants a portable development environment for quick edits on the go, or just thinks the idea of running a desktop on your phone is cool, Local Desktop is absolutely worth checking out. Just don't go in expecting a polished, everything-just-works experience. Treat it exactly like it is: an experimental project that lets you do something interesting (if gimmicky) with hardware you already own.