Dextop

LINUX WORKSTATION FOR ANDROID

Dextop turns most modern Android devices into a complete Linux based workstation in a matter of minutes. No hassle or deep technical know-how required.

One command sets up Termux, a Debian, Ubuntu or Fedora container with your own user, and an XFCE or i3 desktop on the native Termux:X11 display with VirGL acceleration.

YOUR DESKTOP, IN YOUR POCKET.

OVERVIEW // A LINUX WORKSTATION ON ANDROID

Dextop handles all the technical intricacies of a PRoot container so you can get right to work. It runs as a transient container system that talks to Android through the Termux shell to open viewers and applications as needed.

A Dextop session on Termux:X11

What it doesn't do

INSTALL // ONE COMMAND, TEN MINUTES

Install Termux and Termux:X11, label your storage, and run one command. Back up your existing Termux setup first, following the Termux backup recommendations.

Prepare

  1. Get Termux from GitHub. The Google Play Store packages are deprecated since November 2020: do not install them. Install the Termux and Termux:X11 APKs from their GitHub releases, and optionally Termux:API.
  2. Allow unknown apps. Settings > Security and Privacy > Install unknown apps > Termux: the setup installs the companion applications for you.
  3. Label your storage. In the storage you want as home, create a .storage file with a label, as shown below.
echo 'Home' > .storage

Install

Open Termux and run the deployment script. Answer the user and distribution questions, press Allow for storage and Install for the add-ons, and the rest runs on its own in about 10 minutes.

curl -s -L run.dxtp.app > dextop && bash dextop

Choose another setup with an option: bash dextop -e i3 for the i3 window manager, bash dextop -c for console access only, t or n for the Termux or container side alone.

Use

PromptWhereCommand
green termuxTermux systemcontainer-session -o starts the Termux desktop
green termuxTermux systemcontainer-session -d logs into the container
fuschia termuxContainer systemcontainer-session -o starts the container desktop
anyLogoutCtrl+D or exit closes the session and goes up one level

Opening Termux logs in and brings the graphical session up automatically. A recommended clean slate is a fresh Termux instance or profile, but Dextop also deploys over an existing setup.

Download Termux from GitHub ›

SETUP // WHAT THE DEPLOYMENT SCRIPT DOES

dextop runs the whole setup in order, with Frobulator reporting every step. User information and distribution preferences are asked along the way, so stay attentive.

  1. Failsafe. Refreshes the Termux repositories and packages so nothing is skipped on install.
  2. Backup. Archives the home directory to ${PREFIX}/bkp before anything changes.
  3. Preferences. Links the Termux colors, font and properties.
  4. Utilities. Downloads the Dextop utilities into ~/.local/bin.
  5. Directories, additions and backgrounds. Creates the setup directories, installs the Android handlers and the desktop backgrounds.
  6. Login options. Turns on automatic session start and shutdown, and prepares the update and audio switches.
  7. Termux. Installs the companion applications, links the storage and installs the Termux packages.
  8. Container. Downloads the image, initializes it, expands it to a full system, installs its packages and creates your user.
  9. Desktop. Links the shell files, file manager bookmarks, the i3 interface, icon themes and themes.
  10. Session. Moves the deployment script into ~/.local/bin and starts the first session.

Every step writes a checkpoint in ~/.dextop, so running bash dextop again resumes where it stopped. The setup checkpoint is only written when every step succeeded. All prompts and outputs are logged to ${PREFIX}/var/log.

Files Dextop links

FileLink
~/.termux/colors.properties~/.local/bin/termux-colors
~/.termux/font.ttf~/.local/bin/termux-font
~/.termux/termux.properties~/.local/bin/termux-properties
~/.bashrc~/.local/bin/bash-configuration
~/.bash_aliases~/.local/bin/bash-aliases
~/.bash_functions~/.local/bin/bash-functions
~/.bash_login~/.local/bin/bash-login
~/.bash_logout~/.local/bin/bash-logout
~/.bash_profile~/.local/bin/bash-profile

Dextop is Bash centric. All of these files can be customized and make a good base, but changes are at your own risk: bug reports stemming from modified scripts are closed.

DISTRIBUTIONS // 12 CONTAINER IMAGES

The container runs through PRoot with the Android system, storage and devices bound in, so it behaves like a normal Linux based system.

DistributionVersionCodenamePackage managerCommand
Debian10busteraptcontainer-image -i debian 10
Debian11bullseyeaptcontainer-image -i debian 11
Debian12bookwormaptcontainer-image -i debian 12
Debian13 // Defaulttrixieaptcontainer-image -i debian 13
Ubuntu18.04bionicaptcontainer-image -i ubuntu 18.04
Ubuntu20.04focalaptcontainer-image -i ubuntu 20.04
Ubuntu22.04jammyaptcontainer-image -i ubuntu 22.04
Ubuntu24.04nobleaptcontainer-image -i ubuntu 24.04
Fedora41dnfcontainer-image -i fedora 41
Fedora42dnfcontainer-image -i fedora 42
Fedora43dnfcontainer-image -i fedora 43
Fedora44dnfcontainer-image -i fedora 44

SESSIONS // DESKTOPS ON TERMUX:X11 OR VNC

container-session starts and stops the graphical session, on Termux or inside the container. It is just like running a virtual machine on a computer and looking at it through a viewer.

CommandDoes
container-session -oStarts the session on Termux:X11, the default display
container-session -o vncStarts the session on x11vnc and opens the VNC viewer
container-session -xExits the session and stops the display server
container-session -u [User Name]Logs in as another container user
container-session -d [Directory]Logs into the container in that directory
container-session -f [Application]Starts the session focused on one application
container-session -lLists the display server information and parameters
container-session -p vncGenerates the VNC session password

Display and data paths

PathRoute
DisplayContainer ► X Server ► Termux:X11 ► Display
DisplayContainer ► x11vnc ► VNC Viewer ► Display
AccelerationContainer ► VirGL ► Graphics ► GPU
StorageStorage ► /storage ► proot bind ► Container
StorageStorage ► /storage ► ${PREFIX}/media/link ► Home
LaunchDextop ► termux-am ► Android Activities ► Termux:X11 / VNC Viewer

XFCE compositing stays off: within Android's user space policy it costs performance and causes tearing.

STORAGE // ONE HOME FOR EVERY SYSTEM

termux-storage asks for the storage permission, then links internal and external media for system wide access. Create the .storage labels before setup for recognizable names.

ADDITIONS // ANDROID APPLICATIONS FROM THE DESKTOP

dextop-additions hands desktop requests to the Android Activity Manager, which opens the matching Android application for you. Dextop only loads applications as needed, keeping the device smooth.

Dextop additions open native Android applications
CommandDoesTakes
dextop-additions -aRun desktop environment activities through native Android application activities.
google-chrome | chromegoogle-mail | gmailterminal
dextop-additions -cRun desktop environment activities through native Android application actions.
camera | photo | picture | selfiemusicplayer | song | audio
dextop-additions -nHandle desktop environment mimetypes through native Android applications.
email | mailbrowser | link | webmessage | text | smsfile

SWITCHES // LOGIN, LOGOUT, UPDATES AND AUDIO

Dextop keeps its choices as small files in ~/.dextop. Write the keyword in a file to turn a switch on, empty it to turn it off. Automatic login and logout are on after setup.

SwitchFile in ~/.dextopOnOff
Automatic session start on logindextop-loginecho login > ~/.dextop/dextop-loginecho '' > ~/.dextop/dextop-login
Session and display shutdown on exitdextop-logoutecho logout > ~/.dextop/dextop-logoutecho '' > ~/.dextop/dextop-logout
Utility updates on logindextop-updateecho update > ~/.dextop/dextop-updateecho '' > ~/.dextop/dextop-update
Audio playback on logindextop-audioecho audio > ~/.dextop/dextop-audioecho '' > ~/.dextop/dextop-audio

PACKAGES // 277 PACKAGES BY GROUP

termux-packages and container-packages install these groups, read straight from the scripts. The container installs them under their Debian and Ubuntu or Fedora names.

GroupTermuxDebian, UbuntuFedora
Displayvirglrenderer virglrenderer-android xorg-server-xvfb xwaylandx11-apps x11-common x11-session-utils x11-touchscreen-calibrator x11-utils x11-xfs-utils x11-xkb-utils x11-xserver-utils xvfb xwaylandsetxkbmap xclock xdpyinfo xev xeyes xhost xkbcomp xmodmap xorg-x11-server-Xvfb xorg-x11-server-Xwayland xorg-x11-xinit xprop xrandr xrdb xset xsetroot xwininfo
Documentationmanmanman-db man-pages
Extensionstermux-am termux-am-socket termux-api termux-apt-repo termux-auth termux-create-package termux-elf-cleaner termux-exec termux-gui-bash termux-gui-c termux-gui-package termux-gui-pm termux-keyring termux-licenses termux-services termux-tools termux-x11-nightly
i3bc i3 i3statusbc i3 i3statusbc i3 i3status
i3 add-onsdmenu dunst feh picom rofi st surf qivdmenu dunst feh picom rofi stterm surf qivdmenu dunst feh picom rofi st surf qiv
Icon themespapirus-icon-themepapirus-icon-themepapirus-icon-theme-dark
Multimediaffmpeg flac gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-plugins-base
Repositoriesroot-repo x11-repo
Utilitiesapt apt-file blk-utils fakeroot git hub htop jq ncurses ncurses-utils openssh proot ranger zip unzip bzip2 gzip lzip p7zip pip rsync tree wgetapt apt-file curl pip sudo ssh treednf-plugins-core curl python3-pip sudo openssh-clients openssh-server tree
VNCx11vncx11vncx11vnc
XFCExfce4 xfce4-appfinder xfce4-dict xfce4-notifyd xfce4-panel xfce4-screenshooter xfce4-session xfce4-settings xfce4-taskmanager xfce4-terminal galculator gigolo mousepad parole thunar thunar-archive-plugin ristretto tumblerxfce4 xfce4-appfinder xfce4-clipman xfce4-dict xfce4-notifyd xfce4-panel xfce4-screenshooter xfce4-session xfce4-settings xfce4-taskmanager xfce4-terminal galculator gigolo mousepad parole thunar thunar-archive-plugin ristretto tumblerxfce4-session xfwm4 xfdesktop xfce4-appfinder xfce4-clipman-plugin xfce4-dict xfce4-notifyd xfce4-panel xfce4-screenshooter xfce4-settings xfce4-taskmanager xfce4-terminal galculator gigolo mousepad parole Thunar thunar-archive-plugin ristretto tumbler
XFCE themesadwaita-icon-theme adwaita-icon-theme-fullarc-theme adwaita-icon-theme adwaita-icon-theme-fullarc-theme adwaita-icon-theme adwaita-icon-theme-legacy
XFCE plugins, not installedxfce4-calculator-plugin xfce4-clipman-plugin xfce4-datetime-plugin xfce4-eyes-plugin xfce4-mailwatch-plugin xfce4-netload-plugin xfce4-notes-plugin xfce4-places-plugin xfce4-timer-plugin xfce4-wavelan-plugin xfce4-whiskermenu-pluginxfce4-appmenu-plugin xfce4-battery-plugin xfce4-clipman-plugin xfce4-cpufreq-plugin xfce4-cpugraph-plugin xfce4-datetime-plugin xfce4-diskperf-plugin xfce4-equake-plugin xfce4-eyes-plugin xfce4-fsguard-plugin xfce4-genmon-plugin xfce4-indicator-plugin xfce4-mailwatch-plugin xfce4-mount-plugin xfce4-mpc-plugin xfce4-netload-plugin xfce4-notes-plugin xfce4-panel-profiles xfce4-places-plugin xfce4-sensors-plugin xfce4-smartbookmark-plugin xfce4-sntray-plugin xfce4-sntray-plugin-common xfce4-statusnotifier-plugin xfce4-systemload-plugin xfce4-time-out-plugin xfce4-timer-plugin xfce4-verve-plugin xfce4-wavelan-plugin xfce4-weather-plugin xfce4-whiskermenu-plugin xfce4-xkb-pluginxfce4-battery-plugin xfce4-cpufreq-plugin xfce4-cpugraph-plugin xfce4-datetime-plugin xfce4-diskperf-plugin xfce4-eyes-plugin xfce4-fsguard-plugin xfce4-genmon-plugin xfce4-mailwatch-plugin xfce4-mount-plugin xfce4-mpc-plugin xfce4-netload-plugin xfce4-notes-plugin xfce4-panel-profiles xfce4-places-plugin xfce4-sensors-plugin xfce4-smartbookmark-plugin xfce4-statusnotifier-plugin xfce4-systemload-plugin xfce4-time-out-plugin xfce4-timer-plugin xfce4-verve-plugin xfce4-wavelan-plugin xfce4-weather-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin
Fontsfonts-takaoipa-gothic-fonts
Securityca-certificates opensslca-certificates openssl

Termux add-ons

termux-addons installs the Termux companion applications. Remove any earlier version first so no conflicting package signatures are inherited.

Add-onPackage
Termux:APIpackage-termux-api.apk
Termux:GUIpackage-termux-gui.apk
Termux:Stylingpackage-termux-styling.apk
Termux:Taskerpackage-termux-tasker.apk
Termux:X11package-termux-x11.apk

MAINTENANCE // UPDATE, BACK UP, RESTORE AND PURGE

Dextop updates itself and its utilities from the latest release, and keeps your home directory safe with dated backups.

Update

Get the latest deployment script first, then update what you need. A wrong utility name lists every available one.

curl -s -L run.dxtp.app > "${HOME}"/.local/bin/dextop
bash dextop -u all
bash dextop -u utility all
bash dextop -u utility [Utility Name]
bash dextop -u shell

termux-update checks the Termux application itself against GitHub or F-Droid with -g or -f and offers the update.

Back up, restore and purge

CommandDoes
bash dextop -bArchives the home directory to ${PREFIX}/bkp/dextop-backup-YYYY-MM-DD-HH-MM-SS.tar.gz
bash dextop -rRestores the latest backup
bash dextop -r earliestRestores the backup taken before setup, clearing the links and files setup made
bash dextop -r [name]Restores a backup by its file name
bash dextop -pRemoves Dextop and everything its setup installed, after confirmation, then offers the earliest backup

Backups are kept outside the home directory, so no backup ever holds another, and purge keeps them.

Issues

Submit a bug report or feature request ›

COMMANDS // EVERY UTILITY AND OPTION

The help of all 14 Dextop utilities, read from the scripts themselves: 46 options with their values and defaults. The marked letter is the short option. Search them, or pick a group.

dextop

Setup // 2026-10-23

The deployment script: sets up Termux, the container and the desktop, and updates, backs up, restores and purges the whole setup.

dextop -c | -e [Environment] | -t | -n | -l | -i | -a | -d | -b | -r [Backup] | -u [Update] [Name] | -p | -h [OPTION]
-c, --console

Set up console access to environment and utilities only.

-e, --environment [Environment]

Set up desktop environment and utilities.

i3xfce // Defaultconsole // Fallback
-t, --termux

Set up termux environment and utilities only.

-n, --container

Set up container environment and utilities only.

-l, --link

Create links to unify storage directories.

-i, --initialize

Run initialization of setup directories and load configurations.

-a, --addons

Set up Termux addons and companion applications.

-d, --additions

Set up Dextop additions.

-b, --backup

Create backup of the user home directory.

-r, --restore [Backup]

Run restore of the user home directory from a backup.

latest // Defaultearliest // Before setupname
-u, --update [Update] [Name]

Run update of application packages and utilities.

alldextop // Defaultadditionsbackgroundinterfacepreferencesshelltermuxutility
-p, --purge

Run purge of setup components and packages - home restore offered.

-h, --help

Show help and usage information.

termux-packages

Termux // 2026-10-22

Refreshes the Termux repositories and installs the Termux packages for the chosen desktop.

termux-packages -h
-h, --help

Show help and usage information.

termux-update

Termux // 2026-10-22

Compares the installed Termux application with its latest release and offers to download and install the update.

termux-update -f | -g | [OPTION]
-f, --fdroid

Use f-droid as package update source.

-g, --github

Use github as package update source.

-h, --help

Show help and usage information.

termux-storage

Termux // 2026-10-22

Asks for the storage permission, links the labelled internal and external media under ${PREFIX}/media and unifies the home directories.

termux-storage -c | -e [Environment] | -t | -n | -b | -u [Update Type] [Utility Name] | [OPTION]
-l, --link

Create links to unify storage directories.

-h, --help

Show help and usage information.

termux-addons

Termux // 2026-10-22

Downloads and installs the Termux companion applications, all of them or one by name.

termux-addons -s [Selection Type] [Addon Name] | [OPTION]
-s, --selection [Selection Type] [Addon Name]

Update application package selection.

alladdon
-h, --help

Show help and usage information.

termux-system

Termux // 2026-10-23

Prepares the container environment from Termux: the PATH, Android groups, hostname, hosts, nameserver and libc preload.

termux-system -h
-h, --help

Show help and usage information.

container-image

Container // 2026-10-23

Lists the supported images, checks the processor architecture, downloads and extracts the image and validates the system.

container-image -i [Distribution Name] [Distribution Version] | -s [Selection] | [OPTION]
-i, --image [Distribution Name] [Distribution Version]

Specify distribution image name and version.

-s, --selection [Selection]

Show setup selection options.

-h, --help

Show help and usage information.

container-initialization

Container // 2026-10-23

Runs the first package and repository update inside the container and sets up its locale.

container-initialization -h
-h, --help

Show help and usage information.

container-expansion

Container // 2026-10-22

Expands a minimized base image to a full system with unminimize when the image has it.

container-expansion -h
-h, --help

Show help and usage information.

container-packages

Container // 2026-10-23

Installs the container packages for the chosen desktop under their distribution names and removes ibus, snap and xterm.

container-packages -h
-h, --help

Show help and usage information.

container-user

Container // 2026-10-23

Creates the container user with a home directory and sudo rights, sets passwords and the container hostname.

container-user [OPTION]
-i, --information

Gather setup information.

-u, --username

Set up user account.

-p, --password

Set or change user password.

-n, --hostname

Set container hostname.

-h, --help

Show help and usage information.

container-settings

Container // 2026-10-22

Applies the Dextop look to the XFCE panel, session and terminal and restarts the affected modules.

container-settings -h
-h, --help

Show help and usage information.

container-session

Session // 2026-10-23

Starts and stops desktop sessions on Termux:X11 or VNC, for any container directory and user.

container-session -o [Display Server] | -x | -l | -u [User Name] | -d [Directory] | -f [Application] | [OPTION]
-o, --start [Display Server]

Start display session server and open the desktop session.

vncx11 // Default
-x, --stop

Exit the desktop session and stop the display session server.

-l, --list

Show list of display server information and parameters.

-p, --password

Generate display session password.

vnc
-u, --username [User Name]

Specify user name for session login.

-d, --directory [Directory]

Specify container base directory containing /distribution/version.

-f, --focus [Application]

Set display session focus on the specified application.

-h, --help

Show help and usage information.

dextop-additions

Additions // 2026-10-04

Opens native Android applications for desktop activities, actions and mimetypes through the Activity Manager.

dextop-additions -a [Activity] | -c [Action] | -n [Handle] | [OPTION]
-a, --activity [Activity]

Run desktop environment activities through native Android application activities.

google-chrome | chromegoogle-mail | gmailterminal
-c, --action [Action]

Run desktop environment activities through native Android application actions.

camera | photo | picture | selfiemusicplayer | song | audio
-n, --handle [Handle]

Handle desktop environment mimetypes through native Android applications.

email | mailbrowser | link | webmessage | text | smsfile
-h, --help

Show help and usage information.

NEWS // LATEST CHANGES

The latest release notices from the Dextop repository.

2026-10-23
2026-10-21
2025-03-16
2025-03-15
2025-01-07
2025-01-03

Read every notice ›