內容目錄
在 Debian 系統上,有幾個功能全面的 GUI 桌面環境選擇。
表格 7.1. 桌面環境列表
任務軟體包 | 流行度 | 大小 | 說明 |
---|---|---|---|
task-gnome-desktop
|
I:191 | 9 | GNOME 桌面環境 |
task-xfce-desktop
|
I:97 | 9 | Xfce 桌面環境 |
task-kde-desktop
|
I:78 | 6 | KDE Plasma 桌面環境 |
task-mate-desktop
|
I:44 | 9 | MATE 桌面環境 |
task-cinnamon-desktop
|
I:41 | 9 | Cinnamon 桌面環境 |
task-lxde-desktop
|
I:30 | 9 | LXDE 桌面環境 |
task-lxqt-desktop
|
I:19 | 9 | LXQt 桌面環境 |
task-gnome-flashback-desktop
|
I:13 | 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:1, I:74 | 185 | GNOME 的 mutter 視窗管理器 [auto] |
xwayland
|
V:215, I:295 | 2363 | 執行在 wayland 之上的一個 X 服務端 [auto] |
gnome-remote-desktop
|
V:43, I:196 | 1063 | 使用 PipeWire 的 GNOME 遠端桌面後臺守護程序(daemon) [auto] |
gnome-tweaks
|
V:19, I:219 | 1200 | GNOME 的高階配置設定 |
gnome-shell-extension-prefs
|
V:13, I:195 | 59 | Tool to enable / disable GNOME Shell extensions |
這裡,"[auto]" 表示這些軟體包在
task-gnome-desktop
安裝時會自動安裝。
![]() |
提示 |
---|---|
|
![]() |
提示 |
---|---|
Detail features of GNOME desktop environment can be configured with
utilities started by typing " |
現在在 Debian 上,有許多有用的 GUI 應用存在。如果在 GNOME 桌面環境中沒有相應功能的軟體,那麼安裝例如
scribus
(KDE)這樣的軟體包是完全可以接受的。但安裝過多功能重複的軟體包,會使你的系統凌亂。
這裡是一份捕獲我眼球的 GUI(圖形使用者介面)程式列表。
表格 7.3. 著名的的 GUI(圖形使用者介面)應用列表
對於 Debian 的使用者,有許多有用的向量字型存在。使用者關注是怎樣避免冗餘,怎樣配置禁用部分已經安裝的字型。此外,無用的字型選擇可以搞亂你的 GUI(圖形使用者介面)應用程式選單。
Debian 系統使用 FreeType 2.0 庫來柵格化許多向量字型格式,用於螢幕和列印:
Type 1 (PostScript) 字型 使用三次 貝塞爾曲線 (差不多廢棄的格式)
TrueType 字型 使用二次 貝塞爾曲線 (好的選擇格式)
OpenType 字型 使用三次 貝塞爾曲線 (最佳選擇格式)
The following table is compiled in the hope to help users to chose appropriate scalable fonts with clear understanding of the metric compatibility and the glyph coverage. Most fonts cover all Latin, Greek, and Cyril characters. The final choice of activated fonts can also be affected by your aesthetics. These fonts can be used for the screen display or for the paper printing.
表格 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:543, I:997 | 933 | FreeType 字型柵格化庫 |
libfontconfig1
|
V:540, I:851 | 580 | Fontconfig 字型配置庫 |
fontconfig
|
V:422, I:721 | 679 | fc-* : Fontconfig 命令列命令 |
font-manager
|
V:2, I:8 | 1038 | 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 安全特性”)。
The xdg-desktop-portal
package provides a standardized
API to common desktop features. See
xdg-desktop-portal (flatpak) and xdg-desktop-portal (snap) .
表格 7.6. 著名的沙盒環境和相關軟體包列表
軟體包 | 流行度 | 大小 | 說明 |
---|---|---|---|
flatpak
|
V:58, I:63 | 7372 | Flatpak 桌面應用程式配置框架 |
gnome-software-plugin-flatpak
|
V:18, I:27 | 245 | GNOME 軟體 管理器的 Flatpak 支援 |
snapd
|
V:64, I:68 | 62749 | 啟用 snap 軟體包的後臺守護程序(daemon)和工具 |
gnome-software-plugin-snap
|
V:1, I:2 | 117 | GNOME 軟體 管理器的 Snap 支援 |
xdg-desktop-portal
|
V:271, I:366 | 1935 | Flatpak 和 Snap 的桌面整合門戶 |
xdg-desktop-portal-gtk
|
V:240, I:364 | 746 | gtk (GNOME) 的 xdg-desktop-portal 後端 |
xdg-desktop-portal-kde
|
V:37, I:54 | 1414 | Qt (KDE) 的 xdg-desktop-portal 後端 |
xdg-desktop-portal-wlr
|
V:0, I:1 | 131 | wlroots (Wayland) 的 xdg-desktop-portal 後端 |
firejail
|
V:1, I:4 | 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:43, I:196 | 1063 | RDP, RFB (VNC) | GNOME 遠端桌面 服務端 |
vinagre
|
V:3, I:83 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: GNOME 遠端桌面客戶端 |
remmina
|
V:14, I:69 | 915 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: GTK 遠端桌面客戶端 |
krdc
|
V:1, I:14 | 3904 | 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 | 1284 | RFB (VNC), SPICE | 虛擬機器管理器 下的客戶機作業系統的 GUI 顯示客戶端 |
有幾種方法從遠端主機上的應用連線到 X 服務端(包括本地主機的 xwayland
)。
表格 7.8. 連線到 X 伺服器的方式
軟體包 | 流行度 | 大小 | 指令 | 說明 |
---|---|---|---|---|
openssh-server
|
V:723, I:818 | 1948 | sshd 使用選項 X11-forwarding |
SSH 服務端(安全) |
openssh-client
|
V:854, I:997 | 5814 | ssh -X |
SSH 客戶端(安全) |
xauth
|
V:157, I:957 | 81 | xauth |
X 授權檔案工具 |
x11-xserver-utils
|
V:291, I:520 | 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)” 。
![]() |
警告 |
---|---|
A remote TCP/IP
connection to the X server is disabled by default on the Debian system for
security reasons. Don't enable them by simply setting " |
在同一個環境下(比如 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:38 | 55 | X | X 選擇的命令列介面(剪貼簿) |
xclip
|
V:11, I:57 | 64 | X | X 選擇的命令列介面(剪貼簿) |
wl-clipboard
|
V:2, I:10 | 158 | Wayland | wl-copy wl-paste : Wayland 剪貼簿 的命令列介面 |
gpm
|
V:10, I:12 | 521 | Linux 控制檯 | 在 Linux 控制檯上捕獲滑鼠事件的後臺守護程序(daemon) |