termux-desktop: the release feed is about GPU drivers, not about the installer
Install a full Linux desktop environment on your Android device with Termux X11 ( VNC optional) and also enable hardware acceleration.
At a glance
- What is it?
- A shell installer that puts a Linux desktop on an Android phone through a script it fetches and runs, with six desktop environments and eight window managers to choose from. The most recent release tags describe graphics driver builds from a subproject rather than any version of the installer, and the page hands out a shortened URL to run the same remote script by another route.
- Who is it for?
- termux-desktop is worth trying if you have an Android device to spare, you already run Termux from a source other than an app store, and you are willing to hand the install to a script you have read. Three things decide whether it will work for you.
- 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 received new commits within the last day.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- sabamdarif/termux-desktop2,367 ★ · +230
| Repository | 2026-08-02 | 2026-11-14 |
|---|---|---|
| sabamdarif/termux-desktop | 2.1k | 2.4k |
230 Stars in the last 104 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The install runs a remote script, and a shortened link is offered as the same thing
The recommended installation is one line, and it downloads and executes in the same breath:
bash <(curl -Lf https://raw.githubusercontent.com/sabamdarif/termux-desktop/main/setup-termux-desktop)The page then offers a second, shorter form of the same command through a link shortener, and credits the shortener as an open source project. The two are presented as equivalents, and they are not equivalent in the way that matters. The first resolves directly to a file in a repository at a named branch. The second resolves a shortened address first, which means the path between you and the script is one you did not write and cannot read from the command line. Neither form pins a version, so both execute whatever the branch currently holds. The page is otherwise candid, recommending a fresh installation for best results, which is another way of saying the script is not designed to be re-run over an existing system.
The three most recent release tags describe graphics drivers
The release feed is the most surprising thing in the repository. The three most recent tags are a Freedreno graphics driver build for a particular kernel driver generation, a Mesa build of that same driver stamped with a date, and a cryptography wrapper for the Vulkan driver on a particular Android version. None of them is a version of the installer, and none of them corresponds to a release of the desktop. The reason is visible in the tree: hardware acceleration is a subproject of this repository with its own directory, and it appears to be where the release automation is pointed. So a user checking whether a new version of the installer is available finds driver builds instead, and a user watching for graphics driver updates finds them in a project that is primarily an installer script. The practical consequence is that the release list tells you nothing about the script you are about to run.
One app store build is ruled out by name, with a reason attached
The requirements section opens with a note that is more useful than a version number. The project only works with the Termux builds obtained from GitHub or from the F-Droid catalogue, and the Termux build from Google Play does not work because of API limitations. That is a precise, checkable exclusion rather than a preference, and it tells you immediately that the first thing to do is check where your Termux came from. The rest of the same table is unusually concrete for a project of this kind: Android 8.0 or later, the latest build of Termux, the latest build of the separate X11 helper application, the latest build of the API application, three gigabytes of RAM or more, three to four gigabytes of storage, one and a half to two gigabytes of internet transfer, and a VNC viewer listed as optional with two suggested applications.
VNC is only available if you chose custom during setup
There are two ways to reach the desktop once it is installed, and the choice between them is made at install time rather than at run time. The default path is the X11 helper application, which draws into an Android window. The alternative is a remote framebuffer session viewed with a VNC client, and the feature list marks it optional and available only if you chose the custom path during setup. That is a design decision worth noticing, because the two paths have different performance characteristics and different failure modes, and a user who later decides they want the framebuffer route has to reinstall rather than reconfigure. It also means the choice is made by someone following an installer on a phone, before they have any experience of which path suits them.
Four session switches, and eight example combinations of them
The session starter takes four options and the page enumerates eight worked combinations, which is the clearest signal of where real-world support effort goes. One option starts a session of the user's choosing rather than the one that was installed, which lets you run a desktop you did not install. One disables graphics acceleration. One switches to a legacy drawing mode, which exists because the accelerated path is not reliable everywhere. One skips the desktop bus launcher, for setups where the bus is the thing failing. A fifth option prints logs for any combination, with a nested example showing how to get the log of one specific combination. Each combination is documented as a plain sentence, and the existence of a legacy drawing mode plus a bus-free mode plus a no-acceleration mode tells you that this is where phones differ from one another.
Fourteen desktops and window managers, with style guides for four
The supported list is a two-column table of desktop environments and standalone window managers. Six desktops are named: Xfce, LXQt, MATE, GNOME, Cinnamon and KDE Plasma. Eight window managers are named: Openbox, i3, dwm, bspwm, Awesome, Fluxbox, IceWM and WMaker. Of those fourteen, four have a style guide linked, the two desktops and two window managers that a new user is most likely to try first. The feature list phrases the rest as others with beautiful themes, but the table shows where the documentation actually stops. That gap is informative rather than damning, because a bare window manager on a phone is a much smaller job than a full desktop environment, and the ones with guides are the ones where appearance is the whole point of using a desktop at all.
A second package manager ships, and the page says it is not well tested
Termux has its own default package manager, and the installer uses it and recommends it. The feature list also offers a second one, the Arch package manager, with a parenthetical that says it may be buggy and is not well tested, and a link to a video rather than to documentation. Shipping a second package manager inside an installer is a large surface to add for an explicitly unreliability-flagged feature, and the honest annotation is better than silence, but the reader is left to decide whether an untested package manager is worth the disk space. The neighbouring features are less hedged: an application store is installed as part of the setup, and a proot or chroot container option exists for installing more applications than Termux itself supports, which is the standard way to get a fuller userspace on Android without root.
The Android 12 process killer is a documented prerequisite, not an accident
One callout in the installation section exists only for people on Android 12 and later, and it says to disable the phantom process killer before installing, with a link to a page explaining how. That is an operating system behaviour working against a desktop session rather than a bug in the project, and naming it as a prerequisite is the right way to handle it. Android began killing background processes much more aggressively in that release, and a graphical session that depends on several long-lived processes is exactly the pattern that policy targets. The consequence for a user is that a session which dies after a while looks like the project crashing, when in fact the system reaped it. The project also links a page for Wine, which suggests the same reasoning applies to running a Windows compatibility layer, and the repository also carries shell completion, a menu-building helper and a configuration directory beside the installer script.
Editorial conclusion
termux-desktop is worth trying if you have an Android device to spare, you already run Termux from a source other than an app store, and you are willing to hand the install to a script you have read. Three things decide whether it will work for you. Install Termux and its X11 helper from GitHub or from the F-Droid catalogue rather than an app store, because the page rules out the store build for a stated API reason and that is not something you can work around. Read the installer before running it, and prefer the long raw-file command over the shortened one, since the second route resolves a third-party redirect before executing the same script. And check the Android 12 prerequisite, because the process killer that the page tells you to disable is the operating system reaping a desktop session, and a session that disappears without warning looks exactly like a bug in this project when it is not.
Frequently asked questions
Does Termux have a desktop environment?
Not out of the box. Termux is a terminal environment, and this repository is a shell installer that puts a desktop on top of it, supporting six desktop environments and eight window managers. The page requires Android 8.0 or later, 3GB of RAM or more, and the Termux and X11 helper builds from GitHub or F-Droid rather than an app store.
how to install termux desktop
Run the installer, which fetches a script over the network and executes it in one command. A shortened form of the same command is offered as well, and a lite mode that skips optional packages is enabled by exporting a variable before running the installer. Android 12 and later users are told to disable the phantom process killer first, and a fresh installation is recommended.
Can Termux be used on PC?
This repository does not address that question. It requires an Android device on version 8.0 or later, the Termux application and a separate X11 helper, and it describes Android-specific problems such as the phantom process killer introduced in Android 12 and the need for a container to install more applications than Termux normally supports.
Does termux-desktop use hardware acceleration?
Setting up the drivers for hardware acceleration is one of its stated key features, and there is a documentation page for it. The session starter has an option to disable acceleration, one to fall back to legacy drawing, one to skip the desktop bus launcher and one to print logs, with eight example combinations of those flags given.
What does the termux-desktop installer actually install?
A desktop environment or a standalone window manager with themes, a display path through a separate X11 application or optionally a remote framebuffer session, an application store, a proot or chroot container option for more packages than Termux supports, and either the default package manager or a second one the page says may be buggy and is not well tested.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/sabamdarif-termux-desktop)Star history chart for your README
[](https://hysenlabs.com/projects/sabamdarif-termux-desktop)Was this useful?