<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>圖形桌面工具 on Tarragon</title><link>https://tarrragon.github.io/blog/linux/tools/gui/</link><description>Recent content in 圖形桌面工具 on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Thu, 02 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/linux/tools/gui/index.xml" rel="self" type="application/rss+xml"/><item><title>桌面環境選型：整合度與組裝自由度的取捨</title><link>https://tarrragon.github.io/blog/linux/tools/gui/desktop-environment-selection/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/linux/tools/gui/desktop-environment-selection/</guid><description>&lt;p>桌面環境（desktop environment，DE）是一整套讓你能用圖形介面操作 Linux 的元件集合——它同時提供視窗管理、面板/工作列、應用啟動器、設定中心、通知、檔案管理員、鎖屏這些功能，並保證它們彼此整合、開箱即用。這跟只負責「畫視窗、管理視窗位置」的 window manager 或 compositor 是不同層次的東西：DE 通常內含一個 window manager，再把上面那一整圈桌面服務組裝好交給你。理解這個責任邊界，是選型的起點——你在選的不是「哪個比較漂亮」，是「別人幫你整合到什麼程度、你自己要組裝多少」。&lt;/p>
&lt;h2 id="選型的真正軸線整合度-vs-組裝自由度">選型的真正軸線：整合度 vs 組裝自由度&lt;/h2>
&lt;p>桌面環境的選擇，核心不是「輕或重」，是&lt;strong>別人幫你整合好多少、你保留多少自己組裝的自由&lt;/strong>。這條軸線的一端是 GNOME 這種高整合方案：面板、設定、通知、檔案管理全部設計成一致的整體，你開機就有一台能用的機器，代價是想改動它預設的行為要對抗它的設計哲學。另一端是 Hyprland 這種 compositor：它只負責畫面與視窗，面板、啟動器、鎖屏、通知你全部自己挑自己接，代價是要花時間組裝、每個元件都要自己維護。&lt;/p>
&lt;p>「輕/重」只是這條軸線的副產品。高整合方案因為要保證所有元件協同，通常帶較多常駐服務、吃較多記憶體；自己組裝的方案可以只裝你要的，所以輕——但如果你把面板、啟動器、通知、鎖屏一個個補齊，最後的資源佔用未必比一個現成 DE 省多少。所以判選型別問「哪個輕」，要問「我想花多少時間在組裝與維護、換到多少客製自由」。&lt;/p>
&lt;h2 id="五個主流選項的定位">五個主流選項的定位&lt;/h2>
&lt;p>下表是常見選項在「整合度」這條軸線上的位置與代價。每個選項底下有延伸說明，因為同樣一句「適合客製」在不同方案裡的實際體驗差很多：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>方案&lt;/th>
 &lt;th>定位&lt;/th>
 &lt;th>整合度&lt;/th>
 &lt;th>資源&lt;/th>
 &lt;th>客製自由&lt;/th>
 &lt;th>預設顯示協定&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>GNOME&lt;/td>
 &lt;td>高整合、意見鮮明的現代桌面&lt;/td>
 &lt;td>高&lt;/td>
 &lt;td>較高&lt;/td>
 &lt;td>低（要對抗設計）&lt;/td>
 &lt;td>Wayland&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>KDE Plasma&lt;/td>
 &lt;td>高整合但高度可調&lt;/td>
 &lt;td>高&lt;/td>
 &lt;td>中&lt;/td>
 &lt;td>高（內建設定深）&lt;/td>
 &lt;td>Wayland&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>XFCE&lt;/td>
 &lt;td>輕量傳統桌面&lt;/td>
 &lt;td>中&lt;/td>
 &lt;td>低&lt;/td>
 &lt;td>中&lt;/td>
 &lt;td>X11&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Cinnamon&lt;/td>
 &lt;td>傳統桌面隱喻、易上手&lt;/td>
 &lt;td>中高&lt;/td>
 &lt;td>中&lt;/td>
 &lt;td>中&lt;/td>
 &lt;td>X11&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Hyprland（WM）&lt;/td>
 &lt;td>自己組裝的平鋪式 compositor&lt;/td>
 &lt;td>無（自組）&lt;/td>
 &lt;td>最低（裸）&lt;/td>
 &lt;td>最高&lt;/td>
 &lt;td>Wayland&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="gnome把選擇替你做完的現代桌面">GNOME：把選擇替你做完的現代桌面&lt;/h3>
&lt;p>GNOME 的定位是「一套有明確設計主張的完整桌面」——它預設一個不同於 Windows/macOS 的工作流（頂欄 + Activities 總覽 + 動態工作區），並且刻意收斂可調選項，讓多數人不用設定就有一致體驗。從 Windows/macOS 轉來、想要「裝好就能用、不想折騰」的人，GNOME 是穩妥選擇：它的整合度最高，通知、設定、線上帳號、檔案管理彼此協調。&lt;/p>
&lt;p>代價在客製。GNOME 把很多設定收進 extension 或需要另裝 &lt;code>gnome-tweaks&lt;/code>（Arch：&lt;code>pacman -S gnome-tweaks&lt;/code>）才改得動的角落，想把它調成傳統工作列風格是在對抗它的設計方向，而 extension 又會隨 GNOME 大版本更新而失效。所以 GNOME 適合「接受它的工作流」的人，不適合「想按自己習慣重排一切」的人。資源上它是這幾個裡偏吃的，老硬體上會感覺得到。&lt;/p>
&lt;h3 id="kde-plasma整合度高但幾乎每個角落都能調">KDE Plasma：整合度高、但幾乎每個角落都能調&lt;/h3>
&lt;p>KDE Plasma 少見地同時做到高整合與高可調：它像 GNOME 一樣開箱即用、元件協調，但幾乎每個行為都攤在設定介面裡讓你改——面板可以拆解重組、視窗規則、快捷鍵、視覺效果都有深度選項。從 Windows 轉來的人會覺得它的預設隱喻（底部工作列 + 開始選單）親切，又保留了往下鑽的空間。&lt;/p>
&lt;p>它的代價不在資源（現代 Plasma 已相當精實，中階機器順暢），在「選項多到需要自己收斂」——設定深意味著你可能花很多時間在調整上。想要「高整合又想保留大量客製、但不想從零組裝」的人，Plasma 通常是比 GNOME 和 Hyprland 都平衡的落點。它的 Wayland session 近年已是預設且成熟。&lt;/p>
&lt;h3 id="xfce老硬體與要傳統要穩要輕的預設">XFCE：老硬體與「要傳統、要穩、要輕」的預設&lt;/h3>
&lt;p>XFCE 的定位是輕量而傳統：它給你熟悉的桌面隱喻（工作列、選單、系統匣），資源佔用在這幾個裡最低，且以穩定少變著稱——它不追新，多年來介面與行為變動小。老硬體、低階 VM、或「我只要一個不吵不鬧、能穩定工作的桌面」的場景，XFCE 是可靠預設。&lt;/p>
&lt;p>它的取捨是現代感與顯示協定：XFCE 目前仍以 X11 為主，Wayland 化在進行但尚未是預設，所以想要 Wayland 的分數效益（見下節）目前要往別的方案找。客製自由度中等——比 GNOME 開放、但沒有 KDE 那種深度設定，也沒有 Hyprland 那種完全重組的自由。&lt;/p>
&lt;h3 id="cinnamon給要-windows-式熟悉感的轉移者">Cinnamon：給「要 Windows 式熟悉感」的轉移者&lt;/h3>
&lt;p>Cinnamon 出身 Linux Mint，定位是把傳統桌面隱喻做得順手好上手——底部工作列、開始選單式的應用選單、系統匣，對從 Windows 轉來的人幾乎零學習曲線。它比 XFCE 現代一點、視覺完整度高一些，整合度也高（自帶檔案管理員 Nemo、設定中心、特效）。&lt;/p>
&lt;p>代價與 XFCE 類似：以 X11 為主，資源比 XFCE 略高。它適合「要一台立刻上手、像 Windows 但是 Linux」的工作機，不適合追求 Wayland 或極致輕量的場景。附帶一提，Cinnamon 的檔案管理員 Nemo 假設 Cinnamon 桌面服務在旁邊，把它單獨裝進裸 window manager 會拖進整套 Cinnamon 元件——這正是&lt;a href="../gui-file-manager-dependencies/">加圖形檔案管理員那篇&lt;/a>講的桌面環境耦合。&lt;/p>
&lt;h3 id="hyprland不是-de是你自己組一個桌面">Hyprland：不是 DE，是你自己組一個桌面&lt;/h3>
&lt;p>Hyprland 嚴格說不是桌面環境，是一個平鋪式（tiling）Wayland compositor——它只負責畫面合成與視窗排列，面板、啟動器、鎖屏、通知、桌布、音量控制全部不含，要你自己挑元件接上去。選它意味著你接受「從零組裝一個桌面」這件事，換來的是最高的客製自由（每個元件都你選、佈局規則完全你定）和最低的裸資源佔用。&lt;/p>
&lt;p>它適合「把配置桌面當成一種投入、想要一套完全長成自己樣子的環境」的人，不適合「只想裝好開始工作」的人。組裝過程本身有相當的學習曲線與維護成本——這也是為什麼本系列用一整個 &lt;a href="https://tarrragon.github.io/blog/linux/dotfile/06-rice-design/" data-link-title="模組六：桌面 Rice 設計" data-link-desc="Hyprland 桌面從能用到好看好用 — 狀態列、啟動器、通知、鎖屏、配色系統的設計與配置">Rice 設計模組&lt;/a>談「選了 Hyprland 之後怎麼把它組起來」。如果你還在「要不要走這條路」的階段，這篇就是那個模組的上游：先確認你要的是組裝自由、而不是開箱即用。&lt;/p>
&lt;h2 id="wayland-vs-x11選型時避不開的底層判斷">Wayland vs X11：選型時避不開的底層判斷&lt;/h2>
&lt;p>顯示協定是選型時的一條隱形軸線，因為它決定了一部分未來相容性。Wayland 是較新的顯示協定，設計上更安全、對高 DPI 與多螢幕不同刷新率支援更好，是 Linux 桌面的方向；X11 是沿用數十年的舊協定，相容性最廣但架構老舊、社群維護逐漸收斂到維持模式。GNOME、KDE Plasma、Hyprland 都已預設或原生 Wayland；XFCE、Cinnamon 目前仍以 X11 為主。&lt;/p>
&lt;p>實務判讀：如果你用 NVIDIA 專有驅動、或依賴某些只支援 X11 的老工具（部分螢幕錄製、遠端桌面、自動化工具），X11 方案目前可能更少驚喜；如果你要高 DPI 筆電、多螢幕混合刷新率、或想跟上長期方向，優先選 Wayland 方案。這不是非此即彼的道德選擇，是看你的硬體與工具鏈落在哪邊。&lt;/p></description><content:encoded><![CDATA[<p>桌面環境（desktop environment，DE）是一整套讓你能用圖形介面操作 Linux 的元件集合——它同時提供視窗管理、面板/工作列、應用啟動器、設定中心、通知、檔案管理員、鎖屏這些功能，並保證它們彼此整合、開箱即用。這跟只負責「畫視窗、管理視窗位置」的 window manager 或 compositor 是不同層次的東西：DE 通常內含一個 window manager，再把上面那一整圈桌面服務組裝好交給你。理解這個責任邊界，是選型的起點——你在選的不是「哪個比較漂亮」，是「別人幫你整合到什麼程度、你自己要組裝多少」。</p>
<h2 id="選型的真正軸線整合度-vs-組裝自由度">選型的真正軸線：整合度 vs 組裝自由度</h2>
<p>桌面環境的選擇，核心不是「輕或重」，是<strong>別人幫你整合好多少、你保留多少自己組裝的自由</strong>。這條軸線的一端是 GNOME 這種高整合方案：面板、設定、通知、檔案管理全部設計成一致的整體，你開機就有一台能用的機器，代價是想改動它預設的行為要對抗它的設計哲學。另一端是 Hyprland 這種 compositor：它只負責畫面與視窗，面板、啟動器、鎖屏、通知你全部自己挑自己接，代價是要花時間組裝、每個元件都要自己維護。</p>
<p>「輕/重」只是這條軸線的副產品。高整合方案因為要保證所有元件協同，通常帶較多常駐服務、吃較多記憶體；自己組裝的方案可以只裝你要的，所以輕——但如果你把面板、啟動器、通知、鎖屏一個個補齊，最後的資源佔用未必比一個現成 DE 省多少。所以判選型別問「哪個輕」，要問「我想花多少時間在組裝與維護、換到多少客製自由」。</p>
<h2 id="五個主流選項的定位">五個主流選項的定位</h2>
<p>下表是常見選項在「整合度」這條軸線上的位置與代價。每個選項底下有延伸說明，因為同樣一句「適合客製」在不同方案裡的實際體驗差很多：</p>
<table>
  <thead>
      <tr>
          <th>方案</th>
          <th>定位</th>
          <th>整合度</th>
          <th>資源</th>
          <th>客製自由</th>
          <th>預設顯示協定</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GNOME</td>
          <td>高整合、意見鮮明的現代桌面</td>
          <td>高</td>
          <td>較高</td>
          <td>低（要對抗設計）</td>
          <td>Wayland</td>
      </tr>
      <tr>
          <td>KDE Plasma</td>
          <td>高整合但高度可調</td>
          <td>高</td>
          <td>中</td>
          <td>高（內建設定深）</td>
          <td>Wayland</td>
      </tr>
      <tr>
          <td>XFCE</td>
          <td>輕量傳統桌面</td>
          <td>中</td>
          <td>低</td>
          <td>中</td>
          <td>X11</td>
      </tr>
      <tr>
          <td>Cinnamon</td>
          <td>傳統桌面隱喻、易上手</td>
          <td>中高</td>
          <td>中</td>
          <td>中</td>
          <td>X11</td>
      </tr>
      <tr>
          <td>Hyprland（WM）</td>
          <td>自己組裝的平鋪式 compositor</td>
          <td>無（自組）</td>
          <td>最低（裸）</td>
          <td>最高</td>
          <td>Wayland</td>
      </tr>
  </tbody>
</table>
<h3 id="gnome把選擇替你做完的現代桌面">GNOME：把選擇替你做完的現代桌面</h3>
<p>GNOME 的定位是「一套有明確設計主張的完整桌面」——它預設一個不同於 Windows/macOS 的工作流（頂欄 + Activities 總覽 + 動態工作區），並且刻意收斂可調選項，讓多數人不用設定就有一致體驗。從 Windows/macOS 轉來、想要「裝好就能用、不想折騰」的人，GNOME 是穩妥選擇：它的整合度最高，通知、設定、線上帳號、檔案管理彼此協調。</p>
<p>代價在客製。GNOME 把很多設定收進 extension 或需要另裝 <code>gnome-tweaks</code>（Arch：<code>pacman -S gnome-tweaks</code>）才改得動的角落，想把它調成傳統工作列風格是在對抗它的設計方向，而 extension 又會隨 GNOME 大版本更新而失效。所以 GNOME 適合「接受它的工作流」的人，不適合「想按自己習慣重排一切」的人。資源上它是這幾個裡偏吃的，老硬體上會感覺得到。</p>
<h3 id="kde-plasma整合度高但幾乎每個角落都能調">KDE Plasma：整合度高、但幾乎每個角落都能調</h3>
<p>KDE Plasma 少見地同時做到高整合與高可調：它像 GNOME 一樣開箱即用、元件協調，但幾乎每個行為都攤在設定介面裡讓你改——面板可以拆解重組、視窗規則、快捷鍵、視覺效果都有深度選項。從 Windows 轉來的人會覺得它的預設隱喻（底部工作列 + 開始選單）親切，又保留了往下鑽的空間。</p>
<p>它的代價不在資源（現代 Plasma 已相當精實，中階機器順暢），在「選項多到需要自己收斂」——設定深意味著你可能花很多時間在調整上。想要「高整合又想保留大量客製、但不想從零組裝」的人，Plasma 通常是比 GNOME 和 Hyprland 都平衡的落點。它的 Wayland session 近年已是預設且成熟。</p>
<h3 id="xfce老硬體與要傳統要穩要輕的預設">XFCE：老硬體與「要傳統、要穩、要輕」的預設</h3>
<p>XFCE 的定位是輕量而傳統：它給你熟悉的桌面隱喻（工作列、選單、系統匣），資源佔用在這幾個裡最低，且以穩定少變著稱——它不追新，多年來介面與行為變動小。老硬體、低階 VM、或「我只要一個不吵不鬧、能穩定工作的桌面」的場景，XFCE 是可靠預設。</p>
<p>它的取捨是現代感與顯示協定：XFCE 目前仍以 X11 為主，Wayland 化在進行但尚未是預設，所以想要 Wayland 的分數效益（見下節）目前要往別的方案找。客製自由度中等——比 GNOME 開放、但沒有 KDE 那種深度設定，也沒有 Hyprland 那種完全重組的自由。</p>
<h3 id="cinnamon給要-windows-式熟悉感的轉移者">Cinnamon：給「要 Windows 式熟悉感」的轉移者</h3>
<p>Cinnamon 出身 Linux Mint，定位是把傳統桌面隱喻做得順手好上手——底部工作列、開始選單式的應用選單、系統匣，對從 Windows 轉來的人幾乎零學習曲線。它比 XFCE 現代一點、視覺完整度高一些，整合度也高（自帶檔案管理員 Nemo、設定中心、特效）。</p>
<p>代價與 XFCE 類似：以 X11 為主，資源比 XFCE 略高。它適合「要一台立刻上手、像 Windows 但是 Linux」的工作機，不適合追求 Wayland 或極致輕量的場景。附帶一提，Cinnamon 的檔案管理員 Nemo 假設 Cinnamon 桌面服務在旁邊，把它單獨裝進裸 window manager 會拖進整套 Cinnamon 元件——這正是<a href="../gui-file-manager-dependencies/">加圖形檔案管理員那篇</a>講的桌面環境耦合。</p>
<h3 id="hyprland不是-de是你自己組一個桌面">Hyprland：不是 DE，是你自己組一個桌面</h3>
<p>Hyprland 嚴格說不是桌面環境，是一個平鋪式（tiling）Wayland compositor——它只負責畫面合成與視窗排列，面板、啟動器、鎖屏、通知、桌布、音量控制全部不含，要你自己挑元件接上去。選它意味著你接受「從零組裝一個桌面」這件事，換來的是最高的客製自由（每個元件都你選、佈局規則完全你定）和最低的裸資源佔用。</p>
<p>它適合「把配置桌面當成一種投入、想要一套完全長成自己樣子的環境」的人，不適合「只想裝好開始工作」的人。組裝過程本身有相當的學習曲線與維護成本——這也是為什麼本系列用一整個 <a href="/blog/linux/dotfile/06-rice-design/" data-link-title="模組六：桌面 Rice 設計" data-link-desc="Hyprland 桌面從能用到好看好用 — 狀態列、啟動器、通知、鎖屏、配色系統的設計與配置">Rice 設計模組</a>談「選了 Hyprland 之後怎麼把它組起來」。如果你還在「要不要走這條路」的階段，這篇就是那個模組的上游：先確認你要的是組裝自由、而不是開箱即用。</p>
<h2 id="wayland-vs-x11選型時避不開的底層判斷">Wayland vs X11：選型時避不開的底層判斷</h2>
<p>顯示協定是選型時的一條隱形軸線，因為它決定了一部分未來相容性。Wayland 是較新的顯示協定，設計上更安全、對高 DPI 與多螢幕不同刷新率支援更好，是 Linux 桌面的方向；X11 是沿用數十年的舊協定，相容性最廣但架構老舊、社群維護逐漸收斂到維持模式。GNOME、KDE Plasma、Hyprland 都已預設或原生 Wayland；XFCE、Cinnamon 目前仍以 X11 為主。</p>
<p>實務判讀：如果你用 NVIDIA 專有驅動、或依賴某些只支援 X11 的老工具（部分螢幕錄製、遠端桌面、自動化工具），X11 方案目前可能更少驚喜；如果你要高 DPI 筆電、多螢幕混合刷新率、或想跟上長期方向，優先選 Wayland 方案。這不是非此即彼的道德選擇，是看你的硬體與工具鏈落在哪邊。</p>
<h2 id="依情境選從你的處境倒推">依情境選：從你的處境倒推</h2>
<p>選型的最後一步是把上面的定位對回你自己的處境，不是背「哪個最好」：</p>
<ul>
<li><strong>剛從 Windows/macOS 轉來、只想要能用</strong>：KDE Plasma（熟悉隱喻 + 之後可深調）或 GNOME（接受新工作流、要最省心）。要極致熟悉感就 Cinnamon。</li>
<li><strong>老硬體 / 低階 VM / 要穩定不折騰的工作機</strong>：XFCE。資源最低、變動最少。</li>
<li><strong>想把桌面調成完全自己的樣子、願意投入組裝</strong>：Hyprland（或其他 WM）。先讀 <a href="/blog/linux/dotfile/06-rice-design/" data-link-title="模組六：桌面 Rice 設計" data-link-desc="Hyprland 桌面從能用到好看好用 — 狀態列、啟動器、通知、鎖屏、配色系統的設計與配置">Rice 設計模組</a> 確認你要的是這條路。</li>
<li><strong>要高整合又要大量客製、不想從零組裝</strong>：KDE Plasma，是這兩個需求的平衡點。</li>
<li><strong>硬體是 NVIDIA 或依賴 X11 工具</strong>：優先 X11 成熟的方案（XFCE / Cinnamon），或確認你的 Wayland 方案在該硬體上的狀況再決定。</li>
</ul>
<p>判準是把「我願意花多少時間在桌面本身、我對客製的需求有多強、我的硬體與工具落在 Wayland 還是 X11」三個問題答清楚，選項自然收斂。沒有一個 DE 對所有人最好——選錯最常見的原因是拿別人的推薦套自己不同的處境。</p>
<h2 id="桌面環境的擴充生態">桌面環境的擴充生態</h2>
<p>選好 DE 之後，各方案還有自己的擴充路徑，這是「選項之下還有選項」的一層：</p>
<ul>
<li><strong>GNOME</strong>：透過 GNOME Extensions 加面板、工作流、狀態列元件，但要注意 extension 綁 GNOME 版本、大版本更新可能失效。</li>
<li><strong>KDE Plasma</strong>：內建的 widget（plasmoid）、全域主題、視窗規則系統，多數擴充不需要離開設定介面。</li>
<li><strong>XFCE / Cinnamon</strong>：panel plugin、applet、主題，擴充幅度中等但穩定。</li>
<li><strong>Hyprland</strong>：因為本來就是自己組，擴充等於換元件——換 bar（waybar/其他）、換啟動器、換通知 daemon，自由度最高也最需要自己維護。這一整套怎麼組，是 <a href="/blog/linux/dotfile/06-rice-design/" data-link-title="模組六：桌面 Rice 設計" data-link-desc="Hyprland 桌面從能用到好看好用 — 狀態列、啟動器、通知、鎖屏、配色系統的設計與配置">Rice 設計模組</a> 的主題。</li>
</ul>
<h2 id="下一步">下一步</h2>
<ul>
<li>選了 Hyprland、要開始組裝：<a href="/blog/linux/dotfile/06-rice-design/" data-link-title="模組六：桌面 Rice 設計" data-link-desc="Hyprland 桌面從能用到好看好用 — 狀態列、啟動器、通知、鎖屏、配色系統的設計與配置">Dotfile 管理：桌面 Rice 設計</a> 是「選了之後怎麼把它長成自己的樣子」的完整模組。</li>
<li>桌面選好、要裝檔案管理員這類 GUI app 時的相依判讀：<a href="../gui-file-manager-dependencies/">在 Hyprland 加圖形檔案管理員</a>。</li>
<li>純終端機環境不需要桌面環境、但需要對應的 CLI 工具：<a href="../../cli/">CLI 環境工具</a>。</li>
<li>桌面裝好後遇到顯示、鎖屏、服務層的問題怎麼診斷：<a href="../../../debug/">除錯與診斷</a>。</li>
</ul>
]]></content:encoded></item><item><title>在 Hyprland 加圖形檔案管理員：依賴足跡與桌面環境耦合</title><link>https://tarrragon.github.io/blog/linux/tools/gui/gui-file-manager-dependencies/</link><pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/linux/tools/gui/gui-file-manager-dependencies/</guid><description>&lt;p>在一個最小化的 Hyprland 環境加一個圖形應用，真正的成本不是那個 app 本身，是它拖進來的相依樹。Hyprland 這類 window manager 刻意不預設桌面環境，所以你手上是一台「只有合成器、沒有 GNOME/KDE/Cinnamon 那層服務」的機器。這時候裝一個看似單純的圖形檔案管理員，不同實作拖進來的東西可以差一個數量級——因為有些檔案管理員假設某個桌面環境的服務就在旁邊，有些則刻意做成桌面無關的獨立程式。&lt;/p>
&lt;p>這篇用「圖形檔案管理員」當具體案例，但判讀方式適用於任何你想加進最小環境的桌面 app：先看它的相依樹拖進什麼，再決定值不值得。&lt;/p>
&lt;h2 id="三種實作的實測相依">三種實作的實測相依&lt;/h2>
&lt;p>同樣是「有側欄、有選單、能瀏覽掛載裝置」的圖形檔案管理員，三個主流實作在一台已有 GTK3 的 Arch ARM 機器上，各自會&lt;strong>新裝&lt;/strong>的套件數量如下（&lt;code>pacman -S --needed --print&lt;/code> 實測）：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>檔案管理員&lt;/th>
 &lt;th>出身&lt;/th>
 &lt;th>新裝套件數&lt;/th>
 &lt;th>會拖進的關鍵相依&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Thunar&lt;/td>
 &lt;td>XFCE&lt;/td>
 &lt;td>8&lt;/td>
 &lt;td>xfce4 基礎庫（exo、libxfce4util/ui、xfconf、startup-notification、libgtop）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>PCManFM-Qt&lt;/td>
 &lt;td>LXQt&lt;/td>
 &lt;td>7&lt;/td>
 &lt;td>libfm-qt、layer-shell-qt、menu-cache、lxqt-menu-data&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Nemo&lt;/td>
 &lt;td>Cinnamon&lt;/td>
 &lt;td>36&lt;/td>
 &lt;td>cinnamon-desktop、xapp、整套 gvfs + udisks2（libblockdev 主 + 8 子模組、mdadm、parted…）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>差異的來源不是「檔案管理員本身多大」，Thunar 跟 Nemo 的主程式都在 7–10 MB 量級。差的是後面那條相依鏈。&lt;/p>
&lt;h3 id="thunar-與-pcmanfm-qt桌面無關的獨立程式">Thunar 與 PCManFM-Qt：桌面無關的獨立程式&lt;/h3>
&lt;p>Thunar 與 PCManFM-Qt 都是刻意做成「不依賴完整桌面環境」的檔案管理員。Thunar 雖然出身 XFCE，但它拖進的 8 個套件是 XFCE 的&lt;strong>基礎函式庫&lt;/strong>（設定系統 xfconf、工具庫 libxfce4util、UI 庫 libxfce4ui），不是 XFCE 桌面本身——你不會因此裝到 XFCE 的面板、視窗管理器或 session。PCManFM-Qt 走 Qt 棧，帶的 &lt;code>layer-shell-qt&lt;/code> 反而是 Wayland 原生整合的加分項。這兩個裝下去，機器還是那台只有 Hyprland 的機器，只是多了一個能開的檔案管理員。&lt;/p>
&lt;h3 id="nemo為-cinnamon-而生假設-cinnamon-在旁邊">Nemo：為 Cinnamon 而生，假設 Cinnamon 在旁邊&lt;/h3>
&lt;p>Nemo 是 Cinnamon 桌面的檔案管理員，它的相依反映了這個出身：&lt;code>cinnamon-desktop&lt;/code> 提供背景與顯示設定的整合、&lt;code>xapp&lt;/code> 是 Cinnamon 系列跨桌面的整合層。即使你只想要「開一個視窗看檔案」，這些桌面元件也會一起裝上，因為 Nemo 在程式碼層面就假設它們存在。這不是 Nemo 寫得差，是它本來就不是設計給「裸 window manager」用的——它預期自己跑在 Cinnamon session 裡。&lt;/p>
&lt;p>Nemo 那 36 個套件裡，還有一大塊來自它把 &lt;code>gvfs&lt;/code> 列成硬相依（下一節說明 gvfs 是什麼），而 gvfs 又拖進整套磁碟管理棧（udisks2、libblockdev 的 8 個子模組、mdadm、parted、volume_key）。所以 Nemo 的相依樹是「Cinnamon 桌面元件」加「完整磁碟/檔案系統管理」兩層疊起來的結果。&lt;/p>
&lt;h2 id="gvfs側欄那些功能不是檔案管理員自己做的">gvfs：側欄那些功能不是檔案管理員自己做的&lt;/h2>
&lt;p>截圖裡檔案管理員側欄常見的「Devices（掛載裝置）」「Network（瀏覽網路芳鄰）」「Trash（垃圾桶）」，多半不是檔案管理員自己實作的，是 &lt;strong>gvfs（GNOME Virtual File System）&lt;/strong> 這個後端提供的。gvfs 用一層虛擬檔案系統把「掛載 USB 隨身碟」「連 SMB 網路分享」「把檔案丟垃圾桶」這些操作抽象成統一介面，讓檔案管理員不必自己處理每一種裝置與協定。&lt;/p>
&lt;p>這帶出一個重要判讀：&lt;strong>輕量不是免費的，當功能對等時，相依會靠攏。&lt;/strong> Thunar 與 PCManFM-Qt 把 gvfs 列成 optional dependency——不裝也能開檔案管理員，但側欄就沒有掛載、垃圾桶、網路那些功能。要讓輕量檔案管理員有截圖裡那種完整側欄，你得自己補 gvfs，而補上 gvfs 就會連帶拖進它的相依（udisks2、polkit、fuse3、libsecret 等）。Nemo 把 gvfs 設成硬相依，只是把這個選擇替你做了。&lt;/p>
&lt;p>所以公平的比較不是「Thunar 8 個 vs Nemo 36 個」，而是「Thunar + gvfs + 縮圖 vs Nemo」。補齊功能後，Thunar 這條路線仍然省下的是 Nemo 獨有的那層——&lt;code>cinnamon-desktop&lt;/code>、&lt;code>xapp&lt;/code>、&lt;code>xapp-symbolic-icons&lt;/code> 這些桌面環境耦合元件。那層，才是「為了一個檔案管理員裝半個 Cinnamon」真正可以省掉的部分。&lt;/p>
&lt;h2 id="tumbler縮圖也是一個額外套件">tumbler：縮圖也是一個額外套件&lt;/h2>
&lt;p>檔案管理員顯示圖片/影片縮圖，同樣不是內建的，靠的是縮圖服務。Thunar 家族用 &lt;code>tumbler&lt;/code>，影片縮圖再另外需要 &lt;code>ffmpegthumbnailer&lt;/code>。這是「一個功能對應一個額外套件」的又一個例子——最小環境裡，縮圖、掛載、網路瀏覽每一項都是你明確選擇要不要付相依成本的功能，而不是預設就有。&lt;/p>
&lt;h2 id="wayland--hyprland-下的注意事項">Wayland / Hyprland 下的注意事項&lt;/h2>
&lt;p>這些檔案管理員多數是 X11 時代的 GTK/Qt 程式，在 Wayland 下會透過 XWayland 或原生 Wayland 後端執行。PCManFM-Qt 帶的 &lt;code>layer-shell-qt&lt;/code> 是 Wayland 的 layer-shell 整合；GTK 的 Thunar/Nemo 在 Wayland 下一般走 GTK 自己的 Wayland 後端。開啟/儲存檔案對話框、拖放、縮圖預覽在裸 Hyprland（沒有完整 portal 服務）下的實際行為，取決於有沒有裝 &lt;code>xdg-desktop-portal&lt;/code> 與對應的後端。&lt;/p></description><content:encoded><![CDATA[<p>在一個最小化的 Hyprland 環境加一個圖形應用，真正的成本不是那個 app 本身，是它拖進來的相依樹。Hyprland 這類 window manager 刻意不預設桌面環境，所以你手上是一台「只有合成器、沒有 GNOME/KDE/Cinnamon 那層服務」的機器。這時候裝一個看似單純的圖形檔案管理員，不同實作拖進來的東西可以差一個數量級——因為有些檔案管理員假設某個桌面環境的服務就在旁邊，有些則刻意做成桌面無關的獨立程式。</p>
<p>這篇用「圖形檔案管理員」當具體案例，但判讀方式適用於任何你想加進最小環境的桌面 app：先看它的相依樹拖進什麼，再決定值不值得。</p>
<h2 id="三種實作的實測相依">三種實作的實測相依</h2>
<p>同樣是「有側欄、有選單、能瀏覽掛載裝置」的圖形檔案管理員，三個主流實作在一台已有 GTK3 的 Arch ARM 機器上，各自會<strong>新裝</strong>的套件數量如下（<code>pacman -S --needed --print</code> 實測）：</p>
<table>
  <thead>
      <tr>
          <th>檔案管理員</th>
          <th>出身</th>
          <th>新裝套件數</th>
          <th>會拖進的關鍵相依</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Thunar</td>
          <td>XFCE</td>
          <td>8</td>
          <td>xfce4 基礎庫（exo、libxfce4util/ui、xfconf、startup-notification、libgtop）</td>
      </tr>
      <tr>
          <td>PCManFM-Qt</td>
          <td>LXQt</td>
          <td>7</td>
          <td>libfm-qt、layer-shell-qt、menu-cache、lxqt-menu-data</td>
      </tr>
      <tr>
          <td>Nemo</td>
          <td>Cinnamon</td>
          <td>36</td>
          <td>cinnamon-desktop、xapp、整套 gvfs + udisks2（libblockdev 主 + 8 子模組、mdadm、parted…）</td>
      </tr>
  </tbody>
</table>
<p>差異的來源不是「檔案管理員本身多大」，Thunar 跟 Nemo 的主程式都在 7–10 MB 量級。差的是後面那條相依鏈。</p>
<h3 id="thunar-與-pcmanfm-qt桌面無關的獨立程式">Thunar 與 PCManFM-Qt：桌面無關的獨立程式</h3>
<p>Thunar 與 PCManFM-Qt 都是刻意做成「不依賴完整桌面環境」的檔案管理員。Thunar 雖然出身 XFCE，但它拖進的 8 個套件是 XFCE 的<strong>基礎函式庫</strong>（設定系統 xfconf、工具庫 libxfce4util、UI 庫 libxfce4ui），不是 XFCE 桌面本身——你不會因此裝到 XFCE 的面板、視窗管理器或 session。PCManFM-Qt 走 Qt 棧，帶的 <code>layer-shell-qt</code> 反而是 Wayland 原生整合的加分項。這兩個裝下去，機器還是那台只有 Hyprland 的機器，只是多了一個能開的檔案管理員。</p>
<h3 id="nemo為-cinnamon-而生假設-cinnamon-在旁邊">Nemo：為 Cinnamon 而生，假設 Cinnamon 在旁邊</h3>
<p>Nemo 是 Cinnamon 桌面的檔案管理員，它的相依反映了這個出身：<code>cinnamon-desktop</code> 提供背景與顯示設定的整合、<code>xapp</code> 是 Cinnamon 系列跨桌面的整合層。即使你只想要「開一個視窗看檔案」，這些桌面元件也會一起裝上，因為 Nemo 在程式碼層面就假設它們存在。這不是 Nemo 寫得差，是它本來就不是設計給「裸 window manager」用的——它預期自己跑在 Cinnamon session 裡。</p>
<p>Nemo 那 36 個套件裡，還有一大塊來自它把 <code>gvfs</code> 列成硬相依（下一節說明 gvfs 是什麼），而 gvfs 又拖進整套磁碟管理棧（udisks2、libblockdev 的 8 個子模組、mdadm、parted、volume_key）。所以 Nemo 的相依樹是「Cinnamon 桌面元件」加「完整磁碟/檔案系統管理」兩層疊起來的結果。</p>
<h2 id="gvfs側欄那些功能不是檔案管理員自己做的">gvfs：側欄那些功能不是檔案管理員自己做的</h2>
<p>截圖裡檔案管理員側欄常見的「Devices（掛載裝置）」「Network（瀏覽網路芳鄰）」「Trash（垃圾桶）」，多半不是檔案管理員自己實作的，是 <strong>gvfs（GNOME Virtual File System）</strong> 這個後端提供的。gvfs 用一層虛擬檔案系統把「掛載 USB 隨身碟」「連 SMB 網路分享」「把檔案丟垃圾桶」這些操作抽象成統一介面，讓檔案管理員不必自己處理每一種裝置與協定。</p>
<p>這帶出一個重要判讀：<strong>輕量不是免費的，當功能對等時，相依會靠攏。</strong> Thunar 與 PCManFM-Qt 把 gvfs 列成 optional dependency——不裝也能開檔案管理員，但側欄就沒有掛載、垃圾桶、網路那些功能。要讓輕量檔案管理員有截圖裡那種完整側欄，你得自己補 gvfs，而補上 gvfs 就會連帶拖進它的相依（udisks2、polkit、fuse3、libsecret 等）。Nemo 把 gvfs 設成硬相依，只是把這個選擇替你做了。</p>
<p>所以公平的比較不是「Thunar 8 個 vs Nemo 36 個」，而是「Thunar + gvfs + 縮圖 vs Nemo」。補齊功能後，Thunar 這條路線仍然省下的是 Nemo 獨有的那層——<code>cinnamon-desktop</code>、<code>xapp</code>、<code>xapp-symbolic-icons</code> 這些桌面環境耦合元件。那層，才是「為了一個檔案管理員裝半個 Cinnamon」真正可以省掉的部分。</p>
<h2 id="tumbler縮圖也是一個額外套件">tumbler：縮圖也是一個額外套件</h2>
<p>檔案管理員顯示圖片/影片縮圖，同樣不是內建的，靠的是縮圖服務。Thunar 家族用 <code>tumbler</code>，影片縮圖再另外需要 <code>ffmpegthumbnailer</code>。這是「一個功能對應一個額外套件」的又一個例子——最小環境裡，縮圖、掛載、網路瀏覽每一項都是你明確選擇要不要付相依成本的功能，而不是預設就有。</p>
<h2 id="wayland--hyprland-下的注意事項">Wayland / Hyprland 下的注意事項</h2>
<p>這些檔案管理員多數是 X11 時代的 GTK/Qt 程式，在 Wayland 下會透過 XWayland 或原生 Wayland 後端執行。PCManFM-Qt 帶的 <code>layer-shell-qt</code> 是 Wayland 的 layer-shell 整合；GTK 的 Thunar/Nemo 在 Wayland 下一般走 GTK 自己的 Wayland 後端。開啟/儲存檔案對話框、拖放、縮圖預覽在裸 Hyprland（沒有完整 portal 服務）下的實際行為，取決於有沒有裝 <code>xdg-desktop-portal</code> 與對應的後端。</p>
<blockquote>
<p><strong>[待實機驗證]</strong> 以下行為尚未在本系列的 Hyprland 實機環境確認，先標記待驗證：(1) Thunar 補上 gvfs 後，側欄的 Devices/Network/Trash 是否如預期出現並可用；(2) tumbler + ffmpegthumbnailer 的縮圖在 Wayland 下是否正常產生；(3) 三者在裸 Hyprland（無完整桌面 portal）下的檔案對話框與拖放行為；(4) Nemo 在沒有 Cinnamon session 的情況下，桌面圖示、設定整合等功能是否失效或報錯。這些是「相依裝了之後實際好不好用」的問題，相依數量本身（上表）已是實測確定值。</p></blockquote>
<h2 id="風險與注意事項">風險與注意事項</h2>
<p><strong>移除後的孤兒套件</strong>：裝了 Nemo 再反悔移除時，<code>cinnamon-desktop</code>、<code>xapp</code> 那一票被拖進來的相依會變成沒人依賴的孤兒（<code>pacman -Qtd</code> 可列出）。用 <code>pacman -Rns nemo</code> 移除時帶走遞迴相依，或定期清孤兒，否則那半個 Cinnamon 會留在系統裡。輕量檔案管理員因為拖進的東西少，這個問題也小。</p>
<p><strong>桌面環境服務未跑的副作用</strong>：把為某個桌面環境寫的 app 裝進裸 window manager，它預期的那些服務不在時，部分功能可能靜默失效或在啟動時報錯。這類問題不會在相依解析階段出現——套件裝得起來，是執行時才發現某個整合功能沒作用。（Nemo 在無 Cinnamon 下的具體表現，見上方待驗證項。）</p>
<p><strong>選型判準</strong>：最小化的 Hyprland 想要一個圖形檔案管理員，優先考慮桌面無關的 Thunar 或 PCManFM-Qt；需要截圖那種完整側欄功能時，明確補上 <code>gvfs</code>（掛載/垃圾桶/網路）與 <code>tumbler</code>（縮圖），把相依成本花在你真的要用的功能上。以 Thunar 為例，完整一套是 <code>pacman -S thunar gvfs tumbler ffmpegthumbnailer</code>（<code>gvfs</code> 給掛載/垃圾桶/網路、<code>tumbler</code> + <code>ffmpegthumbnailer</code> 給圖片與影片縮圖）。除非你本來就跑 Cinnamon，否則不建議為了單一檔案管理員把 Nemo 的整套桌面元件裝進來——那是付了桌面環境耦合的代價，卻沒用到那個桌面環境。</p>
<h2 id="待實機驗證清單">待實機驗證清單</h2>
<p>這篇的相依數量與相依樹是實測確定的；以下「裝了之後實際體驗」的部分待在 Hyprland 實機補驗證：</p>
<ul>
<li>Thunar + gvfs + tumbler + ffmpegthumbnailer 的完整側欄與縮圖行為</li>
<li>三種檔案管理員在裸 Hyprland（XWayland vs 原生 Wayland、portal 有無）下的差異</li>
<li>Nemo 脫離 Cinnamon session 的功能缺損範圍</li>
<li>加進 <code>packages-arch.txt</code> 後，bootstrap 一鍵安裝這條路線的實際落地結果</li>
</ul>
<h2 id="為什麼拿-nemo-當重的代表">為什麼拿 Nemo 當「重」的代表</h2>
<p>上表用 Nemo 當桌面環境耦合的代表，是因為它把耦合展示得最乾淨——<code>cinnamon-desktop</code> + <code>xapp</code> 那層桌面元件加上 gvfs 硬相依，剛好對照出 Thunar / PCManFM-Qt 省掉的是什麼。但它不是最重的：GNOME 的 Nautilus（<code>nautilus</code>）與 KDE 的 Dolphin（<code>dolphin</code>）是更 canonical 的「裝檔案管理員就拖進半個桌面」例子。Nautilus 深度綁 GNOME 的 GTK4 / libadwaita / tracker 索引棧，在非 GNOME 環境裝它會拉進一串 GNOME 平台庫；Dolphin 綁 KDE 的 Frameworks（KIO、Baloo 等），在非 KDE 環境同理。判讀方式跟 Nemo 一節相同：檔案管理員的相依樹反映它預期跑在哪個桌面裡。真要在裸 Hyprland 上驗，<code>pacman -S --needed --print nautilus</code> / <code>dolphin</code> 會列出各自那串平台庫——數量通常比 Nemo 更可觀（實測 Nautilus 72、Dolphin 91，約 Nemo 的 2 到 2.5 倍）。</p>
<h2 id="零相依對照純終端機檔案管理員">零相依對照：純終端機檔案管理員</h2>
<p>如果你在意的正是相依足跡，還有一條完全繞開圖形棧的路：終端機檔案管理員（<code>yazi</code> / <code>lf</code> / <code>nnn</code> / <code>ranger</code>）在終端機裡跑，不需要 GTK / Qt / gvfs / 桌面環境那一整套。<code>yazi</code>（Rust、內建預覽與非同步 I/O）與 <code>lf</code>、<code>nnn</code>（C、極小）在裸 Hyprland 或純 SSH 環境下都是近乎零額外相依的選擇——你已經有終端機，它們就能跑。代價是純鍵盤操作、沒有圖形檔案管理員那種拖放與縮圖牆。這是「圖形 vs 終端機」的取捨，不是同一條路上的輕重之分：要滑鼠拖放、縮圖預覽走圖形檔案管理員；要零相依、鍵盤流、SSH 下也能用走 TUI。TUI 檔案管理員的比較見 <a href="../../cli/file-manager-tuis/">CLI 環境工具的檔案管理器 TUI</a>。</p>
<h2 id="下一步">下一步</h2>
<ul>
<li>這篇談的是「加桌面 app 時怎麼判讀相依成本」，套件清單本身怎麼設計、怎麼被 bootstrap 一鍵安裝，見 <a href="/blog/linux/dotfile/08-sync-bootstrap/bootstrap-script-packages/" data-link-title="Bootstrap Script 與套件清單管理" data-link-desc="寫 dotfile 的 install script、或整理「這台機器裝了什麼」的套件清單時回來讀">模組八：Bootstrap script 與套件清單</a>。</li>
<li>Hyprland 本體與配套工具的安裝，見 <a href="/blog/linux/dotfile/05-hyprland-config/hyprland-installation/" data-link-title="Hyprland 安裝與環境建置" data-link-desc="要在 Arch Linux 上從零安裝 Hyprland 桌面環境時回來讀">模組五：安裝與環境建置</a>。</li>
<li>這台 Hyprland 是在 VM 上建起來測的，VM 能測什麼、什麼要留到實機，見 <a href="/blog/linux/dotfile/05-hyprland-config/hyprland-vm-setup/" data-link-title="Hyprland VM 環境設定與測試矩陣" data-link-desc="要在 VM 裡測試 Hyprland 配置、或判斷某個設定該在 VM 還是實機驗證時回來讀">VM 環境設定與測試矩陣</a>。</li>
</ul>
]]></content:encoded></item></channel></rss>