CachyOS 遷移心得 2: 周邊工具大換血


我 CachyOS 用了一週後寫了 CachyOS 遷移心得 1,放到現在又過了一週,我有點太會拖了,不好意思 T_T

那這篇文章我要來說明我這一輪系統替換前後也替換了哪些東西,因為替換的有點多,所以可以統整成一篇文章,裡面包括已經替換跟計劃要替換的部分。

替換方向

整體替換方向,我會這麼統整:更精簡、更直接

精簡的點是這些工具在功能或者架構上去蕪存菁,甚至有點「UNIX」化,也就是

Do one thing and do it well.

中間抽象層也變得更少,同時換來更高的運作效率。
但是也因為東西更少,所以有些功能反而需要自己多花時間設定。

除此之外也意外地往更隱私的方向靠攏,這個就比較屬於順水推舟的部分。

網頁遊覽

替換起因

這其實有點連鎖效應,起因是我看到 Ivon 討論 Brave 批評 DuckDuckGo 的行銷,我當初安裝 Brave 其實就是正好 Chrome 正在封殺 Adblock,所以跑來 Brave 使用更原生的擋廣告方案,這篇貼文除了讓我想起 Brave 的賣點就是隱私。
然後 Brave 的行銷雖然我偶爾也會看,看他們 Diss MS Edge 其實蠻好笑的 (Edge 自從推出先買後付後又開始變肥了),不是剛好戳到 Edge 痛點,就是直接 Diss Windows (當時正好是 25H2 Copilot 讓大家聞風喪膽的時刻)。

只是這次批評 DDG 我覺得就有點過分,畢竟 DDG 確實有在隱私上面做事情,只是每次看到他的行銷不是 Diss 其他瀏覽器就是 Diss 其他搜尋引擎,這就很糟糕了。
跟更不要說留言討論看起來 Brave 也沒多好,特別是 Web3 的部分,因為我平常不用所以沒注意,一看才發現真的很糟,看了留言才想起 Brave 的賣點,也就是無廣告和隱私,同時底下還說了 Helium 作為 Brave 的 fork 被告,以及 SearXNG 可以透過 MCP 丟給 Local AI 讓我注意到了這兩個東西。

Brave -> Helium

那我目前查了一下,Helium Browser 看起來沒有被 Brave 告,查到的是 Nova Labs 的 Helium Network 被美國證券交易委員會 (SEC) 起訴。
那論 Stars 數,Helium 作為新興瀏覽器其實蠻亮眼的 (到目前有 16.4k stars),經營了快 10 年的 Brave 也才 22.7k stars,可見 Helium 即使還沒出正式版就已經開始變得熱門了。

開發團隊只有兩人,是個非常小的規模,但持續開發與維護至今。

Helium 的賣點其實跟 Brave 差不多,也是注重隱私和擋廣告的部分,但跟 Brave 不同的是,Brave 本身有 Brave Shield 整合在整個瀏覽器內,而 Helium 則是內建 uBlock Origin 到瀏覽器裡面,並視為一個擴充,所以不想用你也可以關掉。
除此之外,他就是把整個 Web3 都拔掉,僅僅只有瀏覽器的功能,但跟大部分瀏覽器對比多的功能是他支持 !Bang,也就是 !w 就是在維基百科搜索,!gh 就是在 GitHub 搜索這類功能,這個功能一般都是做在搜尋引擎(比如 DDG 和 SearXNG)上,算是很獨特的特性。
所以整體而言,我自己用下來,這是一個非常「UNIX」的瀏覽器,乾淨到不行,uBlock Origin 也被當作一般的擴充去控制。

那 Helium 在 CachyOS 中也有被收錄,可以直接用 Shelly 安裝:

安裝完並設定好讓我直接傻掉,我從沒見過這麼乾淨的瀏覽器首頁 (Chrome 都會有一些 Google 或者 Chrome 的元件),看圖你就會知道有多乾淨了:
Helium setup done

版面配置調整成垂直分頁後:
Helium vertical tab layout

擴充預設也是只有 uBlock (Pixiv Fanbox Downloader 是我自己後來安裝的):

如果你要安裝擴充,他沒有按鈕可以去擴充商店,但既然同為 Chromium 系瀏覽器,那他也可以去 Google Chrome 擴充商店去安裝瀏覽器擴充,只是就變成要安裝擴充你要自己用搜索引擎搜索。

那因為 Helium 太乾淨了,甚至連翻譯功能都沒有內建,所以要自己安裝翻譯插件,比如 Google 翻譯,或者 DeepL (我兩個都有裝)。

Google -> DuckDuckGo

這一點就算是順水推舟吧,我個人沒有這麼反對 Google ,只是 Helium 在 Setup 中把 DDG 和 Kagi 放在最上面,作為最推薦的搜索引擎,整個介面他提供了 2 (隱私保障) + 2 (隱私保障存疑) + 2 (沒有隱私保障)可以當預設的選擇,我就想說那借機換一下搜尋引擎,Kagi 雖然品質更好,但是要訂閱,所以我就選了 DDG 作為預設。 Helium setup default search engine

然後我沒想到這個舉動意外讓我有個收穫,那就是 DDG 可以證明我的 Blog 目前寫的選題都是還不錯,網站運作也是正常的。
Google 這邊不知道爬蟲怎麼回事,只會瘋狂爬我第一次提交 Sitemap 時的網頁,然後我的 Tags 頁面一直被瘋狂爬取,新文章都不爬,比如我的第一篇 Blog Post 上次檢索日期是 5/17,但是檢索資料庫一直沒有我的新文章,我要吐了。
反觀 DuckDuckGo 我目前最新能看到的文章是 Ubuntu 批評文和 NTFS 移除文,這些在搜索排名都是第一,對比 Google 連個影子都沒有,看來我當初不用 Google 是對的。

這裡附上 Ubuntu 爭議文的 DDG 搜尋截圖:
DDG search Ubuntu dispute result

有關 Helium 的抱怨

Helium 雖然乾淨輕量,但也不是沒有缺點的,首先是在垂直分頁模式,如果你把分頁收起來他不會有 Hover 展開的效果,在會播放音訊的網頁上老是點到靜音 (Youtube 重災區),然後我就要展開才可以解除靜音。
但你說他們沒能力做 Hover 吧,他們又有「禪定模式」,可以把網址列和分頁欄都收起來,不得不說看起來挺酷的,但我不知道穩不穩定,上面標注實驗性,所以我暫時沒有使用。

禪定模式關閉:
Helium Zen disable 禪定模式開啟:
Helium Zen Mode Helium Zen Mode Tab Hover Helium Zen Mode url hover

那不開啟禪定模式的情況下,你要麼點左上角的展開或收折分頁,不然就是 Helium 預設開啟 Ctrl + S 可以切換,因為大多瀏覽器預設 Ctrl + S 是儲存網頁,所以這個快捷鍵我還不習慣。
而且這樣會直接改變 @media 寬度,導致網頁要重新更改 Layout 和渲染,有點麻煩。

剩下的就是前面說過的,沒有內建翻譯和需要自己去搜尋擴充商店去下載擴充,算是小問題。

整體而言,我認為至少可以說是瑕不掩瑜的。

Code editor

替換原因與背景

這個其實是在用 CachyOS 就已經先換過了,只是剛好在重灌的前一、兩週左右替換,所以我就一起拉上來一起說,而且 Code editor 也對我而言蠻重要的。

以防你不知道,VS Code 本身其實是一個非常輕量的 Code editor ,只是因為擴充可以讓 VS Code 變成媲美各種專業 IDE 的存在,成為了可以非常輕,只專注在寫 Code,也可以裝上各種套件以及寫些設定配合系統,搖身一變成為 IDE ,只是編譯器或者 Python 執行環境之類的東西是使用者需要獨立安裝的。
也因為 VS Code 支援各種語法,同時那有微軟經營許久的擴充商店,讓 VS Code 可以今天當 C++ IDE,明天寫網頁。
VS Code 的好用程度,我相信看我 Blog 的 10 個有 9 個都是拿 VS Code 寫程式,我甚至連筆記和上個月 Blog 都是在上面寫的。

那這麼重要的東西為什麼要替換?

原因是 AI 爆發後,微軟在 VS Code 上面新增 Copilot ,至此 VS Code 的常駐負載大幅上升,早在 Cursor 時期我就看過有人 VS Code 串大模型可以吃到 4G+ 了,我自己在使用的時候是不開 Copilot 的,這種情況下常駐記憶體占用 800MB+ 起跳,隨著時間推移和開啟的檔案數量增加,可以吃到 1.2~1.5G ,同時年底開始,微軟對 VS Code 的更新也把重心放在 Copilot 上,VS Code 本身功能的維護反而沒幾個。

那你可能說「你只是討厭 VS Code 上的 Copilot 而已對吧?那怎麼不用 VSCodium?」
因為這個才是主因,那就是 Electron,沒錯,我非常討厭 Electron 這個框架,因為他就是把 App 包裝成 Chromium 瀏覽器,我每次打開一個 App 就是一個 Chromium 瀏覽器然後再來顯示網頁,WTF?
一個 Chromium 瀏覽器初始 overhead 就是 7~800MB 起跳欸?每個 App 都這樣搞,難怪我 32G RAM 還會老是 OOM,而且 Chromium 也在隨著時間推移變肥。

所以 VS Code 在 Chromium 變肥以及融入 Copilot 導致原始負載和自身體積變得異常龐大,更不用說每個擴充又有自己的 overhead ,情況會根據場景複雜度以及時間越來越糟。

所以對我而言,最根本的解法就是換一個不是 Electron 寫的 Code editor ,VS Code 的開發重心放在 Copilot 是額外原因,但不是主因,而且用 Copilot 也會導致開銷增加這件事跟 Electron 脫離不了關係。

非 Electron 但又跟 VS Code 一樣靈活的 Code editor?

如果只是單純的 Code editor ,那 Windows 有 Notepad++,Linux 這裡無論單用 vim,還是 KDE Plasma 內建的 Kate 都是個至少堪用的選擇,但如果你要把泛用度跟靈活性拉到 VS Code 的水準就很難了,帶著這個問題把目光看到 CLI 應該會有人提議 NeoVim 和 Emacs 了。

Emm…討厭 Electron 是討厭,但我沒有到完全排斥的地步,如果我完全排斥那你還讓我用不用 Discord 和 Stoat chat (前身是 Revolt,開源版 Discord) 阿?他們的 App 前端都是用 Electron 阿。

好,假如 VS Code 太肥了,我光用 VS Code 就會 OOM,那沒有 VS Code 的直接競爭者出現之前,我只有 NeoVim 可以選,因為我被 VS Code 弄得太慘,我必須學會他,但 NeoVim 要配置一堆東西,我比較懶惰跑去裝 LazyVim ,但我還是有一堆快捷鍵要學,而且不少東西還是要自己配。
花了一週後,我配完了 NeoVim + LazyVim,也安裝了 Astro 的 LSP 和 TreeSitter 插件,然後除了為了大學課程才會偶爾寫寫 Python 和 Java 以及三件套,剩下大部分時間我還是在寫 Blog 跟用 Claude Code 幫我設定 Blog,吃飽撐著,拿大炮打小鳥?
Emacs 的複雜度更不用說了,花個 1、2 個月都在設定 Emacs 也不是問題,更不要說還有小拇指職業病問題!

作為一個 Vim 90%+ 時間在 Insert 模式和不到 10% 在 Visual 模式的人以及給我一個 Notepad 就能寫 Markdown 的人,我還不如用 Kate + Vim,只是體驗差了點,開發和寫作環境被切得比較零散而已。

用 GPUI 寫的 Code editor

但好巧不巧,前幾年 Atom 的原班人馬也覺得 VS Code 和 Electron 太肥了,出來寫了一個新的 Code editor,這個 Code editor 那就是「Zed」。

說起用 Zed 就不得不提到他的底層框架:GPUI
GPUI 其實有點類似 Electron,都是一個跨平臺的 GUI 框架,但是 Electron 是直接包整個 Node.js 和 Chromium 到一個專案內,編譯也是,而 GPUI 是 Zed Industries 團隊專為 Zed 開發的 GUI 框架,他同樣也能跨平臺,但是他的渲染 API 走的是 Metal (macOS)/DX11 (Windows) 和 Vulkan (Linux),因此他更像是 2D 的遊戲引擎那種感覺,像素怎麼畫由 GPUI 決定,但是底層根據系統會 call 對應的圖形 API。

也因為這個特性,Zed 在圖形渲染上非常快,他們的 Demo 就是 120Hz 切換編輯的 File Tab,如果你現在手上同時有 VS Code 和 Zed,你會發現切換 Tab 除了 VS Code 會比較卡以外,反白同樣 Zed 明顯更順,並且 Zed 的延遲更低,更跟手 (跟手的感覺比較細微,可能常打遊戲或需要高反應遊戲才有感覺)。

然後因為 Zed 和 GPUI 沒有 Electron 那一堆 Node.js 和 JS Runtime,所以整體占用也不大,他的記憶體占用更多是 Tree-sitter 、LSP 或者其他空間換時間的操作而得到的占用,做了速度優化占用還是比 VS Code 平日開銷還要小很多。
擴充用的也是 WASM 而不是 JS 去寫,所以擴充加一加自然開銷增加的也是不大,只是 WASM 因為是 sandbox 環境,所以這進一步讓 Zed 的生態不大。

Zed 的插件生態

但是講到生態,VS Code 那堆擴充插件也是讓人難以割捨與離開的原因,除了微軟自己就有一堆好用的擴充,各路大神做的零零總總的擴充加一加,用的時候愛不釋手,要離開的時候令人難以承受。

我自己離開 VS Code 的時候也因為沒有了 Background 可以改 (VS Code 可以安裝 Background 擴充來更改背景圖),所以也有點難受,前面說過 WASM 讓 Zed 的擴充能做的事情很有限,因為 VS Code 的 Background 擴充的原理是注入 CSS,所以在 Zed 上實現不了。
WASM 帶來的先天限制,加上 Zed 作為新興 Code editor 讓擴充生態雪上加霜,就算這樣我為什麼還要跑來用 Zed?

核心訴求

來盤點一下我用 Code editor 的基本要求:

  • 可以編輯 Markdown 與 Highlight
  • 主流語法 Highlight 支援
  • 能夠開發 Astro
  • 能夠開啟終端機
  • 有 SSH 整合
  • 可以控制 Container (額外)

這些要求在 Zed 都能實現,Zed 原生整合 SSH 甚至對於 Container 控制也有簡單實作,主流語法和 Markdown 不用說,肯定支持。
至於很重要的 Astro,Astro 也有替 Zed 開發擴充,可以直接安裝就能識別 .astro 和處理 Astro 開發環境。

這樣看下來,我除了不能替換 Background 以外,我可以享受更小的 Code editor 開銷以及更跟手的開發體驗,那太棒了,這是個減少電腦上 Electron Apps 的機會,有什麼不轉的理由?

Zed 安裝與使用心得

Zed 預設也是有被收入到官方儲存庫裡面的,直接用 Shelly 就可以安裝(居然還是 x86-64-v4 指令集編譯):

那大概上個月底到這個月初 Zed 正式迎來 1.0 正式版,所以沒什麼毛病了,我開始用的時候以正好是正式版前的 Zed ,用沒多久更新剛好就是正式版了。

不過到 CachyOS 剛安裝的時候,會有 Markdown 預覽時有圖片排版很奇怪的問題,但是上次更新後 Zed 就把這個問題修掉了,所以 Zed 目前也沒什麼問題。

然後 Zed 在處理 Markdown 預覽的時候,不會渲染 HTML 語法,蠻奇怪的,會在 Markdown 裡面用 HTML 語法 (比如<br/>)的要注意一下。

Zed 有 Save 時的自動排版功能,比如 Markdown 會把讓底部儲存時固定只有一行空行 (沒有會補,超過會刪),或者 TypeScript 會讓縮排統一成一格是兩格空白鍵,好不好用見仁見智,我個人覺得有時會有點麻煩,但大部分時候還蠻好用的。

所以除了這幾個缺點和剛剛說的不能讓 Background 改成自己的圖以外,Zed 的優點我前面也講過了,GPUI 框架渲染效率很好,操作很跟手,overhead 更小,如果你也覺得 VS Code 太肥然後 Zed 能做的事情也覆蓋到你的需求,我很建議轉來 Zed 使用。

虛擬化平臺

虛擬化平臺對我而言也很重要,畢竟我也是玩虛擬機出身的嘛。

我是個連在 Linux 都是用 VMware Workstation Pro 的邪教,除了路徑依賴,還有個原因就是我的 Virt-manager 初體驗是 BlissOS,給我非常不好的印象,那怎麼這次來到 CachyOS 還要換掉 VMware?甚至不用去官網下載 .bundle,在 Arch 系列的發行版甚至有 AUR 可以直接安裝欸!

主要原因是 VMware 對於 Kernel header 比較敏感,像我這兩周使用也至少更新了 3 到 4 次 Kernel 相關組件,包括 Header ,這在 VMware 上面很容易爆掉,加上我在大學實驗室有在管 Proxmox VE,所以最保險的方法就是換成 KVM/QEMU,避免用 VMware 還要追版本的情況。

但前面不是說我對 Virt-manager 有恐懼嗎?那我要換什麼?我在家有 Proxmox VE?並沒有,我也希望我有額外主機可以讓我跑 PVE,那這樣我還能選誰?如果看向 CachyOS 安裝軟體,上面列出的虛擬化平臺也就三個,VirtualBox 不是 KVM,劃掉,那肯定就是 gnome-boxes 了對吧?

我只能說…不是,我還是安裝了 Virt-manager,為什麼?

因為 gnome-boxes 能做的事情很有限,支撐不起我會用 VMs 搭起一個模擬的網路環境這件事,而且我事後查詢,因為 BlissOS 是 x86 Android ,這個系統本身就非常少見,所以在 Virt-manager 上他是個非常邊緣的案例,所以很不幸的,Virt-manager 跑 BlissOS 會有比較多奇怪的事情發生,比 KVM/QEMU 跑 Windows 還要多很多。

同時 gnome-boxes 能做的事情太少,所以一旦有認真玩 VM 的需求 (比如底層控制、VFIO 或者網路模擬),那 Linux Desktop 上,只有 Virt-manager 可以選。

但我的需求也不是很簡單的事情,VMware 能很輕鬆的做到,但在 Virt-manager 很多要自己設定(而且 CachyOS 上安裝 Virt-manager 需要額外設定很多東西),所以我把 VMware 遷移到 Virt-manager 需要考量的點獨立成一篇文章,這篇文章我會著重在 Virt-manager 的設定以及我該怎麼還原 VMware 的哪些功能。

這裡就附上 Shelly 安裝 Virt-manager 的截圖吧:

其他隨著工具鏈換血一同的規劃

瀏覽工具:SearXNG 和 LibreWolf

這個也是在 DDG 那篇貼文出來時,同一時間看到的,SearXNG 可以幫我用多個搜索引擎來尋找網路,同時保有匿名性,所以不用擔心個人化導致搜到比如 Google 或者 Bing 給你「可能」有興趣的結果,從而導致搜索失準,或者要尋找不同立場的文章會比較困難。

既然可以接上多個搜索引擎,那代表一個拒絕我,我還有另一個可以引擎可以用,所以 SearXNG 在搜索網路的部分有避免單點故障的能力,SearXNG 搜尋完後會根據引擎設定去幫我們篩選出搜尋到的資料並排列,所以引擎怎麼設定在 SearXNG 很重要。
除此之外 SearXNG 跟 DDG 和 Helium 一樣,支持 !Bang,所以一樣可以用 !command 來幫我限縮搜尋。

不過 SearXNG 如果真的要用,最好要 Self-host ,不吃資源,一個 Docker 或者 LXC 就可以跑,只是我目前沒時間(加上有點懶惰)所以沒弄,暫時放在計劃裡面。

跟 SearXNG 同時看到的,還有 LibreWolf。
LibreWolf 因為 Firefox 前陣子隱私條款更新的原因,所以有人 fork 了 Firefox,然後授權和實作往更隱私的方向發展,並且作為更輕量的 Firefox 選擇。
如果我需要備用瀏覽器的情況下,我會選擇 LibreWolf 跟我的 Helium 作為互補,但我個人比較少會同時使用兩個瀏覽器的狀況,所以目前只是在這裡提個一嘴,順便推廣 LibreWolf。

補充:額外一週的使用心得

既然我多用了 1 周,那我可以說明一下這一週的心得,作為前一篇的額外補充。

首先是更新頻率,因為 CachyOS 是滾動更新,所以可以想像到套件是會一直推出和更新對吧?只是沒想到這個速度是每天都有,所以我系統的更新頻率幾乎是「每天」,有時候會想刻意減緩更新頻率然後一打開更新清單,不是突然一大包 (有些桌面套件會這樣),就是看到 Kernel 和 Kernel-header 更新,後者我看到基本一定會更 (尤其這陣子 Copy Fail、Dirty Flag 等這些奪 root 漏洞家族突然爆一堆)。
5/25 難得又看到了一次 Arch 新聞,只是除了 iptables 那個我比較好奇寫了什麼以外,剩下的又剛好跟我沒關
哎呀,AMD 全家桶真爽,使用 Mesa 當一等公民,NVIDIA 還要擔心 DKMS 失效,不過這則 Arch news 讓我想起幾個月前因為 NVIDIA 宣佈 GTX 家族停止支援,因此 Arch 替換了 NVIDIA Driver 依賴名稱然後一堆在 Arch 的 NVIDIA 顯示卡使用者哀鴻遍野,一堆人更新後重開,得到了黑畫面的 Arch,謝謝 NVIDIA 顯示卡定價太貴讓我左轉 AMD 避免這個問題。

然後前幾天我不是也寫了字體調整相關的文章?由於工作列需要登出再登入才可以套用字體更新,所以我有用過登出,然後碰到過登出又登入時不會顯示 KDE Plasma 登入載入畫面,卡在黑畫面。
這時需要 Ctrl + Alt + F3~6 (F1 黑畫面和 F2 是 DE ,不確定為什麼) 去切換到純終端機畫面,輸入 sudo systemctl restart display-manager 就會看到登入畫面,這時再度登入就正常了,目前測試下來是登出後馬上登入會這樣,建議不要一登出馬上就登入,然後終端機用一個少一個,所以 F1~F6 都不能切換到只有黑底灰字的終端機時,乖乖重開機吧。

剩下的缺陷就是我在 Pixiv 對作者名字用 Ctrl + C 然後在 Dolphin 建立資料夾 Ctrl + V 時候會失效,他會把新建資料夾變成空白名字,而不是貼上文字。
但是用右鍵複製再到 Dolphin 貼上或者我建立時不改名,資料夾建立後再改名是沒問題的,不知道是哪裡出了問題,或者是因為作者的字在網站上本身就是 Hyper-link 然後他會跟著複製然後到了 Dolphin 就出錯這樣。

除了這些 Bug 外,這一週也是無事發生,意外地蠻穩的,當然也跟我系統幾乎沒裝東西可能有關。

Reference

FB Post: Ivon 討論 Brave 批評 DDG GitHub Repo - Brave browser GitHub Repo - Helium browser GitHub Repo - Zed/gpui