Linux本體只是個核心,圖形界面全都是後來加裝的軟體,桌面環境都是由大大小小的套件所構成的。
各個Linux發行版都會幫你打包好自家的圖形桌面環境(Desktop Envrionment),方便使用者操作電腦。
不過Linux世界的桌面環境可不只有一種!
得益於Linux的自由度,你可以在一台Linux電腦安裝不同的桌面環境,嘗試不同的操作體驗。不用換發行版也能體驗其他的桌面環境。
例如同時在一台Ubuntu電腦安裝KDE、GNOME、Sway,了解什麼叫做從新手模式進入高手模式的體驗。
1. 安裝多重桌面環境注意事項#
系統套件會變很肥,造成管理困難。請神容易送神難,套件依賴過於複雜的情況下要拆掉桌面環境需要費一番功夫。
有些桌面環境的套件會順便拉自身的附屬應用程式進來,造成電腦多出許多功能重複的軟體。例如看圖軟體、檔案管理器這類的,每個桌面環境有各自的套件。
還有桌面環境的主題可能會互相干擾,GNOME的程式是使用Adwaita的GTK主題,KDE的Breeze主題會跑掉。
有些程式會依賴桌面環境的服務來儲存密碼和憑證,換桌面環境可能會噴掉,例如Chrome依賴GNOME鑰匙圈,換成KDE錢包後密碼就得重設。
如果要不受影響的體驗桌面環境,用QEMU/KVM虛擬機跑其他Linux發行版可能是較好的作法。
2. 了解桌面版Linux圖形環境的啟動過程#
電腦開機 → 載入開機服務 →載入顯示管理器 → 啟動桌面環境
顯示管理器 (Display Manager) 就是你開機後看到的登入畫面,那其實是一個服務,是可以任意替換的。
可不可以不要載入顯示管理器?可以,那開機就會進入純文字界面(tty)。Linux的桌面環境在tty界面能以指令啟動,但因為現在Linux主流環境正逐漸遷往Wayland,討論startx的用法沒什麼價值。
通常Linux啟動桌面環境都是丟給顯示管理器處理。Linux的套件管理器會在安裝桌面環境後自動將啟動選項加入到顯示管理器。只要有顯示管理器,就能任意控制要進入的桌面環境,不論是X還是Wayland工作階段都行。
- 通常桌面版Linux開機都會啟動圖形服務,以Ubuntu為例,可用以下指令觀察得知,輸出結果應會包含
graphical.target
與display-manager.target
,代表Systemd會載入顯示管理器服務。
sudo systemctl list-units --type=target --all
開機啟動的顯示管理器服務可用Systemd的Display Manager服務控制,每當你啟用新的顯示管理器服務,它就會建立符號連結。
想知道你目前的顯示管理器為何,請直接讀取以下這個檔案:
grep 'ExecStart=' /etc/systemd/system/display-manager.service
- 假如我的顯示管理器是GDM,而我要切換成SDDM,就是先將GDM從開機服務移除,再將GDM服務加入到開機
sudo systemctl disable gdm
sudo systemctl enable sddm
3. 顯示管理器列表 Display Manager#
- GDM:GNOME的顯示管理器
- LightDM:XFCE的顯示管理器
- SDDM:KDE的顯示管理器
- SLiM
- XDM
4. 桌面環境列表 Desktop Environment#
主流Linux發行版應該都有提供套件,搜尋"how to install xxx desktop on ubuntu"就會找到套件指令。
比較有名的桌面環境:
- GNOME:最多Linux發行版使用的桌面環境,簡單易用,界面設計風格統一。
- KDE Plasma:自訂性極高又漂亮的桌面環境。
- XFCE
- Cinnamon
- Mate
- Cosmic:System76自研的桌面環境
- LXQT/LXDE:台灣人開發的極簡桌面環境
- Budgie
- Deepin:中國人研發的華麗桌面環境
- Unity/Lomiri:曾經是Ubuntu自研的桌面環境
比較有名的X視窗管理器與Wayland合成器:
- dwm:修改原始碼後重新編譯才能調整外觀的視窗管理器。
- i3wm:擴充功能生態非常豐富的視窗管理器。
- bspwm
- Xmonad
- Qtile
- Openbox
- IceWM
- Awesome
- ratpoison
- Weston
- Sway:Wayland版的i3wm
- Hyprland:預設畫面就很炫砲的Wayland合成器。
- River
- Wayfire
5. 實際操作例子#
- 例如我要在Ubuntu(預設使用GNOME)安裝KDE桌面環境:
sudo apt install kubuntu-desktop
- 然後將顯示管理器替換為高自定性的SDDM
sudo apt install sddm
sudo systemctl enable sddm
- 重開機。