Open-source project
sabamdarif/termux-desktop avatar
sabamdarif/termux-desktop

Termux Desktop: A Scripted Path to a Full Linux GUI on Android

Install a full Linux desktop environment on your Android device with Termux X11 ( VNC optional) and also enable hardware acceleration.

2,255 stars956 forksShellGPL-3.0

At a glance

What is it?
Termux Desktop installs Xfce, LXQt, or other desktops on Android via Termux:X11 or VNC, with hardware acceleration. It is a shell script that automates a complex setup, but it has sharp edges around Android versions and package managers.
Who is it for?
Adopt Termux Desktop if you have an Android 8.0+ device with at least 3GB RAM and you are comfortable with Termux from GitHub or F-Droid, not Google Play. Do not use it if you need a stable, well-tested package manager or if you cannot disable the Phantom Process Killer on Android 12+.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 19 days ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Termux Desktop Actually Solves

Running a full Linux desktop on Android normally means fighting Termux's package limitations, X server quirks, and driver issues. Termux Desktop is a shell script that automates the installation of a desktop environment, a display server, and hardware acceleration drivers. The intended user is someone who wants a graphical Linux environment on a phone or tablet without rooting or flashing a custom ROM. The README targets Android 8.0 or newer, at least 3GB of RAM, and 3-4GB of storage. It also insists on Termux from GitHub or F-Droid, because the Google Play version has API limitations that break the setup. The script's main value is that it bundles a sequence of steps that would otherwise require manual research and trial and error.

How the Installation Flow Works

The installation starts with a one-liner: `bash <(curl -Lf https://raw.githubusercontent.com/sabamdarif/termux-desktop/main/setup-termux-desktop)`. There is also a shortened URL via kutt.to. The script asks for choices during setup, including which desktop environment or window manager to install. Supported options include Xfce, LXQt, MATE, GNOME, Cinnamon, KDE Plasma, and window managers like Openbox, i3, dwm, bspwm, Awesome, Fluxbox, IceWM, and WMaker. The installer also sets up package management: APT is the default and recommended, while PACMAN is available but described as 'may be buggy, not well tested'. A 'lite' install mode exists via `export LITE=true` or `export LITE=1` before running the installer, which skips optional packages. The script also installs an app store and supports containerized distros through proot or chroot. The flow is interactive, so you cannot fully script it without answering prompts.

Starting and Stopping the GUI

After installation, you control the GUI with a set of commands. `tx11start` starts a Termux:X11 session, with options like `--xstartup` to launch a specific session (for example, `tx11start --xstartup cinnamon-session`), `--nogpu` to disable GPU acceleration, `--legacy` for legacy drawing, and `--nodbus` to skip dbus-launch. You can combine flags, such as `tx11start --nogpu --legacy`. The `--debug` flag shows logs. `tx11stop` stops the session, with `-f` for a force stop. For VNC, `vncstart` and `vncstop` exist, with `--nogpu` as the only option for `vncstart`. There is also a `gui` command that takes `--start` with either `vnc` or `tx11` as arguments. The README shows that the script generates these commands as part of the setup, so they are not generic Termux tools. This command structure suggests a deliberate design to hide the underlying X11 and VNC configuration details.

Hardware Acceleration: The Central Promise

The README claims the script installs 'all the drivers' to get hardware acceleration working under Termux. This is the most ambitious part of the project. The recent releases include Mesa Freedreno 26.3.0-devel, Turnip 26.2.0, and a Vulkan wrapper for Android, which indicate the project tracks bleeding-edge GPU drivers. Freedreno targets Qualcomm Adreno GPUs, and Turnip is the Vulkan driver for the same. That means hardware acceleration is not universal: it depends on your device's GPU. The script also provides a `--nogpu` flag for both `tx11start` and `vncstart`, which suggests that GPU acceleration is not always reliable. If the driver fails, you can fall back to software rendering, but that likely degrades performance. The documentation does not specify which devices are supported, so you must test on your own hardware. This is a genuine limitation: the project cannot guarantee acceleration on every Android device.

Android 12+ and the Phantom Process Killer

The README contains a prominent warning for Android 12+ users: you must disable the Phantom Process Killer before installation. This is a known Android restriction that kills background processes, which would interfere with a desktop session. The script does not handle this automatically; you have to follow a separate guide in the docs. This is a real friction point. For a project that aims to simplify setup, requiring users to modify system settings before running the installer is a hurdle. It also means the script is not a one-shot solution on modern Android versions. The warning is in a colored callout, so it is hard to miss, but it still adds a manual step that could trip up less technical users.

Package Management and Containers: Flexibility with Caveats

Termux Desktop offers two package managers: APT and PACMAN. APT is Termux's default and recommended, while PACMAN is described as 'may be buggy, not well tested'. That is a direct admission of instability. If you choose PACMAN, you are signing up for potential breakage. The script also supports containerized distros via proot or chroot, which lets you install applications that Termux's native repositories do not have. The README links to a separate doc for that. Containers add complexity: they consume more storage and CPU, and performance may suffer. The project's approach is to give you options, but not all options are equal. For a production or daily-driver setup, APT is the safer bet, and the README's caution about PACMAN is a clear signal.

A Real Alternative: Manual Termux Setup

The obvious alternative is to set up a desktop environment manually in Termux. That means installing Termux:X11, a desktop package like Xfce, and configuring the display server yourself. The difference is control: you choose each component, and you understand the failure points. Manual setup is more time-consuming and error-prone, but it avoids the script's assumptions. For example, you can pick a specific Mesa driver version that works with your GPU, rather than relying on the script's latest release. The script also bundles an app store and container support, which you may not want. If you only need a minimal window manager, a manual install might be lighter. The trade-off is that you lose the convenience of a tested script, but you gain the ability to debug issues without digging through someone else's code.

Maintenance and Upgrade Costs

The project is under active development, with recent releases dated in 2026, so it is not abandoned. That means updates are frequent, but they also bring breaking changes. The README recommends fresh installations for best results, which implies that upgrading an existing setup may not be smooth. You will likely need to rerun the installer or manually adjust configurations after Termux updates. The license is GPL-3.0, so you can inspect and modify the script, but you must share any changes if you distribute them. The maintenance cost is moderate: you need to track the project's releases and test new versions on your device. The script's reliance on bleeding-edge drivers like Mesa Freedreno devel means you may encounter instability. For a non-technical user, this could be a recurring headache.

Editorial conclusion

Adopt Termux Desktop if you have an Android 8.0+ device with at least 3GB RAM and you are comfortable with Termux from GitHub or F-Droid, not Google Play. Do not use it if you need a stable, well-tested package manager or if you cannot disable the Phantom Process Killer on Android 12+. Before installing, verify your device's GPU support for Mesa drivers, check the latest README for changes, and test the one-liner installer on a fresh Termux setup. The script is a practical shortcut for a notoriously fiddly process, but its reliance on a rolling Termux ecosystem means you should budget time for debugging.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Community notes

Community notes