Phosh on Linux mobile devices

by Ivon Huang and contributors

在Android之外,還有沒有其他自由的Linux手機系統的選擇?

沒有NFC可用,沒有主流手遊玩,沒有生產力通訊軟體,只有hacking freedom的手機系統。

Linux手機、Linux平板、甚至樹莓派外掛螢幕的操作...有沒有一個適合觸控的使用者界面?

針對Linux手機或是Android手機所設計的GNU/Linux系統,大部分沿用電腦端的stack(Systemd, Wayland, PipeWire, GTK, QT...)而非reinvent wheels的

Android以外的Linux mobile distro

  • postmarketOS (Alpine Linux)
  • Ubuntu touch (immutable Ubuntu)
  • Arch Linux ARM (Arch Linux unofficial port)
  • Manjaro ARM
  • Mobian (Debian)
  • Fedora Atomic Pocketblue
  • NixOS
    還有更多......

測試裝置

  • Xiaomi Poco F1,刷機為postmarketOS,目前性能最強(SD845)且有mainline的Linux手機
  • Pine64 PineTab 2,出廠安裝Arch Linux ARM,專門為Linux開發設計的廉價ARM平板,我花六倍卷買的,另有RISC-V處理器的版本

問題:Linux沒有鍵盤,活的下去嗎?

不要跟我說,使用遠端SSH控制

現在手機不如以往黑莓機有鍵盤

我們需要一個適合觸控的界面

不論是手機還是平板都能用的

X還是Wayland

在談論桌面之前,我們得解決一個更根本的問題:

顯示協定要用X Window還是Wayland?前者的主從式設計已經基本上過時30年了!Wayland才是未來,符合現代OS的設計趨勢。

因此下面要談論的桌面全部都是針對Wayland開發的。

Linux觸控界面概觀

Linux針對行動版設計的桌面不多

現有的KDE Plasma和GNOME桌面,要改造成觸控專用的很難,更何況還是手機這種小螢幕裝置

目前有這幾個選項:Phosh、KDE Plasma Mobile、SXMO、Lomiri

Phosh簡單易用

Plasma Mobile太容易崩潰,生搬硬套KDE桌面邏輯

SXMO用dwm改的,給super hacker用的

Lomiri是Ubuntu touch專武

Phosh簡介

這個桌面環境是自由軟體公司Purism開發。Purism在美國是眾籌企業,專門賣自由硬體,比System76和Framework還要極端的那種。

他們的產品有通過FSF認證,他們主張筆電要支援Coreboot,還因為監控因素把Intel ME關掉。作業系統當然是基於linux-libre的PureOS。

但也因此電腦比同級產品貴很多,如果你不是RMS那種偏執狂不值得買。

他們還有推出Linux平板與Linux手機

Phosh就是他們手機Librem 5的使用者界面。或者依照Linux的術語來說,稱作桌面環境。

此乃由正職員工參與維護的開源專案。

順帶一提這台Librem 5手機使用的是台廠NXP的晶片,但是才32GB ROM就要賣到799美元,溢價嚴重。

我們完全可以用更低廉的價格入手硬體,跑跟它一樣的桌面環境。

在PinePhone社群中(樣本數~=1000),Phosh是評價最好的一個界面了。

根據我個人的PinePhone使用經驗,我覺得Phosh雖然界面很簡陋,但卻是最穩定的一個界面

現在的Wayland桌面不多,除了KDE Plasma、GNOME、Cosmic,大部分是純compositor,要自行組裝桌面元件(不是每個人都想寫Sway的config)。

Phosh是有完整功能,又比較輕量的一個。

特色

  • 針對觸控螢幕設計的交互,滑鼠鍵盤次之
  • 提供螢幕虛擬鍵盤
  • RAM佔用極低,低於1GB
  • 不吃效能,只要GPU 3D正常,即使在很糟糕的處理器也能跑起來,在性能超爛的PinePhone (Allwinner A64)、PineTab 2 (Rockchip RK3566)、Surface Go 2 (Intel Pentium 4425y) 動畫依然十分流暢。
  • 粗估性能佔用資源接近Sway
  • Phosh對想要純觸控操作的用戶非常有用,大部分手機都沒有鍵盤滑鼠,所以跑KDE Plasma、GNOME之類的傳統Linux桌面用起來就會很尷尬,而針對觸控手勢特別優化過的Phosh便是一個極佳選擇。

技術要點

  • 使用名為Phoc的Wayland合成器,基於wlroots寫成,Rust語言編寫。
  • 使用一部分GNOME技術,可以吃到GTK主題
  • 可以選擇搭配Systemd或OpenRC使用
  • PipeWire管理音訊
  • ModemManager管理行動網路
  • 用feedbackd處理鍵盤震動事件,iio-sensor-proxy處理螢幕旋轉

操作模式

為了符合行動裝置的使用模式,所有程式的視窗都會最大化,點選開啟,向上滑動關閉

還有一個觸控鍵盤,會在應該打字的地方自動彈出來

接上鍵盤,開啟Dock模式後可以移動視窗,這個時候他會變成stacking compostior,視窗可以允許重疊在一起。

APP商店生態

Linux mobile系統設計只有少部份是immutable distro,因此root可寫。

依賴各個發行版打包的deb或rpm包。容易產生碎片化與版本不一的問題。

如果要distro-agnostic,那就使用Flatpak或Snap。

Phosh開發者推廣libhandy,讓GTK程式能針對觸控裝置最佳化。Flathub的GTK4的程式,很多都有針對各種大小螢幕的變化設計了。

Linux上的Android相容層

如果真的沒辦法,透過Waydroid跑Anroid LXC container

中文輸入法?

長按底部藥丸,Phosh鍵盤就跳出來

目前問題是沒有中文鍵盤

好在它允許模擬實體鍵盤事件

所以可以用觸控鍵盤打Fcitx5的拼音,這有點克難啦

Phosh提供了Linux行動裝置一個能夠daily-driving的桌面。

目前的問題是,Phosh這個桌面太精簡,純功能導向

THE END

如果有工具是為它開發的那就可以沿用,例如WayVNC遠端操控手機,或者用wlr的XDG Desktop Portal進行螢幕截圖