快轉到主要內容

在Termux的XFCE桌面啟動proot-distro裡面的X11圖形程式

· 民國114年乙巳年
·
切換繁體/簡體
分類   智慧型手機 Termux教學
標籤   Proot-Distro X Window
目錄

Allow apps in proot-distro to draw windows on XFCE desktop in Termux. Integrate X11 GUI apps in proot-distro with Termux host desktop environment.

預設情況下,使用Termux的原生套件跑XFCE桌面環境,並且透過X11網路透明性的方式,讓proot-distro裡面的X11程式視窗能顯示在XFCE桌面。

這張圖展示了Termux與proot-distro環境同時執行的畫面,XFCE桌面直接用Termux跑,LibreOffice則是從proot-distro裡面啟動

這裡負責跑原生XFCE程式的,我們就姑且稱之為Termux宿主機,而proot-distro自然就是容器了。這個過程展示如下:

這個用法有點像是Linux桌面的容器工具Distrobox啦。它允許Docker裡面的X11圖形程式顯示在宿主機的桌面。

你可能會想說,我從proot-distro裡面直接啟動XFCE就好了,為什麼要用Termux的XFCE套件?

因為速度比較快,proot裡面的行程都是用ptrace模擬出來的,本來就比針對Termux原生編譯的程式執行速度要慢。現在Termux套件越來越多了,連Chromium瀏覽器都有了(收錄在TUR Repo),所以未來漸漸不用反客為主,用proot-distro跑桌面環境。如果大部分常用程式可以使用Termux原生版本執行,那麼就沒必要用proot-distro,僅在有需要的時候啟動proot-distro,跑那些Debian套件庫才有收錄的程式。

1. 給Termux安裝桌面環境
#

參見Termux安裝XFCE4桌面,圖形顯示方式看要用Termux X11還是VNC都可以。

這裡還要額外加上一個套件,用於控制X客戶端連線到X伺服器的權限:

pkg install xorg-xhost

測試看看能不能啟動Termux桌面環境。

另外,我們可以開啟XFCE的檔案管理器,打開storage/shared目錄,讀取Android內部儲存空間的檔案。

2. 設定proot-distro
#

我安裝的是proot Debian

建議新增一般使用者,並在proot-distro裡面設定中文化。

Termux缺乏locales套件,不能設定中文。

並在proot-distro裡面安裝圖形程式,比如LibreOffice:

sudo apt install libreoffice

3. 在Termux桌面啟動proot-distro裡面的程式
#

  1. 首先要執行xhost,允許proot-distro裡面的程式在Termux桌面的X伺服器繪製視窗。因為proot的行程是Termux user啟動的,所以用whoami指令帶入目前使用者名稱,允許這個使用者連線。
xhost +SI:localuser:$(whoami)
  1. 登入proot-distro,必須使用--shared-tmp共享X伺服器資源,再加上--termux-home將Termux家目錄也掛載進去(如果不希望檔案被proot裡面的程式弄亂的話不掛載也罷)
proot-distro login debian --user user --shared-tmp --termux-home
  1. 指定DISPLAY環境變數,數值應該是Termux X伺服器的位址,一般來說是:0。然後執行程式,比如LibreOffice:
export DISPLAY=:0

libreoffice
  1. 隨後就會看到LibreOffice視窗啟動了。

  2. Termux桌面的檔案可以直接拖拉到LibreOffice視窗開啟。

但如果是從LibreOffice開啟檔案選擇器的話,預設只能看到proot-distro裡面的目錄。但因為上面有掛載Termux家目錄,所以proot-distro裡面使用者的家目錄/home就變成了與Termux家目錄共享。

另外可以從/sdcard讀取Android內部儲存空間的目錄。

4. 在Termux的桌面新增圖形捷徑
#

做成Desktop Entry,就不需要手動登入proot-distro打指令了。

XFCE有快速生成Deskop Entry的方法,在桌面點選右鍵 → Create Launcher

Command部份輸入以下指令。登入Debian proot,用bash啟動LibreOffice。

proot-distro login debian  --shared-tmp -- bash -c "DISPLAY=:1 libreoffice"

圖示檔案可以選取任意目錄的圖片,不過我會選擇用原本的。點選Icon,選Image Files,開啟檔案選擇器,路徑填寫/data/data/com.termux/files/var/lib/proot-distro/installed-rootfs/debian/usr/share/icons/hicolor/。就可以找到Termux proot-distro裡面的圖示檔案。

儲存,點兩下,直接啟動LibreOffice。其他程式也可以這樣如法炮製。

相關文章

如何用VNC遠端連線至Termux的Linux桌面
分類   智慧型手機 Termux教學
標籤   Proot-Distro VNC
Termux proot無法使用systemctl指令的解決方案
分類   智慧型手機 Termux教學
標籤   Systemd Proot-Distro Chroot OpenRC Runit
Termux安裝圖形桌面環境+音訊輸出教學
分類   智慧型手機 Termux教學
標籤   X Window VNC

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。