Preface 前言

記憶中的 Linux

我從國小就開始接觸 Linux了,在慢慢弄懂 Linux 體系、架構以後,對 Linux 的高可自訂性又愛又恨。後期 Linux 主要拿來當作伺服器網頁開發,將桌面環境拿來實際工作的嘗試不是沒有,但忙於課業,並沒有額外心力抓 Bugs, 因此總是以心力交瘁告終。

但是習慣 Unix 架構,所以想找一個較穩定的桌面環境,至少可以兼顧學業、工作,所以就在 2013 年買了 Macbook Air 跨入頻果體系至今。

對 Linux 桌面環境的看法一二

畢竟是軟體開發的外行人,一些對 Linux 桌面發展的想法也略顯鄙陋。不過覺得 Linux 桌面環境開發的問題,其實是來自於開放原始碼開發的社群。不同的元件,有不同個體的開發者或者團體在維護,彼此之間的想法並不總是一致,甚至會碰到意見相左吵起來懸而未決的情況。

再來,Linux 的構成元件分散成上中下游許多部分,很難要求各元件的開發團隊為了其他多到數不清的元件做完整的相容性測試,所以使用者變成要有一定 Debug 的能力。某種程度上影響了 Linux 桌面的普及程度。

Linux 社群本質上是來自世界各地,有活力但是鬆散,沒有約束力自由開闊的。想要貢獻什麼隨時可以加入或退出,也隨時可以不服別人想法自己重弄一個。在 distrowatch.org, 可以看到無數的發行版,每套發行版可能都有不一樣宗旨想法。你可以說這跟企業相比,弄出來的成品沒有長期支援的保障,但這並沒有對錯是非之分,正是 Linux 社群的特性,造就了如今 Linux 的風貌。

與 Windows, macOS 相比的劣勢及進展

筆者覺得跟完整的作業系統相比,Linux 要發展桌面系統有幾個劣勢:

  1. 顯卡廠商的支持
  2. UI 設計的 Guideline, 像蘋果的 Human Interface Guidelines
  3. 完整的 Debug 及測試團隊,交付到使用者端時降低問題
  4. 成熟的應用程式生態體系

以 1 來說,近年來 Nvidia 還有 AMD 對 Linux 桌面的支持都在改進當中,已經不像以前那麼零落了。而第三點來說,就變成要考慮各發行版的特性,有的 Linux 桌面發行版是有完整社群團隊支持的,並且有明確宣套件從測試到進入正式發行的測試週期時程的。

第四點,必須說,由 Chrome, Node.js 的發展,Web App 還有 elctron framework 拉近了 Linux 應用與其他作業系統的距離(這一點 macOS 也有受惠),許多輕度的應用甚至透過瀏覽器就可以了。

再探 Linux - 從 Ubuntu 20.04 開始

新組裝了一台 PC 想偶爾玩個單人 PC 遊戲,mac mini 拿去辦公室工作用途,在家裡的主要工作環境又不想使用 Windows, 所以興起了再度使用 Linux 的念頭。

為了避免麻煩,於是選了 Ubuntu 20.04, 想說有企業支持的長期穩定發行版,應該很穩定吧?

但是用了一段時間,我卻還是更換了作業系統重新安裝,後來檢討,其實 Ubuntu 沒有大問題,只是小系統 UI bug 影響細節的觀感。

比如說,習慣 macOS 的相反滾輪捲動方向 (Reverse Scrolling),在系統設定啟用卻懊惱的發現每次重新開機都會跳掉。

預設的 Gnome 桌面太過樸素,雖然想說服自己習慣就好,但是仍然想動手改一改,結果發現裝太多 Gnome Extension 桌面就會出現各種奇怪的 bug。

綜合結果不太滿意,所以決定更換 Manjaro

Manjaro KDE - 自作主張的混沌

從這時候開始,筆者違背了一開始的初衷:降低維護成本,專注在生產用途 結果又開始花大把時間玩轉了一些實驗性功能,但是卻沒有換來太好的一致性體驗。

Manjaro 預設的GUI安裝程式就挺好用的了,但是為了想使用 Btrfs 和他的快照功能,所以就使用了 manjaro architect 從命令列構建。Btrfs 的 snapshot 功能很方便,但是卻導致了 grub-reboot 的記憶功能失效,導致我不能重新開機回 Windows, 下次再自動切回 Windows。

對 Btrfs 磁區組成結構不熟,在出事要救時,也要先花一些時間鑽研才知道怎麼下手。

另外 KDE 的桌面功能十分完整,看得出來想包山包海的發展路線,但是設定太多,又有隱含的 bug, 常常切換檢查會覺得很麻煩,另外 KDE 跟 Nvidia 似乎不太合,會有畫面畫面渲染的 bug。同時 Wayland 也是完全開不起來。

後來努力堅守,也裝了 i3-wm 這個平鋪式管理視窗堅守了一陣子。i3-wm 管理視窗習慣以後是真的很順手,而且佈局時,先思考這個視窗的用途,也有助於腦袋清醒思考。然而,i3-wm的問題是,他畢竟是一個獨立於各桌面系統開發的外來物,所以 KDE, Gnome 各桌面系統內部各元件整合時,並不會考慮與 i3-wm 的相容性。用久了,還是明顯可以看到部分系統視窗在 i3-wm 底下的奇怪行為。

Manjaro Gnome - 預設安裝的美好

前面所述,折騰許久還是覺得系統有大大小小的不完美之處。後來心一橫,乾脆把 Manjaro 推倒重裝,全部用 GUI 安裝程式的預設值,也不管 Btrfs 格式了。

桌面選擇 Gnome, 選擇中文語系,然後就一路安裝到底。

結果很驚訝地發現,用起來還挺順手,比對之前透過 Manjaro architect 安裝明顯好用許多。

我想主要原因有以下:

  1. manjaro gnome 預設有安裝一整組好用的 Gnome Extension, 補足了原生 gnome 桌面的不足
  2. 提供的 Layout Switcher 可以依照需求切換 Dock 位置,也有極簡化的平鋪 (Tiling) 風格。
  3. Gnome 風格的系統設定比較簡單,不像 KDE 那般繁複。

當然也不是沒有缺點,Gnome 桌面的缺點,是許多功能要依靠 Extension 來補足,但是 Extension 之間的相容性不見得很好,裝多了,在調整各 Extension 設定時衝突到就容易導致桌面崩潰。就算是 Manjaro 預設的調多設定也是會這樣。

至於拋棄 Btrfs 後的備份方案…就直接定期 rsync /home 資料夾到 NAS 資料夾裡面去了。

Manjaro Gnome 最讓我驚奇的是,他有內建 Pop OS! 的 Tiling Window extension, 直接提供類似於 i3-wm 的功能。之前寫 i3-wm 寫得要死要活的文字設定檔現在看起來都顯得很浪費時間。

結尾

總之,我現在停留在 Manjaro Gnome 桌面環境了,至少內建的桌面 extension, 程式碼編輯器、瀏覽器、VMWare 裝一裝也日常也還可以用。Manjaro 雖然承襲自 Arch Linux, 但是穩定性不會三天兩頭就炸掉。