adi1090x/termux-desktop

Setup A Beautiful Desktop/GUI In Termux

5
Hotness score
11
Reliability score
2,811
Stars
almost 7 years
Age
0
Published reviews
0
Questions

Scores

Hotness and reliability

The two headline scores, measured daily, with 30, 90, and 180 day views.

Hotness score

Jul 19, 2026

Current5

Previous8

Weekly average

100500
Full metrics details

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Hotness formula

40% Hot today + 40% Hot this week + 20% Breakout.

  • 40% Hot today: 1
  • 40% Hot this week: 6
  • 20% Breakout: 1
  • Stars gained: 1d: 0
  • Stars gained: 7d: 1
  • Stars gained: 14d: 3
  • Stars gained: 30d: 13
  • Stars gained: 90d: 84

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score

Reliability score

Jul 19, 2026

Current11

Previous11

Weekly average

100500
Full metrics details

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Reliability formula

30% Continuity + 30% Closure + 20% Shipping + 10% Liveness + 10% Support burden.

  • 30% Continuity: 5
  • 30% Closure: 0
  • 20% Shipping: 0
  • 10% Liveness: 0
  • 10% Support burden: 100

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score

Reliability breakdown

What drives the reliability score

Component scores measured daily from GitHub activity (2026-07-16).

Continuity30% of headline5

Activity on 0 of 90 tracked days in the last 90 and 0 of 30 in the last 30.

Closure30% of headline0

Merged 0 of 0 PRs opened and closed 0 of 0 issues opened over the last 90 tracked days — PR flow carries 55% of this component, issue flow 45%.

Shipping20% of headline0

0 releases in the last 180 days, 0 in the last 90 and 0 in the last 30 — a steady cadence scores highest.

Liveness10% of headline0

Last push 1065 days ago — freshness decays as pushes age (roughly halves every 83 days without a push).

Support burden10% of headline100

Open-issue load isn't tracked for this repo yet.

Adoption confidence1

Modeled — how confidently teams are adopting this repo. Stargazers

Maintenance quality13

Modeled from PR/issue responsiveness and upkeep signals. Activity pulse

Risk score70

Modeled — lower is better; adoption and continuity risk. Repository

Stays active (30d)0%

Modeled chance the repo stays active over 30 days. Activity pulse

Stays active (90d)4%

Modeled chance the repo stays active over 90 days. Activity pulse

Release rhythm (180d)0

Regularity of releases over the last 180 days. Releases

Maintainer bus risk (90d)90%

Modeled — lower is better; concentration of commits in few maintainers. Contributors graph

Topics

Explore related topics

Jump into the topic listings this repository belongs to.

Measured history

Project metrics

Weekly GitHub totals with 30, 90, and 180 day views.

Weekly star gains

Jul 19, 2026

Current1

Previous3

Weekly star gains

33-4-41
Full metrics details

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue

Cumulative stars

Jul 19, 2026

Current2,811

Previous2,810

Cumulative total

2,8111,4060
Full metrics details

Running total of the GitHub GraphQL stargazer count over time (not weekly deltas), reconstructed from starredAt events and totalCount in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue

Issues opened

Jul 12, 2026

Current0

Previous0

Weekly total

110
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

176 observed daily rows. Missing days are not fabricated.

DateValue

Issues closed

Jul 12, 2026

Current0

Previous0

Weekly total

110
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

176 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests opened

Jul 12, 2026

Current0

Previous0

Weekly total

110
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

176 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests closed

Jul 12, 2026

Current0

Previous0

Weekly total

110
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

176 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests merged

Jul 12, 2026

Current0

Previous0

Weekly total

110
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

176 observed daily rows. Missing days are not fabricated.

DateValue

Project Overview

Termux Desktop is a collection of scripts and configuration files that transforms your Android device into a usable desktop environment by setting up a GUI layer inside Termux. The project installs a VNC server, a window manager (Openbox), and a set of themed UI components — giving you a mouse-driven graphical workspace on hardware you already own.

Maintained by adi1090x, the project targets Android users who want a visual Linux desktop without rooting their device. The primary language is CSS, reflecting the project's focus on theming and visual configuration rather than system infrastructure.

If you want to run graphical Linux apps on Android — a text editor, file manager, or terminal with a proper desktop layout — this is a working starting point. It is not a virtualization layer. It runs natively inside Termux's Linux userspace, which gives better performance than PRoot-based approaches but also limits which packages are available.

The project shows 11.8% star growth over the last ~6 months as of 2026, indicating continued community interest.

Key Challenges Addressed

Running a desktop GUI on Android without root has three concrete problems:

No native display server: Android does not expose a Linux display protocol. You need a VNC or X11 bridge to get graphical output from Linux processes.

Package dependency complexity: Setting up a window manager, compositor, fonts, and icon themes in Termux by hand requires resolving dozens of package dependencies in the right order. Get one wrong and you get a blank screen or a broken VNC session.

Configuration sprawl: After installing packages, you still need dotfiles, keybindings, panel configuration, and autostart scripts before anything looks usable.

Termux Desktop handles all three by wrapping install and configuration into a single setup script. After running it, you get a consistent themed environment without manually working through Openbox or tint2 documentation.

Getting Started

Prerequisites:

  • Android 7.0 or later
  • Termux installed from F-Droid (not the Play Store version)
  • A VNC viewer app — RealVNC Viewer and bVNC are both reliable

Installation:

pkg update && pkg upgrade
pkg install wget
wget -qO- https://raw.githubusercontent.com/adi1090x/termux-desktop/master/setup.sh | bash

After the script completes, start the VNC server:

vncserver-start

Connect from your VNC viewer to localhost:1 with the password you set during setup.

Sharp edges:

  • If you installed Termux from Google Play instead of F-Droid, pkg upgrade fails with conflicting package signatures because the Play Store build stopped receiving updates. Use F-Droid.
  • The setup script overwrites ~/.bashrc and your .config directory without prompting. If you have an existing Termux setup, back it up before running.
  • VNC resolution is fixed at server start time. If you start with a low resolution, you must kill and restart the VNC server to change it — there is no live resize.
  • The script is not idempotent. Running it a second time corrupts your dotfiles.

Features and Use Cases

Themed Openbox environment: The project ships with an Openbox window manager configuration, a tint2 panel, and a set of matching color themes. The default result looks polished rather than like a bare Openbox install.

Pre-configured applications: The script installs and configures a file manager, text editor, and terminal emulator so you have a functional setup immediately after running it.

Multiple themes: Several color schemes are bundled. You can switch between them without reinstalling. The dotfiles are designed to be modified — treat the project as a themed starting point you extend for your own preferences.

Practical use cases:

  • Writing and editing code on a tablet with a Bluetooth keyboard
  • Running graphical Linux tools that have no Android-native equivalent
  • Using an Android device as a secondary development terminal
  • Learning Linux desktop environments on hardware you already own

Ecosystem and Dependencies

Termux Desktop sits on top of Termux's Linux userspace and several well-known X11 components:

  • TigerVNC (tigervnc): The VNC server that bridges the X11 display to your Android screen. This is the core rendering layer.
  • Openbox: The default window manager. Lightweight, keyboard-configurable, and independently well-documented.
  • tint2: Panel and taskbar, configured via ~/.config/tint2/tint2rc.
  • Picom: Optional compositor for transparency and shadow effects.
  • Nerd Fonts: Icon fonts used in the panel and terminal prompt, pulled from Termux's package repos.

termux-x11 is a notable complement to this setup. Instead of VNC, termux-x11 provides a native Android app acting as an X11 display server, eliminating the VNC relay. You get lower latency and better touch handling. If VNC lag becomes a problem for your workflow, termux-x11 is the first thing to evaluate.

Architectural Overview

The project is a configuration and automation layer. No compiled binary, no persistent daemon. Three components:

  1. Setup script (setup.sh): Installs Termux packages, copies dotfiles to your home directory, and registers autostart hooks. One-time run.
  2. VNC wrapper scripts (vncserver-start, vncserver-stop): Shell scripts that launch TigerVNC with your configured display number, resolution, and password. They set the DISPLAY environment variable so X11 apps know where to render.
  3. Dotfiles and themes (~/.config/, ~/.local/): Openbox keybindings, tint2 panel config, terminal colors, wallpapers, and icon themes. Standard Linux dotfiles — existing knowledge of these tools transfers directly.

The session flow: start VNC server → connect from VNC viewer → Openbox starts → tint2 starts → desktop is ready. Nothing runs persistently between sessions except the VNC server process.

This simplicity is the architecture's main operational advantage. If something breaks, you're debugging standard X11 components with standard tools. There's no abstraction layer hiding behavior.

Pros and Cons

Pros:

  • No root required. Runs entirely in Termux's native Linux userspace.
  • Single-script setup. Package installation and dotfile configuration are handled automatically.
  • Standard components. Openbox, tint2, and TigerVNC are well-documented independently. Skills transfer.
  • Fully customizable. The dotfiles and theme files are standard Linux config — edit them directly.
  • Works on older budget Android hardware where PRoot virtualization would be too slow.

Cons:

  • VNC latency. Input lag over VNC is noticeable compared to a native display. On local connections it's tolerable; over a network it degrades quickly.
  • No Wayland support. The X11/VNC stack is the only available path. Modern Linux apps that require Wayland won't run.
  • Android memory pressure. Running a window manager, VNC server, and several apps simultaneously is heavy on devices under 4GB RAM.
  • Non-idempotent setup. Running the setup script a second time breaks your dotfile configuration with no recovery path.
  • No hardware acceleration. Apps that need GPU rendering fall back to software rasterization inside the VNC session.
  • Smaller package set than a full distro. Some Linux GUI applications aren't available or don't build cleanly in Termux's package repos.

Comparison and Alternatives

Measured 90-day trends for this project and its alternatives.

GitHub stars

Weekly star gains

52260
Full metrics details

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

Termux Desktop

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

151 observed daily rows. Missing days are not fabricated.

DateValue

Issues opened

Weekly total

210
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Termux Desktop

GitHub API observation. Historical values render only when the source provides a real observation for that day.

176 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub API observation. Historical values render only when the source provides a real observation for that day.

175 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub API observation. Historical values render only when the source provides a real observation for that day.

143 observed daily rows. Missing days are not fabricated.

DateValue

Issues closed

Weekly total

530
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

Termux Desktop

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

176 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

175 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

143 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests opened

Weekly total

530
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Termux Desktop

GitHub API observation. Historical values render only when the source provides a real observation for that day.

176 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub API observation. Historical values render only when the source provides a real observation for that day.

175 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub API observation. Historical values render only when the source provides a real observation for that day.

143 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests closed

Weekly total

630
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

Termux Desktop

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

176 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

175 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

143 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests merged

Weekly total

530
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Termux Desktop

GitHub API observation. Historical values render only when the source provides a real observation for that day.

176 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub API observation. Historical values render only when the source provides a real observation for that day.

175 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub API observation. Historical values render only when the source provides a real observation for that day.

143 observed daily rows. Missing days are not fabricated.

DateValue

Open/closed pull request ratio

Weekly average

100500
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

Termux Desktop

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

151 observed daily rows. Missing days are not fabricated.

DateValue

Open/closed issues ratio

Weekly average

100500
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

Termux Desktop

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

151 observed daily rows. Missing days are not fabricated.

DateValue

Releases

Weekly total

110
Full metrics details

GitHub release published_at events bucketed by UTC day; drafts are excluded.

Termux Desktop

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue
termux-x11

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue
AnLinux

GitHub release published_at events bucketed by UTC day; drafts are excluded.

151 observed daily rows. Missing days are not fabricated.

DateValue

Hotness score

Weekly average

100500
Full metrics details

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

Termux Desktop

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
termux-x11

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
AnLinux

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

151 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score

Reliability score

Weekly average

100500
Full metrics details

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

Termux Desktop

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
termux-x11

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
AnLinux

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

151 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score

Two main categories of alternative exist: native X11 display approaches that replace the VNC layer, and Linux container approaches that run a full distro instead of Termux's package set.

Project Repo Hotness (~6mo) PRs merged (~6mo) Star growth (~6mo)
Termux Desktop https://github.com/adi1090x/termux-desktop 1.40 0 293
termux-x11 https://github.com/termux/termux-x11 54.34 28 1551
AnLinux https://github.com/EXALAB/AnLinux-Resources metrics pending 0 metrics pending

termux-x11: Replaces VNC with a native Android X11 display app. You sideload the APK, start the X server inside Termux, and graphical apps render directly to an Android surface. Input latency is significantly lower than VNC. The tradeoff: you do more manual configuration since termux-x11 doesn't ship a themed desktop setup. Use it when VNC lag is a blocker for your workflow.

AnLinux: Installs Ubuntu, Debian, Kali, or other distributions inside PRoot on top of Termux. You get access to a full distro's package repositories, which solves the missing-package problem. The downside is PRoot syscall interception overhead — CPU-bound tasks run noticeably slower than native Termux execution. If you need software that doesn't exist in Termux's package set, AnLinux is the right tool. For native-speed execution, stay with Termux's package set.

The best overall alternative is termux-x11. It directly solves Termux Desktop's most significant practical limitation — VNC input latency — and is maintained by the core Termux team, giving it stronger long-term maintenance signals than most community projects in this space.

Conclusion

Termux Desktop is the right choice for Android users who want a polished, themed Linux GUI without root and without PRoot's performance penalty. The one-script setup is the clearest path from a bare Termux install to a working Openbox desktop, and the project repo documents the process well enough to get you unstuck when the script hits a snag.

Do not run the setup script on an existing Termux environment with custom dotfiles — it overwrites ~/.bashrc and your .config directory without a backup or confirmation prompt, and there is no undo path. Back up your config first, then run the setup script from the project repo on a clean Termux session.

Join the conversation

Reviews · Questions · Posts

Share what you know about termux-desktop — write a review from your real experience, ask an implementation question, or publish a post about how you use it.

Share your experience

Write or update your review

Explain what worked, what broke down, and what another team should know before adopting termux-desktop.

Write your review now — it saves locally and publishes automatically after you sign in.

Rating
Positive attributes
Negative attributes

Project Q&A

Questions and answers

Browse implementation threads tied directly to adi1090x/termux-desktop. Each question links through to the full answer page.

Q&A No threads yet

Be the first to ask how teams run termux-desktop in production. Every question you post becomes a durable, searchable answer page other developers can find.

Ask the first question

Related posts

Posts tagged with the same topics

These posts come from the same topic surface as this repo, so readers can move from project evaluation into practical writeups and migration notes without leaving context.

Posts No topic-linked posts yet

Share how your team uses termux-desktop — a migration note, an architecture writeup, or a comparison. Your post reaches everyone browsing these same topics.

Write the first post
Get a weekly email with the hottest new projects in the Adi1090x and Termux Desktop world.
No Spam. Unsubscribe easily at any time.

Copyright 2018-2026 Awesome Open Source.  All rights reserved.