Termux X11是可以在Android手機跑X伺服器的APP,這意味著什麼呢?首先,它可以用來執行依賴X11顯示畫面的Linux電腦程式,例如Firefox、Chromium、GIMP、Blender、Visual Studio Code等等。
有了Termux X11你就可以方便透過virglrenderer實現3D硬體加速了,圖形效能比VNC更好。
Termux X11使用X11協定,X顯示伺服器可顯示單一應用程式,也可以用來顯示完整Linux桌面環境。
Termux X11可以外接滑鼠鍵盤,也可以用手機觸控操作。只要指定適當的桌面解析度便可用手機鍵盤與桌面環境互動。
1. 安裝Termux X11#
Termux X11開發靈感來自於 Sparkle,以前是使用XWayland顯示協定,後來改成了純X。
目前,Termux X11系統要求為Android 8以上的裝置。
安裝 Termux
到Termux-x11的 Github Releases下載APK檔。
安裝Termux-x11 APK檔。
開啟Termux,安裝x11-repo、termux-x11-nightly套件
pkg update && pkg upgrade
pkg install x11-repo
pkg install termux-x11-nightly
2. 使用情境1: 直接在Termux使用#
由於Termux的套件都有經過魔改,圖形程式的套件比較少,所以建議Proot-distro使用Termux X11,選擇較多。
開啟Termux X11 APP,會顯示這個畫面
開啟Termux,安裝XFCE4和GIMP
pkg install xfce gimp
- 執行Termux X11,用dbus啟動XFCE4
termux-x11 :0 -xstartup "dbus-launch --exit-with-session xfce4-session"
如果遇到Make sure an X server isn't already running(EE)
的錯誤,退出Termux,將Termux和Termux X11的APP強制停止,清除快取,再重試。
接著在Termux-x11的畫面就會看到XFCE4桌面了
不顯示桌面環境,在Termux終端機直接執行
gimp
也是可以的。如果部份APP的字體太大,開啟XFCE4的系統設定 → Appearance → 點選Cutsom DPI。Termux X11的Preferences設定裡面也可以設定解析度。點選通知欄Termux X11的Preferences,可從「觸控模式」切換成「模擬觸控板」。
要中止就是返回Termux按CTRL+C終止行程,狀態欄下滑點選
Exit
。
3. 使用情境2: 配合Proot-distro使用#
由於Termux本身套件缺乏,用Proot發行版配合Termux X11會更好。
首先,安裝一個 Proot-distro,例如 Debian。
開啟Termux X11 APP,再回到Termux。
以一般帳戶
user
登入安裝的Proot-distro。在這裡登入proot時要附加--shared-tmp
的參數,代表掛載Termux的$TMPDIR
目錄到proot的/tmp
目錄。
proot-distro login --user user debian --shared-tmp
- 之後跟Termux直接執行Termux X11一樣,啟動XFCE4桌面。
termux-x11 :0 -xstartup "dbus-launch --exit-with-session xfce4-session"
啟動後按返回能夠喚醒手機鍵盤,推薦使用 Hacker’s Keyboard方便打快捷鍵。
由於Proot-distro會有更多現成的套件可以用,所以能運行的桌面程式會多更多。你甚至可以用MultiMC玩Java版Minecraft。
4. 使用情境3: 配合chroot使用#
設定帶有XFCE4桌面的 chroot Ubuntu
啟動Termux X11 APP
返回Termux,執行Termux X11伺服器:
termux-x11 :0 -ac &
- 將Termux的tmp掛載至chroot Ubuntu的tmp
sudo busybox mount --bind $PREFIX/tmp /data/local/tmp/ubuntu/tmp
- 登入chroot Ubuntu
sh /data/local/tmp/startu.sh
- 啟動XFCE4 (Termux X11還不是很穩定,如果黑畫面,先試試啟動
xfce4-terminal
終端機)
sudo chmod -R 777 /tmp
export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713
dbus-launch --exit-with-session startxfce4 &
5. Termux X11啟動真Wayland工作階段#
Termux X11是X伺服器,但是呢只要借助Weston
這個Wayland參考實作,我們就能在X伺服器環境下啟動巢狀Wayland工作階段(nested Wayland session)。
用套件管理員安裝weston
後,用終端機啟動:
weston
6. Termux X11的GPU硬體加速#
參見 Termux以virglrenderer達成GPU 3D硬體加速
7. Termux X11使用手機鍵盤打中文#
點選Preferences → Keyboard,啟用"Workaround to enable CJK Gboard".
按手機返回鍵,喚醒鍵盤。
將底部工具列往左滑就會出現輸入框,讓你用Android的鍵盤打字。