內容目錄
在 Debian 系統上,有幾個功能全面的 GUI 桌面環境選擇。
表格 7.1. 桌面環境列表
任務軟體包 | 流行度 | 大小 | 說明 |
---|---|---|---|
task-gnome-desktop
|
I:179 | 9 | GNOME 桌面環境 |
task-xfce-desktop
|
I:97 | 9 | Xfce 桌面環境 |
task-kde-desktop
|
I:64 | 6 | KDE Plasma 桌面環境 |
task-mate-desktop
|
I:44 | 9 | MATE 桌面環境 |
task-cinnamon-desktop
|
I:36 | 9 | Cinnamon 桌面環境 |
task-lxde-desktop
|
I:30 | 9 | LXDE 桌面環境 |
task-lxqt-desktop
|
I:16 | 9 | LXQt 桌面環境 |
task-gnome-flashback-desktop
|
I:10 | 6 | GNOME Flashback 桌面環境 |
![]() |
提示 |
---|---|
選擇的任務元軟體包的依賴軟體包,在 Debian
|
本章將大部分關注 Debian 預設的桌面環境: task-gnome-desktop
,在 wayland 上提供 GNOME。
在 GNOME 桌面使用的 GUI 通訊協議可以為:
Wayland (服務端顯示協議) (原生)
X 視窗系統核心協議 (透過
xwayland
)
請檢視 freedesktop.org 站點來了解 Wayland 架構和 X 視窗架構是如何不同。
從使用者的觀點,不同能夠被通俗的概況為:
Wayland 是在同一個主機上的 GUI 通訊協議:新、簡單、快速,不需要 setuid root 二進位制
X Window 是一個具備網路功能的 GUI 通訊協議:傳統、複雜、慢,需要 setuid root 二進位制
對於使用 Wayland 協議的應用,由 VNC 或 RDP 來支援從一個遠端主機上訪問它們顯示的內容。參見 節 7.7, “遠端桌面”
現代 X 伺服器具有 MIT 共享記憶體擴充套件 ,他們和本地 X 客戶端透過本地共享記憶體進行通訊. 這就繞過了網路透明的Xlib程序間通訊通道,獲得了效能。這個情況,也是建立 Wayland 作為本地 GUI 通訊協議的背景。
使用從 GNOME 終端啟動的 xeyes
程式,你能夠檢查每個 GUI(圖形使用者介面)應用程式使用的 GUI
通訊協議。
$ xeyes
如果滑鼠是在使用 Wayland 服務端顯示協議的應用程式上,比如“GNOME 終端”,眼睛不會跟隨滑鼠移動。
如果滑鼠是在使用 X 視窗系統核心協議的應用程式上,比如“xterm”,眼睛會跟隨滑鼠移動,暴露出不是那麼孤立的 X 視窗架構的特性。
到 2021 年 4 月,許多流行的 GUI 應用程式,比如 GNOME 和 LibreOffice (LO) 已經被移植到了 Wayland 服務端顯示協議。我發現
xterm
, gitk
,
chromium
, firefox
,
gimp
, dia
和 KDE 應用程式任然使用 X 視窗系統核心協議。
![]() |
注意 |
---|---|
對於 Wayland 之上的 xwayland 或 原生的 X 視窗系統,這兩個上面的舊的 X 服務端配置檔案
" |
這裡是 Wayland 環境上用於 GNOME 的著名的 GUI 架構軟體包。
表格 7.2. 著名的 GUI 架構軟體包列表
軟體包 | 流行度 | 軟體包大小 | 說明 |
---|---|---|---|
mutter
|
V:3, I:99 | 199 | GNOME 的 mutter 視窗管理器 [auto] |
xwayland
|
V:176, I:240 | 2336 | 執行在 wayland 之上的一個 X 服務端 [auto] |
gnome-remote-desktop
|
V:62, I:146 | 1036 | 使用 PipeWire 的 GNOME 遠端桌面後臺守護程序(daemon) [auto] |
gnome-tweaks
|
V:16, I:200 | 1202 | GNOME 的高階配置設定 |
這裡,"[auto]" 表示這些軟體包在
task-gnome-desktop
安裝時會自動安裝。
![]() |
提示 |
---|---|
|
現在在 Debian 上,有許多有用的 GUI 應用存在。如果在 GNOME 桌面環境中沒有相應功能的軟體,那麼安裝例如
scribus
(KDE)這樣的軟體包是完全可以接受的。但安裝過多功能重複的軟體包,會使你的系統凌亂。
這裡是一份捕獲我眼球的 GUI(圖形使用者介面)程式列表。
表格 7.3. 著名的的 GUI(圖形使用者介面)應用列表
對於 Debian 的使用者,有許多有用的向量字型存在。使用者關注是怎樣避免冗餘,怎樣配置禁用部分已經安裝的字型。此外,無用的字型選擇可以搞亂你的 GUI(圖形使用者介面)應用程式選單。
Debian 系統使用 FreeType 2.0 庫來柵格化許多向量字型格式,用於螢幕和列印:
Type 1 (PostScript) 字型 使用三次 貝塞爾曲線 (差不多廢棄的格式)
TrueType 字型 使用二次 貝塞爾曲線 (好的選擇格式)
OpenType 字型 使用三次 貝塞爾曲線 (最佳選擇格式)
下面的編撰的表格希望幫助使用者選擇適當的向量字型,並清楚的理解 排版指標相容(metric compatibility) 和 字形覆蓋。大部分字型覆蓋了所有拉丁字型、希臘和 Cyril 字形。最終選擇的啟用字型也受你的審美觀影響。這些字型能夠被用於螢幕顯示和紙張列印。
表格 7.4. 著名的 TrueType 和 OpenType 字型列表
這裡:
"MCM"表示"與微軟提供的字型是排版指標相容的"
"MCMATC"表示和"微軟提供的字型: Arial, Times New Roman, Courier New 排版指標相容"
"MCAHTC" 表示 "和 Adobe 提供的字型: Helvetica, Times, Courier 排版指標相容"
在字型型別列的數字表示對相同磅數的字型與 M 字重的相對粗細程度(譯註:M 表示 Medium 適中,字型粗細程度的適中值)。
在 mono 字型型別列中的"P" 表示用於程式設計中,能夠清晰的區分 "0"/"O" 和 "1"/"I"/"l"。
ttf-mscorefonts-installer
軟體包下載微軟的"Core fonts for the Web" 並安裝 Arial, Times New
Roman, Courier New, Verdana, ... 。這些安裝的字型資料,是非開源的資料。
許多開源的拉丁字型,有 URW Nimbus 家族或 Bitstream Vera 的血統痕跡。
![]() |
提示 |
---|---|
如果你的語言環境所需要的字型沒有在上面的字型中涵蓋,請使用 aptitude 在 "Tasks" -> "Localization" 下面檢查任務軟體包列表。字型軟體包作為 "Depends:" 或 "Recommends:" 列出,在本地化任務軟體包裡面是首要候選軟體包。 |
Debian 使用 FreeType 來柵格化字型。它的字型選擇架構由 Fontconfig 字型配置庫提供。
表格 7.5. 著名的字型環境和相關軟體包列表
軟體包 | 流行度 | 大小 | 說明 |
---|---|---|---|
libfreetype6
|
V:527, I:996 | 890 | FreeType 字型柵格化庫 |
libfontconfig1
|
V:523, I:853 | 579 | Fontconfig 字型配置庫 |
fontconfig
|
V:409, I:721 | 617 | fc-* : Fontconfig 命令列命令 |
font-manager
|
V:2, I:8 | 1062 | Font 管理器: Fontconfig GUI(圖形使用者介面)命令 |
nautilus-font-manager
|
V:0, I:0 | 37 | Font 管理器 的 Nautilus 擴充套件 |
![]() |
提示 |
---|---|
一些字型軟體包,比如說
|
你也可以從命令列列出字型配置狀態。
使用 “fc-match(1)
” 檢視 fontconfig 的預設字型
使用 “fc-list(1)
” 檢視所有可用的 fontconfig 字型
你能夠從文字編輯器配置字型配置狀態,但這是瑣碎的。參見 fonts.conf
(5)。
Linux 上大部分 GUI(圖形使用者介面)應用在非 Debian 的源上,是以二進位制格式存在。
![]() |
警告 |
---|---|
從這些站點來的二進位制軟體包,有可能包括私有的非開源軟體。 |
對使用 Debian 的自由軟體的狂熱愛好者,這些二進位制格式的分發,有一些存在的理由。因為這能夠得到一個乾淨的庫集合,由 Debian 提供的庫和由每個應用程式相應的上游開發者使用的庫,獨立開來。
執行外部二進位制的固有風險,能夠使用 沙盒環境 減少,它有現代 Linux 安全特性的手段。(參見 節 4.7.4, “Linux 安全特性”)。
xdg-desktop-portal
軟體包為通用的桌面特性提供一個標準的 API。參見 xdg-desktop-portal (flatpak) 和
xdg-desktop-portal (snap)
表格 7.6. 著名的沙盒環境和相關軟體包列表
軟體包 | 流行度 | 大小 | 說明 |
---|---|---|---|
flatpak
|
V:41, I:44 | 7350 | Flatpak 桌面應用程式配置框架 |
gnome-software-plugin-flatpak
|
V:10, I:17 | 227 | GNOME 軟體 管理器的 Flatpak 支援 |
snapd
|
V:61, I:65 | 59918 | 啟用 snap 軟體包的後臺守護程序(daemon)和工具 |
gnome-software-plugin-snap
|
V:1, I:2 | 112 | GNOME 軟體 管理器的 Snap 支援 |
xdg-desktop-portal
|
V:229, I:311 | 1773 | Flatpak 和 Snap 的桌面整合門戶 |
xdg-desktop-portal-gtk
|
V:195, I:309 | 746 | gtk (GNOME) 的 xdg-desktop-portal 後端 |
xdg-desktop-portal-kde
|
V:7, I:10 | 1300 | Qt (KDE) 的 xdg-desktop-portal 後端 |
xdg-desktop-portal-wlr
|
V:0, I:1 | 123 | wlroots (Wayland) 的 xdg-desktop-portal 後端 |
firejail
|
V:1, I:5 | 1771 | 和 AppImage 一起使用的 SUID 安全沙盒程式 firejail |
這個沙盒環境技術和在智慧手機作業系統上的應用程式非常相像,這裡的應用程式也是在資源訪問受到控制下執行的。
一些大的 GUI(圖形使用者介面)應用程式,比如說 Debian 上的網頁瀏覽器,也在內部使用了沙盒環境技術,這樣讓它們安全性更好。
表格 7.7. 著名的遠端訪問服務端列表
訪問在遠端主機上使用 Wayland 協議的桌面和應用,由遠端主機上的 GNOME 遠端桌面 軟體提供,透過 VNC 或 RDP 到本地客戶端。
訪問所有 QEMU 虛擬機器桌面的能力是由 SPICE (the Simple Protocol for Independent Computing Environments) 協議提供。
軟體包 | 流行度 | 大小 | 協議 | 說明 |
---|---|---|---|---|
gnome-remote-desktop
|
V:62, I:146 | 1036 | RDP, RFB (VNC) | GNOME 遠端桌面 服務端 |
vinagre
|
V:4, I:110 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: GNOME 遠端桌面客戶端 |
remmina
|
V:12, I:63 | 897 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: GTK 遠端桌面客戶端 |
krdc
|
V:1, I:17 | 3882 | RDP, RFB (VNC) | KRDC: KDE 遠端桌面客戶端 |
guacd
|
V:0, I:0 | 80 | RDP, RFB (VNC), SSH / HTML5 | Apache Guacamole: 無客戶端的遠端桌面閘道器 (HTML5) |
virt-viewer
|
V:4, I:51 | 1316 | RFB (VNC), SPICE | 虛擬機器管理器 下的客戶機作業系統的 GUI 顯示客戶端 |
有幾種方法從遠端主機上的應用連線到 X 服務端(包括本地主機的 xwayland
)。
表格 7.8. 連線到 X 伺服器的方式
軟體包 | 流行度 | 大小 | 指令 | 說明 |
---|---|---|---|---|
openssh-server
|
V:740, I:841 | 1867 | sshd 使用選項 X11-forwarding |
SSH 服務端(安全) |
openssh-client
|
V:856, I:997 | 5609 | ssh -X |
SSH 客戶端(安全) |
xauth
|
V:155, I:952 | 81 | xauth |
X 授權檔案工具 |
x11-xserver-utils
|
V:285, I:506 | 576 | xhost |
X 服務端訪問控制 |
使用 X 核心協議的本地應用,能夠透過本地 UNIX 域名套接字進行本地連線,來訪問本地的 X 服務端。這可以透過擁有 access cookie 的授權檔案來授權。
授權檔案的位置透過"$XAUTHORITY
"環境變數確定,X
顯示透過"$DISPLAY
" 環境變數確定。由於這些環境變數通常會被自動設定,不需要另行指定。 例如,下面的
"gitk
"。
username $ gitk
![]() |
注意 |
---|---|
對於 |
使用 X 核心協議的遠端應用訪問本地的 X 伺服器顯示,由 X11 轉發特性支援。
在本地主機中開啟一個 gnome 終端
。
透過下列命令,執行帶 -X
選項的 ssh
(1),建立與遠端站點的連線。
localname @ localhost $ ssh -q -X loginname@remotehost.domain Password:
透過下列命令,在遠端站點執行一個 X 應用程式,例如 “gitk
”。
loginname @ remotehost $ gitk
這個方法可以顯示來自遠端 X 客戶端的輸出,相當於它是通過一個本地 UNIX 域名 socket 進行本地的連線。
參見介紹 SSH/SSHD 的 節 6.3, “伺服器遠端存取和工具 (SSH)” 。
在同一個環境下(比如 chroot),使用 X 核心協議的應用訪問同一主機的 X 服務端,授權檔案無法訪問,能夠使用
xhost
進行安全的授權,透過使用 User-based access ,例如下面的
"gitk
"。
username $ xhost + si:localuser:root ; sudo chroot /path/to # cd /src # gitk # exit username $ xhost -
剪貼文字到剪貼簿,參見 節 1.4.4, “滑鼠操作”。
剪貼影象到剪貼簿,參見 節 11.6, “圖形資料工具”。
一些命令列的命令也能操作字元剪貼簿(主要鍵和剪貼簿)。
表格 7.9. 操作字元剪貼簿相關程式列表
軟體包 | 流行度 | 軟體包大小 | 當前目標 | 說明 |
---|---|---|---|---|
xsel
|
V:8, I:40 | 59 | X | X 選擇的命令列介面(剪貼簿) |
xclip
|
V:10, I:53 | 64 | X | X 選擇的命令列介面(剪貼簿) |
wl-clipboard
|
V:1, I:5 | 141 | Wayland | wl-copy wl-paste : Wayland 剪貼簿 的命令列介面 |
gpm
|
V:11, I:14 | 521 | Linux 控制檯 | 在 Linux 控制檯上捕獲滑鼠事件的後臺守護程序(daemon) |