章 7. GUI（圖形使用者介面）系統

# 章 7. GUI（圖形使用者介面）系統

## 7.1. GUI（圖形使用者介面）桌面環境

在 Debian 系統上，有幾個功能全面的 GUI 桌面環境選擇。

表格 7.1. 桌面環境列表

任務軟體包 | 流行度 | 大小 | 說明
--- | --- | --- | ---
`task-gnome-desktop` | I:200 | 9 | GNOME 桌面環境
`task-xfce-desktop` | I:91 | 9 | Xfce 桌面環境
`task-kde-desktop` | I:96 | 6 | KDE Plasma 桌面環境
`task-mate-desktop` | I:35 | 9 | MATE 桌面環境
`task-cinnamon-desktop` | I:39 | 9 | Cinnamon 桌面環境
`task-lxde-desktop` | I:22 | 9 | LXDE 桌面環境
`task-lxqt-desktop` | I:17 | 9 | LXQt 桌面環境
`task-gnome-flashback-desktop` | I:11 | 6 | GNOME Flashback 桌面環境

| 提示

選擇的任務元軟體包的依賴軟體包，在 Debian `非穩定版`/`測試版` 環境下，由於最新的軟體包變遷狀態，可能沒有及時同步。對於 `task-gnome-desktop`，你可以按下面的方法調整軟體包選擇：

- 用 `sudo aptitude -u` 啟動 `aptitude`(8)。

- 移動游標到"Tasks"並按回車鍵。

- 移動游標到 "End-user" 並按回車鍵。

- 移動游標到 "GNOME" 並按回車鍵。

- 移動游標到 `task-gnome-desktop` 並按回車鍵。

- 移動游標到 "Depends" 並按 "m"（手工選擇）。

- 移動游標到 "Recommends"並按"m" （手工選擇）。

- 移動游標到 "`task-gnome-desktop` 並按"-"。（刪除）

- 調整選擇的軟體包，並刪除造成軟體包衝突的問題軟體包。

- 按"g" 來開始安裝。

本章將大部分關注 Debian 預設的桌面環境： `task-gnome-desktop`，在 wayland 上提供 GNOME。

## 7.2. GUI（圖形使用者介面）通訊協議

在 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 服務端配置檔案 "`/etc/X11/xorg.conf`" 不應當在系統上存在。顯示卡和輸入裝置目前是由核心的 DRM、KMS 和 udev 配置。原生的 X 服務端已經重寫來使用它們。參見 Linux 核心文件的 "modedb default video mode support"。

## 7.3. GUI（圖形使用者介面）架構

這裡是 Wayland 環境上用於 GNOME 的著名的 GUI 架構軟體包。

表格 7.2. 著名的 GUI 架構軟體包列表

軟體包 | 流行度 | 軟體包大小 | 說明
--- | --- | --- | ---
`mutter` | V:0, I:28 | 222 | GNOME 的 mutter 視窗管理器 [auto]
`xwayland` | V:255, I:346 | 2541 | 執行在 wayland 之上的一個 X 服務端 [auto]
`gnome-remote-desktop` | V:122, I:250 | 2215 | 使用 PipeWire 的 GNOME 遠端桌面後臺守護程序（daemon） [auto]
`gnome-tweaks` | V:19, I:242 | 1145 | GNOME 的高階配置設定
`gnome-shell-extension-prefs` | V:9, I:145 | 83 | 啟用/停用 GNOME 外殼擴充套件的工具

這裡，"[auto]" 表示這些軟體包在 `task-gnome-desktop` 安裝時會自動安裝。

| 提示

`gnome-tweaks` 是一個不可缺少的配置工具。例如：

- 你能強制調整聲音音量，從“General（普通） ”到 "Over-Amplification（過分放大）"。

- 你能夠強迫"Caps"鍵變成"Esc"鍵，從"Keyboard & Mouse" -> "Keyboard" -> "Additional Layout Option".

| 提示
GNOME 桌面環境的詳細特徵能夠使用工具來配置，在按下 `Super`-鍵後，透過選擇 "`settings`", "`tweaks`"或 "`extensions`" 來啟動配置。

## 7.4. GUI（圖形使用者介面）應用

現在在 Debian 上，有許多有用的 GUI 應用存在。如果在 GNOME 桌面環境中沒有相應功能的軟體，那麼安裝例如 `scribus`（KDE）這樣的軟體包是完全可以接受的。但安裝過多功能重複的軟體包，會使你的系統凌亂。

這裡是一份捕獲我眼球的 GUI（圖形使用者介面）程式列表。

表格 7.3. 著名的的 GUI（圖形使用者介面）應用列表

軟體包 | 流行度 | 軟體包大小 | 類型 | 說明
--- | --- | --- | --- | ---
`evolution` | V:28, I:240 | 492 | GNOME | 個人資訊管理（群組軟體和電子郵件）
`thunderbird` | V:46, I:109 | 274692 | GTK | 電子郵件客戶端 (Mozilla Thunderbird（雷鳥）)
`kontact` | V:1, I:11 | 2298 | KDE | 個人資訊管理（群組軟體和電子郵件）
`libreoffice-writer` | V:120, I:441 | 33269 | LO | 文書處理軟體
`abiword` | V:1, I:5 | 3601 | GNOME | 文書處理軟體
`calligrawords` | V:0, I:3 | 6937 | KDE | 文書處理軟體
`scribus` | V:1, I:13 | 32052 | KDE | 編輯 PDF 檔案的 desktop publishing 編輯器
`glabels` | V:0, I:2 | 1283 | GNOME | 標籤編輯器
`libreoffice-calc` | V:116, I:438 | 28287 | LO | 電子表格
`gnumeric` | V:3, I:11 | 9958 | GNOME | 電子表格
`calligrasheets` | V:0, I:2 | 13593 | KDE | 電子表格
`libreoffice-impress` | V:97, I:436 | 2459 | LO | 簡報
`calligrastage` | V:0, I:2 | 6017 | KDE | 簡報
`libreoffice-base` | V:24, I:77 | 5004 | LO | 資料庫管理
`kexi` | V:0, I:0 | 7565 | KDE | 資料庫管理
`libreoffice-draw` | V:98, I:437 | 11003 | LO | 向量圖形編輯器（繪圖）
`inkscape` | V:13, I:85 | 113183 | GNOME | 向量圖形編輯器（繪圖）
`karbon` | V:0, I:3 | 3962 | KDE | 向量圖形編輯器（繪圖）
`dia` | V:1, I:18 | 3812 | GTK | 流程圖和示意圖編輯器
`gimp` | V:35, I:229 | 31748 | GTK | 點陣圖圖形編輯器 (繪圖)
`shotwell` | V:15, I:258 | 6334 | GTK | 數碼照片管理器
`digikam` | V:1, I:9 | 302 | KDE | 數碼照片管理器
`darktable` | V:3, I:12 | 35895 | GTK | 攝影師的虛擬燈臺和暗房
`planner` | V:0, I:4 | 1400 | GNOME | 專案管理
`calligraplan` | V:0, I:3 | 23545 | KDE | 專案管理
`gnucash` | V:2, I:7 | 29395 | GNOME | 個人會計
`homebank` | V:0, I:1 | 3194 | GTK | 個人會計
`lilypond` | V:0, I:6 | 16924 | - | 音樂排版
`kmymoney` | V:0, I:2 | 18826 | KDE | 個人會計
`librecad` | V:1, I:14 | 9100 | Qt 應用 | 計算機輔助設計(CAD) 系統 (2D)
`freecad` | V:0, I:20 | 110 | Qt 應用 | 計算機輔助設計(CAD) 系統 (3D)
`kicad` | V:3, I:15 | 163907 | GTK | 電路圖和 PCB 設計軟體
`xsane` | V:10, I:135 | 1512 | GTK | 掃描器前段
`libreoffice-math` | V:90, I:439 | 1928 | LO | 數學方程/公式編輯器
`calibre` | V:8, I:26 | 65584 | KDE | 電子書轉換器和庫管理
`fbreader` | V:0, I:6 | 3783 | GTK | 電子書閱讀器
`evince` | V:80, I:302 | 952 | GNOME | 文件（pdf）閱讀器
`okular` | V:44, I:135 | 4415 | KDE | 文件（pdf）閱讀器
`x11-apps` | V:33, I:464 | 2461 | 單純的 X 應用 | `xeyes`(1)等。
`x11-utils` | V:227, I:568 | 651 | 單純的 X 應用 | `xev`(1)、 `xwininfo`(1)等。

## 7.5. 使用者目錄

使用者目錄，比如"`~/Desktop`"、"`~/Documents`"……，其預設的名字，使用系統安裝時桌面環境的語言。你能夠把它們重置為英語：

     $ LANGUAGE=C xdg-user-dirs-update --force

然後你手工移到所有資料到新的目錄。參加 `xdg-user-dirs-update`(1)。

透過編輯 "`~/.config/user-dirs.dirs`"，你也能夠把它們設定為任何名字。參見 `user-dirs.dirs`(5)。

## 7.6. 字型

對於 Debian 的使用者，有許多有用的向量字型存在。使用者關注是怎樣避免冗餘，怎樣配置停用部分已經安裝的字型。此外，無用的字型選擇可以搞亂你的 GUI（圖形使用者介面）應用程式選單。

Debian 系統使用 FreeType 2.0 庫來柵格化許多向量字型格式，用於螢幕和列印：

- Type 1 (PostScript) 字型 使用三次 貝塞爾曲線 (差不多廢棄的格式)

- TrueType 字型 使用二次 貝塞爾曲線 (好的選擇格式)

- OpenType 字型 使用三次 貝塞爾曲線 (最佳選擇格式)

### 7.6.1. 基礎字型

下面的編撰的表格希望幫助使用者選擇適當的向量字型，並清楚的理解 排版指標相容（metric compatibility） 和 字形覆蓋。大部分字型覆蓋了所有拉丁、希臘和 Cyril 字元。最終選擇的啟用字型也受你的審美觀影響。這些字型能夠被用於螢幕顯示和紙張列印。

表格 7.4. 著名的 TrueType 和 OpenType 字型列表

軟體包 | 流行度 | 大小 | sans | serif | mono | 字型註釋
--- | --- | --- | --- | --- | --- | ---
fonts-cantarell | V:182, I:305 | 227 | 59 | - | - | Cantarell (GNOME 3, 顯示)
fonts-noto | I:157 | 31 | 61 | 63 | 40 | Noto fonts (Google, 有 CJK 的多語言)
fonts-dejavu | I:405 | 35 | 58 | 68 | 40 | DejaVu (GNOME 2, MCM:Verdana, 擴充套件 Bitstream Vera)
fonts-liberation2 | V:63, I:218 | 15 | 56 | 60 | 40 | Liberation 字型 用於 LibreOffice (Red Hat, MCMATC)
fonts-croscore | V:21, I:38 | 5274 | 56 | 60 | 40 | Chrome OS: Arimo, Tinos 和 Cousine (Google, MCMATC)
fonts-crosextra-carlito | V:20, I:98 | 2696 | 57 | - | - | Chrome 作業系統: Carlito (Google, MCM:Calibri )
fonts-crosextra-caladea | V:11, I:93 | 347 | - | 55 | - | Chrome 作業系統: Caladea (Google, MCM:Cambria ) (只有拉丁字元 )
fonts-freefont-ttf | V:82, I:207 | 14460 | 57 | 59 | 40 | GNU FreeFont (擴充套件 URW Nimbus)
fonts-quicksand | V:209, I:465 | 392 | 56 | - | - | Debian 任務桌面, Quicksand (顯示，只有拉丁字元)
fonts-hack | V:33, I:140 | 2507 | - | - | 40 P | 給原始碼設計的一個字型 Hack (Facebook)
fonts-sil-gentiumplus | I:30 | 14345 | - | 54 | - | Gentium SIL
fonts-sil-charis | I:29 | 6704 | - | 59 | - | Charis SIL
fonts-urw-base35 | V:194, I:541 | 15560 | 56 | 60 | 40 | URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu | V:2, I:5 | 4339 | 58 | - | 33 P | Ubuntu 字型 (顯示)
fonts-terminus | V:0, I:4 | 452 | - | - | 33 | Cool retro 終端字型
ttf-mscorefonts-installer | V:0, I:42 | 85 | 56? | 60 | 40 | 下載微軟非開源字型（見下）

這裡：

- "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:" 列出，在本地化任務軟體包裡面是首要候選軟體包。

### 7.6.2. 字型柵格化

Debian 使用 FreeType 來柵格化字型。它的字型選擇架構由 Fontconfig 字型配置庫提供。

表格 7.5. 著名的字型環境和相關軟體包列表

軟體包 | 流行度 | 大小 | 說明
--- | --- | --- | ---
`libfreetype6` | V:580, I:997 | 1021 | FreeType 字型柵格化庫
`libfontconfig1` | V:569, I:827 | 344 | Fontconfig 字型配置庫
`fontconfig` | V:462, I:706 | 415 | `fc-*`: Fontconfig 命令列命令
`font-manager` | V:2, I:7 | 1118 | Font 管理器: Fontconfig GUI（圖形使用者介面）命令
`nautilus-font-manager` | V:0, I:0 | 40 | Font 管理器 的 Nautilus 擴充套件

| 提示
一些字型軟體包，比如說 `fonts-noto*`，會安裝太多的字型。你可以保持某些字型軟體包的安裝，但在通常使用的情況下停用。由於 Han unification 中日韓統一表意文字， 一些 Unicode 碼點被期望有多個 字形，不希望的字形變體會被沒有配置的 Fontconfig 庫選擇。一個最令人討厭的情形是在 CJK 中日韓國家中的 "U+3001 IDEOGRAPHIC COMMA" 和 "U+3002 IDEOGRAPHIC FULL STOP"。你能夠使用 GUI（圖形使用者介面）字型管理器 (font-manager) 簡單的配置存在的字型來避免這個問題情形。

你也可以從命令列列出字型配置狀態。

- 使用 “`fc-match(1)`” 檢視 fontconfig 的預設字型

- 使用 “`fc-list(1)`” 檢視所有可用的 fontconfig 字型

你能夠從文字編輯器配置字型配置狀態，但這是瑣碎的。參見 `fonts.conf`(5)。

## 7.7. 沙盒

Linux 上大部分 GUI（圖形使用者介面）應用在非 Debian 的源上，是以二進位制格式存在。

- AppImage -- 任何地方執行的 Linux 應用

- FLATHUB -- Linux 應用，就是這裡

- snapcraft -- Linux 應用商店

| 警告
從這些站點來的二進位制軟體包，有可能包括私有的非開源軟體。

對使用 Debian 的自由軟體的狂熱愛好者，這些二進位制格式的分發，有一些存在的理由。因為這能夠得到一個乾淨的庫集合，由 Debian 提供的庫和由每個應用程式相應的上游開發者使用的庫，獨立開來。

執行外部二進位制的固有風險，能夠使用 沙盒環境 減少，它有現代 Linux 安全特性的手段。（參見 節 4.7.5, “Linux 安全特性”）。

- 對於 AppImage 和一些上游站點來的二進位制，在 手工配置 後的 firejail 裡執行。

- 對於從 FLATHUB 來的二進位制，在 Flatpak 裡執行它們。（不需要手工配置。）

- 對於從 snapcraft 來的二進位制，在 Snap 裡面執行它們。（不需要手工配置。和後臺守護程序（daemon）相容。）

`xdg-desktop-portal` 軟體包為通用的桌面特性提供一個標準的 API。參見 xdg-desktop-portal (flatpak) 和 xdg-desktop-portal (snap) 。

表格 7.6. 著名的沙盒環境和相關軟體包列表

軟體包 | 流行度 | 大小 | 說明
--- | --- | --- | ---
`flatpak` | V:101, I:107 | 8280 | Flatpak 桌面應用程式配置框架
`gnome-software-plugin-flatpak` | V:29, I:41 | 285 | GNOME 軟體 管理器的 Flatpak 支援
`snapd` | V:65, I:69 | 72012 | 啟用 snap 軟體包的後臺守護程序（daemon）和工具
`gnome-software-plugin-snap` | V:1, I:2 | 148 | GNOME 軟體 管理器的 Snap 支援
`xdg-desktop-portal` | V:364, I:449 | 2166 | Flatpak 和 Snap 的桌面整合門戶
`xdg-desktop-portal-gtk` | V:332, I:447 | 715 | gtk (GNOME) 的 xdg-desktop-portal 後端
`xdg-desktop-portal-kde` | V:79, I:112 | 2688 | Qt (KDE) 的 xdg-desktop-portal 後端
`xdg-desktop-portal-wlr` | V:1, I:6 | 160 | wlroots (Wayland) 的 xdg-desktop-portal 後端
`firejail` | V:1, I:4 | 1881 | 和 AppImage 一起使用的 SUID 安全沙盒程式 firejail

這個沙盒環境技術和在智慧手機作業系統上的應用程式非常相像，這裡的應用程式也是在資源訪問受到控制下執行的。

一些大的 GUI（圖形使用者介面）應用程式，比如說 Debian 上的網頁瀏覽器，也在內部使用了沙盒環境技術，這樣讓它們安全性更好。

## 7.8. 遠端桌面

表格 7.7. 著名的遠端訪問服務端列表

訪問在遠端主機上使用 Wayland 協議的桌面和應用，由遠端主機上的 GNOME 遠端桌面 軟體提供，透過 VNC 或 RDP 到本地客戶端。

訪問所有 QEMU 虛擬機器桌面的能力是由 SPICE (the Simple Protocol for Independent Computing Environments) 協議提供。

軟體包 | 流行度 | 大小 | 協議 | 說明
--- | --- | --- | --- | ---
`gnome-remote-desktop` | V:122, I:250 | 2215 | RDP | GNOME 遠端桌面 服務端
`xrdp` | V:24, I:28 | 4502 | RDP | xrdp, 遠端桌面協議 (RDP) 伺服器
`x11vnc` | V:8, I:42 | 1863 | RFB (VNC) | x11vnc, 遠端幀快取協議 (VNC) 伺服器
`tigervnc-standalone-server` | V:5, I:14 | 2967 | RFB (VNC) | TigerVNC, 遠端幀快取協議 (VNC) 伺服器
`gnome-connections` | V:6, I:125 | 1599 | RDP, RFB (VNC) | GNOME 遠端桌面客戶端
`vinagre` | V:1, I:28 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: GNOME 遠端桌面客戶端
`remmina` | V:15, I:64 | 971 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: GTK 遠端桌面客戶端
`krdc` | V:1, I:16 | 4113 | RDP, RFB (VNC) | KRDC: KDE 遠端桌面客戶端
`virt-viewer` | V:5, I:44 | 1278 | RFB (VNC), SPICE | 虛擬機器管理器 下的客戶機作業系統的 GUI 顯示客戶端

## 7.9. X 服務端連線

有幾種方法從遠端主機上的應用連線到 X 服務端（包括本地主機的 `xwayland` ）。

表格 7.8. 連線到 X 伺服器的方式

軟體包 | 流行度 | 大小 | 指令 | 說明
--- | --- | --- | --- | ---
`openssh-server` | V:745, I:804 | 3502 | `sshd` 使用選項 `X11-forwarding` | SSH 服務端（安全）
`openssh-client` | V:898, I:996 | 5133 | `ssh -X` | SSH 客戶端（安全）
`xauth` | V:186, I:971 | 81 | `xauth` | X 授權檔案工具
`x11-xserver-utils` | V:312, I:542 | 559 | `xhost` | X 服務端訪問控制

### 7.9.1. X 服務端本地連線

使用 X 核心協議的本地應用，能夠透過本地 UNIX 域名套接字進行本地連線，來訪問本地的 X 服務端。這可以透過擁有 access cookie 的授權檔案來授權。 授權檔案的位置透過"`$XAUTHORITY`"環境變數確定，X 顯示透過"`$DISPLAY`" 環境變數確定。由於這些環境變數通常會被自動設定，不需要另行指定。 例如，下面的 "`gitk`"。

    username $ gitk

| 注意
對於 `xwayland`, `XAUTHORITY` 有類似 "`/run/user/1000/.mutter-Xwaylandauth.YVSU30`"的值。

### 7.9.2. X 服務端遠端連線

使用 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)” 。

| 警告
由於安全的原因，在 Debian 系統上，遠端 TCP/IP 連線到 X 服務端，是預設被停用的。不要透過簡單的設定 "`xhost +`"來啟用它們。如果能夠避免的話，也不要啟用 XDMCP 連線。

### 7.9.3. X 服務端 chroot 連線

在同一個環境下（比如 chroot），使用 X 核心協議的應用訪問同一主機的 X 服務端，授權檔案無法訪問，能夠使用 `xhost` 進行安全的授權，透過使用 User-based access ，例如下面的 "`gitk`"。

    username $ xhost + si:localuser:root ; sudo chroot /path/to
    # cd /src
    # gitk
    # exit
    username $ xhost -

## 7.10. 剪貼簿

剪貼文字到剪貼簿，參見 節 1.4.4, “滑鼠操作”。

剪貼影像到剪貼簿，參見 節 11.6, “圖形資料工具”。

一些命令列的命令也能操作字元剪貼簿（主要鍵和剪貼簿）。

表格 7.9. 操作字元剪貼簿相關程式列表

軟體包 | 流行度 | 軟體包大小 | 當前目標 | 說明
--- | --- | --- | --- | ---
`xsel` | V:7, I:43 | 55 | X | X 選擇的命令列介面（剪貼簿）
`xclip` | V:15, I:74 | 62 | X | X 選擇的命令列介面（剪貼簿）
`wl-clipboard` | V:7, I:23 | 162 | Wayland | `wl-copy` `wl-paste`: Wayland 剪貼簿 的命令列介面
`gpm` | V:9, I:9 | 526 | Linux 控制檯 | 在 Linux 控制檯上捕獲滑鼠事件的後臺守護程序（daemon）

章 6. 網路應用 |  | 章 8. I18N 和 L10N