Run a full XFCE desktop environment on your phone using Termux — hardware-accelerated, browser-accessible, and Windows Remote Desktop ready. Program, learn Linux, and manage servers from anywhere.
Watch the full setup and walkthrough of the Termux Desktop in action — from installation to a working XFCE session on Android.
Most Android dev apps feel limited. This setup builds a full desktop workflow that feels like a real Linux PC — running entirely on your phone.
Practice real Linux commands, filesystem navigation, shell scripting, and system administration in a genuine environment.
Termux:X11 uses your phone's GPU directly for smooth, responsive graphics — no VNC lag, no software rendering overhead.
Run Git, Neovim, Python, Node.js, SSH, and any Termux package. A proper terminal-first development workflow.
noVNC streams your desktop to any browser on your network. Access from a laptop, tablet, or any device without extra apps.
Connect from Windows Remote Desktop over USB tethering using xRDP — ideal for working on a PC with phone as the server.
Give old Android phones a second life as development machines. XFCE is lightweight enough for devices with limited RAM.
Two steps: install the required apps, then run one setup script. That's it.
Download from F-Droid or GitHub — not the Play Store (those versions are outdated).
Open Termux and paste these commands. setup.sh installs everything automatically.
# Update packages and install wget
pkg update && pkg upgrade
pkg install wget
# Download setup script
wget https://raw.githubusercontent.com/Tanmay-1122/Termux-desktop/main/setup.sh
# Make it executable and run
chmod +x setup.sh
./setup.sh
Everything is installed automatically. Failed packages are skipped gracefully — nothing breaks.
| Package | Required For |
|---|---|
termux-x11-nightly | Mode A — hardware display |
pulseaudio | Audio in all modes |
dbus | Desktop session management |
xfce4 | The desktop environment |
tigervnc | Modes B & C — VNC server |
websockify | Mode B — browser bridge |
xrdp | Mode C — Windows Remote Desktop |
wget / unzip | Downloading noVNC and files |
Launch your desktop with a single tap — no need to open Termux every time.
The launcher detects your network and lets you choose the best display mode for the situation.
╔══════════════════════════════════════════════════╗ ║ 🖥️ Termux Desktop Launcher ║ ╠══════════════════════════════════════════════════╣ ║ Network Status: ║ ║ USB : Not detected ║ ║ WiFi : 192.168.1.5 ║ ╠══════════════════════════════════════════════════╣ ║ Select Display Mode: ║ ║ ║ ║ A) Termux:X11 — Hardware-accelerated ⚡ ║ ║ B) noVNC — Browser access (WiFi) 🌐 ║ ║ C) xRDP — Windows RDP via USB 🪟 ║ ║ ║ ╚══════════════════════════════════════════════════╝ Enter choice [A/B/C]: ▋
Hardware-accelerated display directly through the Termux:X11 app. Uses your phone's GPU for the smoothest experience.
Desktop streamed to any browser over WiFi. Access from a laptop, tablet, or any device on the same network.
http://<phone-ip>:6080/vnc.html
Remote Desktop Protocol over USB tethering. Connect from Windows PC using the built-in Remote Desktop app.
mstsc on Windows, enter the IP shown. Leave username & password blank.
After the one-time setup, launching your desktop is always this simple.
On older devices, disabling unused Bluetooth services frees up RAM and CPU cycles.
Printing services are rarely needed in a Termux desktop. Disabling them reduces memory usage.
Each browser tab uses significant RAM. Keep tabs minimal when running in noVNC mode.
Neovim is far lighter than heavy IDEs. Use it for coding — it's fast even on low-spec devices.
CLI tools use less memory than GUI equivalents. Use git, curl, ssh wherever possible.
Run htop to monitor CPU and RAM usage and kill processes that are eating resources.
# Monitor system resources
htop
A surprisingly capable Linux workstation in your pocket. More than enough for learning, coding, server management, and experimentation.
Termux-desktop/
├── setup.sh ← Run once — install everything + create widget
├── start-desktop.sh ← Run every time — launch the desktop
└── README.md ← Project documentation
setup.shInstalls all packages, downloads noVNC, creates the home-screen widget shortcut. Run this exactly once on first use.
start-desktop.shDetects your network, presents the mode selector, and launches XFCE in your chosen display mode. Run this every time you want to start.
Two scripts. Three display modes. One powerful Linux desktop — on your Android phone.