Termux X11:手機的X伺服器使用教學

🇺🇸 English version

Termux X11可以在Android手機的X伺服器,這意味著什麼呢?首先,它可以用來執行X11協定的Linux桌面程式,並且顯示性能比VNC延遲更低。此外Termux X11支援部份OpenGL,還可以透過實驗性的virglrenderer實現3D硬體加速。

Termux X11開發靈感來自於Sparkle,最早是使用Wayland協定顯示X,後來改成XCB。

Termux X11可當作單一應用程式的顯示伺服器,也可以用來顯示桌面環境。雖然支援觸控手勢,但還是建議外接鍵盤滑鼠。

1. 安裝Termux X11

  1. 安裝Termux

  2. 登入Github帳號,到Termux-x11的Github workflows下載最新版的zip檔,目前是1.02.07

  3. 解壓縮,安裝裡面的apk檔。

  4. 開啟Termux,安裝x11-repo、Xvfb

1
2
3
pkg update
pkg install x11-repo
pkg install xorg-server-xvfb
  1. 安裝剛才下載的Termux-x11 deb檔。
1
2
termux-setup-storage
dpkg -i storage/shared/Download/termux-x11/termux-x11.deb
  1. 用VIM編輯~/.termux/termux.properties
1
vim ~/.termux/termux.properties
  1. allow-external-apps=yes取消註解(去掉#),重啟Termux。

2. 使用情境1: 直接配合Termux使用

Termux的套件都有經過魔改,所以比較建議配合Proot發行版使用Termux X11。但Termux至少有收錄XFCE4和GIMP的套件,光憑這點就足以一試了。

  1. 開啟Termux X11 APP,會顯示這個畫面

  2. 開啟Termux,先執行Xvfb再執行Termux X11

1
2
Xvfb :0 -ac &
DISPLAY=:0 termux-x11 &
  1. 安裝XFCE4和GIMP
1
pkg install xfce gimp
  1. 用dbus啟動XFCE4
1
dbus-launch --exit-with-session startxfce4 &
  1. 接著在Termux-x11的畫面就會看到XFCE4桌面了

  2. 不需要每次都顯示桌面環境,在Termux終端機直接執行gimp也是可以的。如果部份APP的字體太大,開啟XFCE4的系統設定 → Appearance → 點選Cutsom DPI。

  3. 點選通知欄Termux X11的Preferences,可從「觸控模式」切換成「模擬觸控板」。

  4. 要中止就是返回Termux按CTRL+Z終止行程,狀態欄下滑點選Exit

3. 使用情境2: 配合Proot-distro使用

由於Termux本身套件缺乏,用Proot發行版配合Termux X11會更好。

  1. 首先,安裝一個Proot-distro,例如Debian

  2. 開啟Termux X11 APP,再回到Termux,執行Termux X11

1
2
Xvfb :0 -ac &
DISPLAY=:0 termux-x11 &
  1. 以一般帳戶user登入安裝的Proot-distro。在這裡登入proot時要附加--shared-tmp的參數,代表掛載Termux的$TMPDIR目錄到proot的/tmp目錄。
1
proot-distro login --user user debian --shared-tmp
  1. 請確認使用者已在video和audio群組,若無則將其加入:
1
sudo usermod -aG video,audio $USER
  1. 之後跟Termux直接執行Termux X11一樣,啟動桌面。不過這邊我改成啟動KDE Plasma:
1
2
export DISPLAY=:0
dbus-launch --exit-with-session startplasma-x11 &
  1. KDE的界面在手機上看起來太大了,記得開啟系統設定 → Appearance → Fonts調整Custom DPI,手機大約調到160即可。Pulse Audio音效請看這裡解決。

  2. 像KDE這類桌面對觸控支援度較佳,還可以安裝onboard充當觸控輸入法。另外手機內部儲存空間會自動掛載到proot的/sdcard目錄。

  1. 由於Proot-distro會有更多現成的套件可以用,所以能運行的桌面程式會多更多。你甚至可以用MultiMC玩Java版Minecraft。

4. Termux啟動Wayland工作階段

Termux X11是X伺服器,但是呢只要借助Weston這個Wayland參考實作,我們就能在X伺服器環境下啟動巢狀Wayland工作階段(nested Wayland session)。

用套件管理員安裝weston後,用終端機啟動:

1
weston

如果本網站文章對您有幫助,歡迎贊助我。