Noureddine RAMDI / DroidDesk: turning ARM64 Android phones into portable Linux desktops with Termux and Proot

Created Sat, 23 May 2026 20:41:14 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

orailnoor/DroidDesk

DroidDesk tackles a real pain point: turning your ARM64 Android phone into a portable, fully functional Linux desktop environment without rooting or heavy emulation overhead. Android phones are powerful, but their locked-down nature and lack of native Linux desktop support have long frustrated developers and enthusiasts wanting a pocket-sized Linux workstation.

what droiddesk does and how it works

At its core, DroidDesk is a shell-based setup toolkit that runs on Termux, the popular Linux userspace environment for Android. It uses Termux’s native userspace capabilities to run Linux apps directly on the Android kernel without emulation. This approach avoids the performance penalties usually associated with running a full Linux distro inside a container or chroot on Android.

DroidDesk’s architecture splits the environment into two complementary parts:

  • Native Termux+X11 environment: Termux provides a Linux userspace running natively on Android’s kernel. To display graphical Linux apps, DroidDesk installs Termux-X11, a GPU-accelerated X11 server that supports Turnip drivers for Qualcomm Adreno GPUs or Zink (a Mesa Gallium driver) as fallback. This allows Linux GUI apps like VS Code, Firefox, Blender, and LibreOffice to run with hardware acceleration.

  • Proot container fallback: To cover apps not available in the Termux User Repository (TUR), DroidDesk sets up a Proot container running standard Ubuntu/Debian/Kali root filesystems. Proot is a user-space implementation of chroot that doesn’t require root access. Apps installed inside this container appear automatically in the desktop menu thanks to an “App Bridge” that syncs Proot-installed apps with the native desktop launcher.

On top of this, DroidDesk optionally supports monitor output via USB-C display if your phone supports it, or via a Raspberry Pi Zero 2W acting as a USB-C to HDMI VNC bridge for phones lacking native video output. The Pi connects to the phone via USB tethering and opens a VNC viewer displaying the phone’s desktop on an external monitor.

This architecture cleverly balances performance and compatibility. Native Termux userspace ensures GPU-accelerated, efficient Linux desktop apps, while the Proot container broadens app availability without rooting or modifying the device.

the dual-environment architecture and its tradeoffs

What really distinguishes DroidDesk is this dual-environment approach that integrates native Termux apps with Proot container apps into a seamless desktop experience.

The native Termux environment runs Linux apps directly on Android’s kernel, giving better performance and GPU acceleration. However, the Termux User Repository (TUR) is more limited compared to full Debian or Ubuntu repositories, which means some apps you want might simply not be packaged.

Here the Proot container shines: it runs a full Linux root filesystem with access to the vast Debian/Ubuntu/Kali package repositories. The tradeoff is that apps in Proot run slower due to the user-space emulation layer and lack direct kernel access, but this is often acceptable for many productivity and development tools.

The magic is in the “App Bridge”: a script that automatically synchronizes the Proot container’s installed desktop apps with the Termux desktop environment menu. From the user perspective, apps installed inside Proot appear just like native Termux apps — no manual menu editing or launcher hacks needed.

Another notable technical strength is the use of Termux-X11 as the GPU-accelerated X server. It uses the Turnip driver for Qualcomm Adreno GPUs (common in many Android phones) and falls back to the Zink driver if needed. This setup gives hardware-accelerated OpenGL rendering to Linux GUI apps, which is rare on Android without root.

The optional VNC monitor output via Raspberry Pi Zero 2W is a clever workaround for devices lacking native USB-C display output. While this adds external hardware and some network complexity, it’s an elegant solution for turning phones into full desktop workstations with large screens.

The entire setup is scripted in shell, which keeps dependencies minimal and makes the install process transparent and modifiable, though it may sacrifice some robustness compared to compiled installers or native packages.

Overall, the architecture balances performance, compatibility, and ease of use in a way few other projects targeting Linux desktops on Android achieve.

quick start: installing droiddesk on your android phone

The installation is straightforward and well documented in the README. The main steps are:

  1. Install Termux from F-Droid (not the Play Store, which is outdated):
https://f-droid.org/en/packages/com.termux/
  1. Install Termux-X11 by downloading the latest APK from:
https://github.com/termux/termux-x11/releases/tag/nightly
  1. Run the setup script in Termux:
curl -sL https://raw.githubusercontent.com/orailnoor/DroidDesk/main/termux-linux-setup.sh -o setup.sh
bash setup.sh

This script will:

  • Update Termux packages
  • Add X11 and Termux User Repository
  • Install your choice of desktop environment (XFCE4, LXQt, MATE, or KDE)
  • Configure GPU acceleration (Turnip for Adreno, Zink fallback)
  • Install common tools like Firefox, Git, Python
  • Set up the Proot container with Ubuntu/Debian/Kali
  • Create the App Bridge to sync container apps with the desktop menu
  • Apply a modern dark theme
  • Optionally configure VNC for remote desktop
  1. Start the desktop session:
bash ~/start-x11.sh

Then open the Termux-X11 app on your phone to see the Linux desktop.

  1. Install additional apps inside Proot using apt, and they will automatically appear in your desktop menu thanks to the App Bridge.

For monitor output, if your phone supports USB-C to HDMI, just connect the adapter. Otherwise, set up the Raspberry Pi Zero 2W bridge as documented to get an external monitor display.

verdict: who should consider droiddesk?

DroidDesk is a solid choice if you want a portable Linux desktop on your ARM64 Android phone without rooting. Its dual-environment approach cleverly balances native GPU-accelerated apps with broad Linux app compatibility via Proot.

It’s especially relevant for developers, security professionals, and tech enthusiasts who want real Linux desktop apps like VS Code, Firefox, LibreOffice, and even Blender on a pocket device.

The tradeoffs: performance is best for native Termux apps; Proot apps run slower but are more compatible. Setup requires some Linux and Termux familiarity, and the shell-based installer means less polish than commercial tools.

Phones without native USB-C display output require extra hardware (Raspberry Pi Zero 2W) for full monitor support, which may limit portability.

Still, DroidDesk solves a real problem with a surprisingly clean, pragmatic architecture. It’s worth exploring if you want to push your Android phone beyond its usual limits into a genuine Linux workstation.


→ GitHub Repo: orailnoor/DroidDesk ⭐ 1,732 · Shell