內容目錄
在 Debian 系統上,有幾個功能全面的 GUI 桌面環境選擇。
表格 7.1. 桌面環境列表
任務軟體包 | 流行度 | 大小 | 說明 |
---|---|---|---|
task-gnome-desktop
|
I:198 | 9 | GNOME 桌面環境 |
task-xfce-desktop
|
I:96 | 9 | Xfce 桌面環境 |
task-kde-desktop
|
I:81 | 6 | KDE Plasma 桌面環境 |
task-mate-desktop
|
I:43 | 9 | MATE 桌面環境 |
task-cinnamon-desktop
|
I:41 | 9 | Cinnamon 桌面環境 |
task-lxde-desktop
|
I:29 | 9 | LXDE 桌面環境 |
task-lxqt-desktop
|
I:18 | 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.8, “遠端桌面”
現代 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:60 | 187 | GNOME 的 mutter 視窗管理器 [auto] |
xwayland
|
V:240, I:319 | 2388 | 執行在 wayland 之上的一個 X 服務端 [auto] |
gnome-remote-desktop
|
V:35, I:221 | 1068 | 使用 PipeWire 的 GNOME 遠端桌面後臺守護程序(daemon) [auto] |
gnome-tweaks
|
V:21, I:229 | 1170 | GNOME 的高階配置設定 |
gnome-shell-extension-prefs
|
V:13, I:213 | 60 | 啟用/停用 GNOME 外殼擴充套件的工具 |
這裡,"[auto]" 表示這些軟體包在
task-gnome-desktop
安裝時會自動安裝。
提示 | |
---|---|
|
提示 | |
---|---|
GNOME 桌面環境的詳細特徵能夠使用工具來配置,在按下 |
現在在 Debian 上,有許多有用的 GUI 應用存在。如果在 GNOME 桌面環境中沒有相應功能的軟體,那麼安裝例如
scribus
(KDE)這樣的軟體包是完全可以接受的。但安裝過多功能重複的軟體包,會使你的系統凌亂。
這裡是一份捕獲我眼球的 GUI(圖形使用者介面)程式列表。
表格 7.3. 著名的的 GUI(圖形使用者介面)應用列表
使用者目錄,比如"~/Desktop
"、"~/Documents
"……,其預設的名字,使用系統安裝時桌面環境的語言。你能夠把它們重置為英語:
$ LANGUAGE=C xdg-user-dirs-update --force
然後你手工移到所有資料到新的目錄。參加 xdg-user-dirs-update
(1)。
透過編輯 "~/.config/user-dirs.dirs
",你也能夠把它們設定為任何名字。參見
user-dirs.dirs
(5)。
對於 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:560, I:997 | 938 | FreeType 字型柵格化庫 |
libfontconfig1
|
V:554, I:849 | 587 | Fontconfig 字型配置庫 |
fontconfig
|
V:437, I:721 | 680 | fc-* : Fontconfig 命令列命令 |
font-manager
|
V:2, I:8 | 1022 | 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.5, “Linux 安全特性”)。
xdg-desktop-portal
軟體包為通用的桌面特性提供一個標準的 API。參見 xdg-desktop-portal (flatpak) 和
xdg-desktop-portal (snap) 。
表格 7.6. 著名的沙盒環境和相關軟體包列表
軟體包 | 流行度 | 大小 | 說明 |
---|---|---|---|
flatpak
|
V:65, I:70 | 7499 | Flatpak 桌面應用程式配置框架 |
gnome-software-plugin-flatpak
|
V:20, I:29 | 254 | GNOME 軟體 管理器的 Flatpak 支援 |
snapd
|
V:67, I:70 | 60022 | 啟用 snap 軟體包的後臺守護程序(daemon)和工具 |
gnome-software-plugin-snap
|
V:1, I:2 | 121 | GNOME 軟體 管理器的 Snap 支援 |
xdg-desktop-portal
|
V:303, I:394 | 1936 | Flatpak 和 Snap 的桌面整合門戶 |
xdg-desktop-portal-gtk
|
V:274, I:392 | 715 | gtk (GNOME) 的 xdg-desktop-portal 後端 |
xdg-desktop-portal-kde
|
V:53, I:72 | 1438 | Qt (KDE) 的 xdg-desktop-portal 後端 |
xdg-desktop-portal-wlr
|
V:0, I:4 | 135 | 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:35, I:221 | 1068 | RDP | GNOME 遠端桌面 服務端 |
xrdp
|
V:22, I:24 | 3202 | RDP | xrdp, 遠端桌面協議 (RDP) 伺服器 |
x11vnc
|
V:6, I:23 | 2107 | RFB (VNC) | x11vnc, 遠端幀快取協議 (VNC) 伺服器 |
tigervnc-standalone-server
|
V:4, I:15 | 2768 | RFB (VNC) | TigerVNC, 遠端幀快取協議 (VNC) 伺服器 |
gnome-connections
|
V:0, I:1 | 1356 | RDP, RFB (VNC) | GNOME 遠端桌面客戶端 |
vinagre
|
V:2, I:68 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: GNOME 遠端桌面客戶端 |
remmina
|
V:15, I:72 | 953 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: GTK 遠端桌面客戶端 |
krdc
|
V:1, I:17 | 3873 | RDP, RFB (VNC) | KRDC: KDE 遠端桌面客戶端 |
guacd
|
V:0, I:0 | 83 | RDP, RFB (VNC), SSH / HTML5 | Apache Guacamole: 無客戶端的遠端桌面閘道器 (HTML5) |
virt-viewer
|
V:5, I:52 | 1284 | RFB (VNC), SPICE | 虛擬機器管理器 下的客戶機作業系統的 GUI 顯示客戶端 |
有幾種方法從遠端主機上的應用連線到 X 服務端(包括本地主機的 xwayland
)。
表格 7.8. 連線到 X 伺服器的方式
軟體包 | 流行度 | 大小 | 指令 | 說明 |
---|---|---|---|---|
openssh-server
|
V:730, I:814 | 1804 | sshd 使用選項 X11-forwarding |
SSH 服務端(安全) |
openssh-client
|
V:866, I:996 | 4959 | ssh -X |
SSH 客戶端(安全) |
xauth
|
V:165, I:961 | 81 | xauth |
X 授權檔案工具 |
x11-xserver-utils
|
V:302, I:528 | 568 | 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:9, I:42 | 55 | X | X 選擇的命令列介面(剪貼簿) |
xclip
|
V:12, I:63 | 62 | X | X 選擇的命令列介面(剪貼簿) |
wl-clipboard
|
V:3, I:14 | 162 | Wayland | wl-copy wl-paste : Wayland 剪貼簿 的命令列介面 |
gpm
|
V:10, I:12 | 521 | Linux 控制檯 | 在 Linux 控制檯上捕獲滑鼠事件的後臺守護程序(daemon) |