# Running X11 Desktop on Android (Termux) This guide explains how to run a full Linux desktop environment on your Android device using Termux and X11. ## Prerequisites 1. **Termux**: Install from F-Droid (Google Play version is outdated). 2. **Termux:X11**: Install the companion app (check GitHub releases for the latest nightly build). ### Note on X11 Repository Packages from `x11-repo` are now maintained along with the main repo. However, the repository is not enabled in Termux by default. You must enable it to install X11 packages: ```bash pkg install x11-repo ``` ## Method 1: Proot-distro (Recommended) This method uses `proot-distro` to run a Linux distribution (like Debian or Arch) without root access. ### 1. Install Dependencies Open Termux and install the necessary packages: ```bash pkg update pkg install proot-distro x11-repo pkg install termux-x11-nightly ``` ### 2. Install a Distro Install a distribution, for example, Debian: ```bash proot-distro install debian ``` ### 3. Login and Setup Login to the distro with shared temporary directory support: ```bash proot-distro login --user user debian --shared-tmp ``` *Note: You may need to create a user first if one doesn't exist.* ### 4. Launch Desktop Environment Start the X11 server and launch your desktop environment (e.g., XFCE4): 1. Open the **Termux:X11** app on your phone. 2. Go back to **Termux**. 3. Run the following command: ```bash termux-x11 :0 -xstartup "dbus-launch --exit-with-session xfce4-session" ``` ### Tips - **Keyboard**: Press the "Back" button to toggle the Android keyboard. - **Shortcuts**: Install "Hacker's Keyboard" for a full PC layout. --- ## Method 2: Chroot (Root Required) This method requires a rooted device but offers better performance. ### 1. Setup 1. Launch **Termux:X11**. 2. Go back to **Termux**. 3. Start the X server: ```bash termux-x11 :0 -ac & ``` ### 2. Mount Directories Mount Termux's tmp to the chroot environment (assuming Ubuntu): ```bash sudo busybox mount --bind $PREFIX/tmp /data/local/tmp/ubuntu/tmp ``` ### 3. Start Session Log into your chroot environment and start the session: ```bash # Login script (adjust path as needed) sh /data/local/tmp/startu.sh # Inside chroot sudo chmod -R 777 /tmp export DISPLAY=:0 export PULSE_SERVER=tcp:127.0.0.1:4713 dbus-launch --exit-with-session startxfce4 & ``` --- ## Advanced Features ### Wayland Session Termux:X11 is an X server, but you can run nested Wayland sessions. 1. Install Weston: `pkg install weston` 2. Run: `weston` ### GPU Acceleration For hardware acceleration, refer to `virglrenderer` tutorials for Termux. ### Input Methods (Chinese/CJK) 1. In Termux:X11, go to **Preferences** -> **Keyboard**. 2. Enable **"Workaround to enable CJK Gboard"**. 3. Press "Back" to show the keyboard. 4. Scroll the bottom toolbar to the left to find the text input box. ### Building Packages from Source You can build X11 packages manually using the provided Docker image. 1. Clone the repository: ```bash git clone https://github.com/termux/x11-packages ``` 2. Enter the build environment: ```bash cd ./x11-packages ./start-builder.sh ``` 3. Build a package (replace `${arch}` and `${package name}`): ```bash ./build-package.sh -a ${arch} ${package name} ```