第7章 GUI システム

# 第7章 GUI システム

## 7.1. GUI デスクトップ環境

Debian システム上のフル機能の GUI デスクトップ環境にはいくつかの選択肢があります。

表7.1 デスクトップ環境のリスト

タスクパッケージ | ポプコン | サイズ | 説明
--- | --- | --- | ---
`task-gnome-desktop` | I:187 | 9 | GNOME デスクトップ環境
`task-xfce-desktop` | I:88 | 9 | Xfce デスクトップ環境
`task-kde-desktop` | I:93 | 6 | KDE Plasma デスクトップ環境
`task-mate-desktop` | I:31 | 9 | MATE デスクトップ環境
`task-cinnamon-desktop` | I:36 | 9 | Cinnamon デスクトップ環境
`task-lxde-desktop` | I:20 | 9 | LXDE デスクトップ環境
`task-lxqt-desktop` | I:17 | 9 | LXQt デスクトップ環境
`task-gnome-flashback-desktop` | I:9.9 | 6 | GNOME Flashback デスクトップ環境

| ヒント

タスク メタパッケージによって選ばれた依存パッケージは、Debian `unstable`/`testing` 環境下で最新のパッケージ移行状態と同期していないかもしれません。`task-gnome-desktop` の場合、以下のようにパッケージ選択を調整する必要があるかもしれません:

- `sudo aptitude -u` として aptitude(8) をスタートします。

- カーサを "Tasks" に移動し "Enter" を押します。

- カーサを "End-user" に移動し "Enter" を押します。

- カーサを "GNOME" に移動し "Enter" を押します。

- カーサを `task-gnome-desktop` に移動し "Enter" を押します。

- カーサを "Depends" に移動し "m" (手動で manually 選択) を押します。

- カーサを "Recommends" に移動し "m" (手動で manually 選択) を押します。

- カーサを "`task-gnome-desktop` に移動し "-" を押します。 (drop)

- パッケージ間コンフリクトを引き起こしている問題あるパッケージを落としながら選択されたパッケージを調整します。

- "g" を押してインストールを開始します。

本章は Debian のデフォルトデスクトップ環境にフォーカスします: wayland 上の GNOME を提供する `task-gnome-desktop`。

## 7.2. GUI 通信プロトコル

GNOME デスクトップで使用されうる GUI 通信プロトコル:

- Wayland (ディスプレイサーバプロトコル) (ネイティブ)

- X Window システム コア プロトコル (`xwayland` 経由)

Wayland アーキテクチャーは X Window アーキテクチャーとどう違うのかという freedesktop.org サイトを確認して下さい。

ユーザー視点からは、相違点は以下のように口語的にまとめられます。

- Wayland は 同一ホスト上の GUI 通信プロトコル: 新規、簡単、高速、非 setuid root のバイナリー

- X Window は ネットワーク対応可能な GUI 通信プロトコル: 伝統的、複雑、低速、setuid root のバイナリー

Wayland プロトコルを使うアプリケーションにとって、その表示内容へのリモートホストからのアクセスは VNC や RDP によって支えられています。「リモートデスクトップ」を参照下さい。

現代的な X サーバーは MIT 共有メモリー拡張 機能があり、ローカルの X クライアントとローカルの共有メモリーを使って通信します。これはネットワーク透過性の Xlib プロセス間通信チャンネルをバイパスし性能が得られるようにしています。この状況がローカル限定の通信プロトコルの Wayland が作られた背景です。

GNOME ターミナルから起動された `xeyes` プログラムを使うことで、各 GUI アプリケーションが使う GUI コミュニケーションプロトコルが確認できます。

     $ xeyes

- Wayland 表示サーバープロトコルを使う "GNOME ターミナル" のようなアプリケーション上にマウスカーソールがある際には、目玉はマウスカーソールにつれて動きません。

- X Window システムコアプロトコルを使う "xterm" のようなアプリケーション上にマウスカーソールがある際には、X Window アーキテクチャーの分離不十分性がさらされ目玉はマウスカーソールにつれて動きます。

2021年4月の時点で、GNOME や LibreOffice (LO) アプリケーション等の多くの人気ある GUI アプリケーションが Wayland 表示サーバープロトコルに移行しました。`xterm` や `gitk` や `chromium` や `firefox` や `gimp` や `dia` や KDE アプリケーションが、未だに X Window システムコアプロトコルを使っていると見受けます。

| 注記
Wayland 上の xwayland とネイティブの X Window システムの両方とも、古い X サーバー設定ファイル "`/etc/X11/xorg.conf`" はシステム上に存在するべきではありません。画像や入力デバイスは DRM や KMS や udev によるカーネルによって設定されます。 ネイティブの X Window サーバーはこれらを使うように書き換えられました。Linux カーネル文書の"modedb デフォルトビデオモードサポート" を参照下さい。

## 7.3. GUI インフラストラクチャー

Wayland 環境上の GNOME のための特記すべき GUI インフラパッケージは以下です。

表7.2 データーインフラパッケージのリスト

パッケージ | ポプコン | パッケージサイズ | 説明
--- | --- | --- | ---
`mutter` | V:1, I:24 | 215 | GNOME の mutter ウィンドウマネージャ [自動]
`xwayland` | V:249, I:329 | 2652 | wayland 上で実行される X サーバー [自動]
`gnome-remote-desktop` | V:139, I:236 | 2453 | GNOME のための PipeWire を使うリモートデスクトップデーモン [自動]
`gnome-tweaks` | V:16, I:228 | 1145 | GNOME のための高度な構成設定
`gnome-shell-extension-prefs` | V:7, I:121 | 73 | GNOME シェル拡張を有効化・無効化するツール

ここで、"[自動]" は `task-gnome-desktop` がインストールされた際に自動的にインストールされるパッケージの意味です。

| ヒント

`gnome-tweaks` は不可欠の設定ユーティリティーです。例えば:

- "General" から音量ボリュームの "Over-Amplification" を強制できます。

- "Keyboard & Mouse" -> "Keyboard" -> "Additional Layout Option" から "Caps" が "Esc" になるよう強制できます。

| ヒント
GNOME デスクトップ環境の詳細機能は、`Super` キー打鍵後、"`settings`" か "`tweaks`" か "`extensions`" とタイプして起動されるユーティリティーで設定できます。

## 7.4. GUI アプリケーション

有用な GUI アプリケーションの多くは Debian で利用できるようになりました。対応する機能が GNOME デスクトップ環境下では利用できないため、`scribus` (KDE) のようなソフトウェアを GNOME デスクトップ環境にインストールするのはまったく問題ありません。しかしながら、機能が重複するパッケージをインストールしすぎるとあなたのシステムが散らかってしまいます。

著者の目に止まった GUI アプリケーションのリストを記します。

表7.3 特筆すべき GUI アプリケーションのリスト

パッケージ | ポプコン | パッケージサイズ | タイプ | 説明
--- | --- | --- | --- | ---
`evolution` | V:25, I:225 | 489 | GNOME | 個人情報管理 (グループウエアと電子メール)
`thunderbird` | V:41, I:103 | 274581 | GTK | Eメールクライアント (Mozilla Thunderbird)
`kontact` | V:1.0, I:9.3 | 2360 | KDE | 個人情報管理 (グループウエアと電子メール)
`libreoffice-writer` | V:107, I:418 | 34123 | LO | ワードプロセッサ
`abiword` | V:0.9, I:5.2 | 3596 | GNOME | ワードプロセッサ
`calligrawords` | V:0.2, I:2.9 | 7134 | KDE | ワードプロセッサ
`scribus` | V:1, I:12 | 32415 | KDE | PDF ファイルを編集するための デスクトップパブリッシング
`glabels` | V:0.3, I:2.6 | 1283 | GNOME | ラベルエディター
`libreoffice-calc` | V:104, I:415 | 28733 | LO | スプレッドシート
`gnumeric` | V:3, I:11 | 9945 | GNOME | スプレッドシート
`calligrasheets` | V:0.1, I:1.8 | 14012 | KDE | スプレッドシート
`libreoffice-impress` | V:91, I:414 | 2485 | LO | プレゼンテーション
`calligrastage` | V:0.1, I:1.8 | 6194 | KDE | プレゼンテーション
`libreoffice-base` | V:21, I:69 | 5050 | LO | データーベース管理
`kexi` | V:0.06, I:0.86 | 7565 | KDE | データーベース管理
`libreoffice-draw` | V:91, I:414 | 11209 | LO | ベクトル画像エディター (ドロー)
`inkscape` | V:11, I:76 | 113353 | GNOME | ベクトル画像エディター (ドロー)
`karbon` | V:0.1, I:2.3 | 4004 | KDE | ベクトル画像エディター (ドロー)
`dia` | V:1, I:15 | 3846 | GTK | フローチャートやダイアグラムエディター
`gimp` | V:41, I:214 | 32779 | GTK | ビットマップ画像エディター (ペイント)
`shotwell` | V:14, I:243 | 6334 | GTK | デジタル写真オーガナイザー
`digikam` | V:1.5, I:8.6 | 325 | KDE | デジタル写真オーガナイザー
`darktable` | V:4, I:11 | 35876 | GTK | 写真家のためのライトボックスと暗室
`gnome-video-trimmer` | V:0.2, I:1.1 | 1665 | GNOME | ビデオファイルのロスレス切り取り
`kdenlive` | V:3, I:22 | 19821 | KDE | ノンリニアー ビデオ エディター
`shotcut` | V:1.0, I:7.1 | 7943 | Qt アプリ | ノンリニアー ビデオ エディター
`openshot-qt` | V:0.9, I:9.3 | 196007 | Qt アプリ | ノンリニアー ビデオ エディター
`flowblade` | V:0.2, I:2.3 | 42213 | GTK | ノンリニアー ビデオ エディター
`planner` | V:0.1, I:3.2 | 1400 | GNOME | プロジェクト管理
`calligraplan` | V:0.1, I:1.8 | 23545 | KDE | プロジェクト管理
`gnucash` | V:2.3, I:7.2 | 29451 | GNOME | 個人会計
`homebank` | V:0.3, I:1.7 | 3194 | GTK | 個人会計
`kmymoney` | V:0.5, I:2.0 | 19289 | KDE | 個人会計
`frescobaldi` | V:0.2, I:1.5 | 11102 | Qt アプリ | LilyPond 楽譜テキストエディター
`librecad` | V:1, I:12 | 9164 | Qt アプリ | コンピューター支援設計 (CAD) システム (2D)
`freecad` | V:1, I:19 | 112 | Qt アプリ | コンピューター支援設計 (CAD) システム (3D)
`kicad` | V:3, I:13 | 222895 | GTK | 電気回路図と PCB デザインソフトウェアー
`xsane` | V:8, I:129 | 1512 | GTK | スキャナーのフロントエンド
`libreoffice-math` | V:87, I:417 | 1958 | LO | 数式エディター
`calibre` | V:7, I:26 | 69924 | KDE | e-book コンバーターとライブラリーの管理
`fbreader` | V:0.6, I:6.0 | 3827 | GTK | e-book リーダー
`evince` | V:72, I:282 | 942 | GNOME | 文書 (pdf) ビューワー
`okular` | V:41, I:129 | 4419 | KDE | 文書 (pdf) ビューワー
`x11-apps` | V:30, I:440 | 2461 | 純粋な X アプリ | xeyes(1) など。
`x11-utils` | V:222, I:551 | 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) フォント、3次 ベジェ曲線 を使用 (ほぼ廃れた形式)

- TrueType フォント、2次ベジェ曲線を使用 (よい選択肢)

- OpenType フォント、3次ベジェ曲線を使用 (最良の選択肢)

### 7.6.1. 基本的なフォント

文字の大きさやグリフ提供範囲に関する明確な理解に基づき、適切なスケーラブルフォントをユーザーが選択する助けとなることを願って、以下のテーブルを編纂しました。ほとんどのフォントは全てのラテン文字とギリシャ文字とキリル文字をカバーします。最終的にアクティベートされるフォントの選択はあなたの美学によっても影響されます。これらの文字は画面表示にも紙への印刷にも使えます。

表7.4 特記すべき TrueType や OpenType フォントのリスト

パッケージ | ポプコン | サイズ | サンセリフ | セリフ | 等幅 | フォントについての注釈
--- | --- | --- | --- | --- | --- | ---
fonts-cantarell | V:173, I:285 | 224 | 59 | - | - | Cantarell (GNOME 3, 画面表示)
fonts-noto | I:151 | 30 | 61 | 63 | 40 | Noto フォント (Google, multi-lingual with CJK)
fonts-dejavu | I:384 | 34 | 58 | 68 | 40 | DejaVu (GNOME 2, MCM:Verdana, 拡張 Bitstream Vera)
fonts-liberation2 | V:44, I:168 | 15 | 56 | 60 | 40 | LibreOffice 用の Liberation フォント (Red Hat, MCMATC)
fonts-croscore | V:20, I:36 | 5260 | 56 | 60 | 40 | Chrome OS: Arimo, Tinos と Cousine (Google, MCMATC)
fonts-crosextra-carlito | V:20, I:91 | 2696 | 57 | - | - | Chrome OS: Carlito (Google, MCM:Calibri )
fonts-crosextra-caladea | V:12, I:85 | 347 | - | 55 | - | Chrome OS: Caladea (Google, MCM:Cambria ) (Latin文字のみ)
fonts-freefont-ttf | V:79, I:203 | 14460 | 57 | 59 | 40 | GNU FreeFont (拡張 URW Nimbus)
fonts-quicksand | V:207, I:447 | 392 | 56 | - | - | Debian task-desktop, Quicksand (画面表示, Latin文字のみ)
fonts-hack | V:34, I:136 | 2507 | - | - | 40 P | ソースコードのためにデザインされたタイプフェース Hack (Facebook)
fonts-sil-gentiumplus | V:0, I:28 | 14345 | - | 54 | - | Gentium SIL
fonts-sil-charis | V:1, I:28 | 6704 | - | 59 | - | Charis SIL
fonts-urw-base35 | V:190, I:528 | 15558 | 56 | 60 | 40 | URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu | V:2.2, I:4.7 | 4339 | 58 | - | 33 P | Ubuntu フォント (画面表示)
fonts-terminus | V:0.3, I:4.0 | 451 | - | - | 33 | クールなレトロなターミナルフォント
ttf-mscorefonts-installer | V:1, I:39 | 85 | 56? | 60 | 40 | Microsoft の非フリーフォントのダウンローダー (以下を参照下さい)

ここで:

- "MCM" は "metric compatible with fonts provided by Microsoft" の意味です。

- "MCMATC" は "metric compatible with fonts provided by Microsoft: Arial, Times New Roman, Courier New" の意味です。

- "MCAHTC" は "metric compatible with fonts provided by Adobe: Helvetica, Times, Courier" の意味です。

- フォントタイプ列の数字は同一ポイントサイズのフォントに関する、"M" の概算相対幅を表します。

- モノフォントタイプ列の "P" は、"0"/"O" と "1"/"I"/"l" がはっきり区別しやすいというプログラミング用としての使い勝手の良さを表します。

- `ttf-mscorefonts-installer` パッケージはマイクロソフトの "Core fonts for the Web" をダウンロードして、Arial と Times New Roman と Courier New と Verdana と ... をインストールします。こうしてインストールされるフォントデーターは non-free のデーターです。

多くのフリーの Latin フォントは、URW Nimbus ファミリーとか Bitstream Veraに、それらへの系統をたどれます。

| ヒント
あなたのロケールが、上記のフォントでうまくカバーできないフォントを必要とする場合、aptitude を使って "Tasks" -> "Localization" の下にリストされたタスクパッケージをチェックしましょう。ローカリゼーションタスク中の "Depends:" か "Recommends:" としてリストされたフォントパッケージが主要候補です。

### 7.6.2. フォントのラスタ化

Debian は FreeType をフォントをラスタ化に使用します。そのフォント選択インフラは Fontconfig フォント設定ライブラリーで提供されます。

表7.5 有用フォント環境と関連パッケージのリスト

パッケージ | ポプコン | サイズ | 説明
--- | --- | --- | ---
`libfreetype6` | V:583, I:997 | 1018 | FreeType フォントラスター化ライブラリー
`libfontconfig1` | V:573, I:810 | 344 | Fontconfig、フォント設定ライブラリー
`fontconfig` | V:464, I:692 | 415 | `fc-*`: Fontconfig の CLI コマンド
`font-manager` | V:2.4, I:7.0 | 1116 | Font Manager: Fontconfig の GUI コマンド
`nautilus-font-manager` | V:0.11, I:0.43 | 38 | Font ManagerのNautilus拡張

| ヒント
`fonts-noto*` のようないくつかのフォントパッケージは多すぎるフォントインストールします。普通の使用状況下では、いくつかのフォントパッケージをインストールはしながら無効化したいかもしれません。いくつかの Unicode コードポイントでは 漢統一 (Han unification) のため複数のグリフが期待されていて、Fontconfig ライブラリーが設定がまだだと希望しないグリフが表示されかもしれません。最も気になるケースは CJK 国間の "U+3001 IDEOGRAPHIC COMMA" と "U+3002 IDEOGRAPHIC FULL STOP" です。フォントマネージャー GUI (font-manager) を使いフォントの可用性を設定することによりこのような問題状況は簡単に回避できます。

フォント設定状態は以下のようにしても確認できます。

- fontconfig のフォントデフォルトに関しては "`fc-match(1)`"

- fontconfig で利用可能なフォントに関しては "`fc-list(1)`"

テキストエディターからフォント設定状態を設定できますが、これは簡単ではありません。fonts.conf(5) を参照下さい。

## 7.7. サンドボックス

Linux 上の主に GUI アプリケーションの多くはバイナリー形式で非 Debian ソースから利用可能です。

- AppImage -- どこででも実行できる Linux アプリ

- FLATHUB -- Linux 用アプリ、ここで使える

- snapcraft -- Linux 用アプリストアー

| 警告
これらのサイトからのバイナリーはプロプライエタリーな non-free ソフトウェアーパッケージが含まれているかもしれません。

各アプリのアップストリームデベロッパーが当該アプリに使っている本来のライブラリーの組み合わせを Debian が提供するライブラリーと独立にアプリに提供することを可能にするので、Debian を使うフリーソフトウェアー愛好家にとってもこれらのバイナリー形式ディストリビューションには一定の存在意義があります。

外部バイナリーを実行する本質的リスクは、Linux の現代的なセキュリティー機能を利用するサンドボックス環境を使うことで低減できます(「Linux のセキュリティ機能」を参照下さい)。

- AppImage や いくつかのアップストリームサイトからのバイナリーに関しては、手動設定の下で firejail を実行します。

- FLATHUB からのバイナリーに関しては、 Flatpak の中で実行します。(手動設定不要です。)

- snapcraf からのバイナリーに関しては、 Snap の中で実行します。(手動設定不要です。デーモンプログラムとコンパチブルです。)

`xdg-desktop-portal` パッケージは共通のデスクトップ機能への標準化された API を提供します。 xdg-desktop-portal (flatpak) や xdg-desktop-portal (snap) を参照下さい。

表7.6 特記すべきサンドボックス環境や関連のパッケージのリスト

パッケージ | ポプコン | サイズ | 説明
--- | --- | --- | ---
`flatpak` | V:107, I:115 | 9278 | デスクトップアプリ用の Flatpak アプリケーション デプロイメント フレームワーク
`gnome-software-plugin-flatpak` | V:30, I:42 | 283 | GNOME ソフトウェアーへの Flatpak サポート
`snapd` | V:61, I:64 | 78931 | snap パッケージを有効化するデーモンやツール
`gnome-software-plugin-snap` | V:1.5, I:2.3 | 145 | GNOME ソフトウェアーへの Snap サポート
`xdg-desktop-portal` | V:365, I:434 | 2291 | Flatpak や Snap デスクトップ インテグレーション ポータル
`xdg-desktop-portal-gtk` | V:329, I:432 | 715 | gtk 用の xdg-desktop-portal バックエンド (GNOME)
`xdg-desktop-portal-kde` | V:79, I:111 | 3324 | Qt 用の xdg-desktop-portal バックエンド (KDE)
`xdg-desktop-portal-wlr` | V:2.3, I:5.4 | 159 | wltools 用の xdg-desktop-portal バックエンド (Wayland)
`firejail` | V:1.3, I:4.7 | 1827 | AppImage に用いる SUID のセキュリティー サンドボックス プログラム firejail

このサンドボックス環境技術はアプリが制御されたリソースアクセス下で実行されるスマートフォンの OS 上のアプリと非常に似ています。

ウエッブブラウザーのようないくつかの大きな GUI アプリも、より安全にするために内部的にサンドボックス環境技術を使います。

## 7.8. リモートデスクトップ

表7.7 特記すべきリモートアクセスサーバーのリスト

Wayland プロトコルを使いリモートホスト上で実行されるデスクトップやアプリへのローカルクライアントからのアクセスは VNC や RDP 経由の GNOME リモートデスクトップによってサポートされています。

全ての QEMU 仮想マシンのデスクトップ環境へのアクセスは SPICE (the Simple Protocol for Independent Computing Environments) プロトコルによってサポートされています。

パッケージ | ポプコン | サイズ | プロトコル | 説明
--- | --- | --- | --- | ---
`gnome-remote-desktop` | V:139, I:236 | 2453 | RDP | GNOME Remote Desktop サーバー
`xrdp` | V:27, I:29 | 4669 | RDP | xrdp, リモート デスクトップ プロトコル (RDP) サーバー
`x11vnc` | V:9, I:44 | 1863 | RFB (VNC) | x11vnc, リモート フレームバッファー プロトコル (VNC) サーバー
`tigervnc-standalone-server` | V:5, I:15 | 2960 | RFB (VNC) | TigerVNC, リモート フレームバッファー プロトコル (VNC) サーバー
`gnome-connections` | V:6, I:139 | 1695 | RDP, RFB (VNC) | GNOME リモート デスクトップ クライアント
`vinagre` | V:1, I:23 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: GNOME リモート デスクトップ クライアント
`remmina` | V:16, I:62 | 983 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: GTK リモート デスクトップ クライアント
`krdc` | V:2, I:14 | 4144 | RDP, RFB (VNC) | KRDC: KDE リモート デスクトップ クライアント
`virt-viewer` | V:3, I:38 | 1278 | RFB (VNC), SPICE | 仮想マシンマネージャー のゲスト OS の GUI 表示クライアント

## 7.9. Xサーバ接続

ローカルホスト上の `xwayland` も含めた X サーバーにリモートホスト上のアプリが接続する方法がいくつかあります。

表7.8 X サーバーへの接続方法のリスト

パッケージ | ポプコン | サイズ | コマンド | 説明
--- | --- | --- | --- | ---
`openssh-server` | V:772, I:820 | 3594 | `X11-forwarding` オプション付きの `sshd` | SSH サーバ (セキュア)
`openssh-client` | V:657, I:996 | 3521 | `ssh -X` | SSH クライアント (セキュア)
`xauth` | V:189, I:973 | 81 | `xauth` | X 認証ファイル ユーティリティ
`x11-xserver-utils` | V:304, I:528 | 559 | `xhost` | X のサーバ アクセス制御

### 7.9.1. X サーバ ローカル接続

ローカルの UNIX ドメインソケット経由でローカル接続することで、X コアプロトコルを使うローカルのアプリはローカルの X サーバーにアクセスできます。これはアクセスクッキーを保持する権限ファイルによって許諾されます。権限ファイルの場所は "`$XAUTHORITY`" 環境変数により特定され、X ディスプレーは "`$DISPLAY`" 環境変数により特定されます。普通これらは自動設定されているので、例えば "`gitk`" の場合以下のように特段のアクションは不要です。

    username $ gitk

| 注記
`xwayland` の場合、`XAUTHORITY` は "`/run/user/1000/.mutter-Xwaylandauth.YVSU30`" のような値を取ります。

### 7.9.2. X サーバリモート接続

X コアプロトコルを使うリモートのアプリからローカルの X サーバーへのアクセスは X11 フォワーディング機能を使ってサポートされます。

- ローカルホスト上で `gnome-terminal` を開きます。

- ssh(1) を `-X` オプションとともに実行して以下のようにリモートサイトとの接続を確立する。

      localname @ localhost $ ssh -q -X loginname@remotehost.domain
      Password:

- リモートホスト上の "`gitk`" 等の X アプリケーションコマンドを以下のように実行します。

      loginname @ remotehost $ gitk

ここに書かれた手法はリモート X クライアントがあたかもローカルの UNIX ドメインソケット経由でローカル接続されているかのようにして、リモート X クライアントからの出力を表示できるようにします。

SSH/SSHD に関しては「リーモートアクセスサーバーとユーティリティー (SSH)」を参照下さい。

| 警告
X サーバーへの TCP/IP 接続はセキュリティー上の理由で Debian システム上では無効化されています。回避可能であれば、"`xhost +`" と単純に設定しこれを有効化してはいけないし、また XDMCP 接続 を有効化してこれを有効化してもいけません。

### 7.9.3. X サーバ chroot 接続

X コアプロトコルを使う同一ではあるが認証ファイルにアクセスできない chroot のような環境で実行されるアプリケーションから X サーバーへのアクセスは、例えば "`gitk`" の場合は以下のようにして User-based アクセスを使うと `xhost` を使い安全に認証できます。

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

## 7.10. クリップボード

テキストのクリップボードへのクリップに関しては、「マウス操作」を参照下さい。

グラフィクスのクリップボードへのクリップに関しては、「画像データーツール」を参照下さい。

文字クリップボード (PRIMARY と CLIPBOARD) の操作は、いくつかの CLI コマンドを使うと可能です。

表7.9 文字クリップボードの操作関連プログラムのリスト

パッケージ | ポプコン | パッケージサイズ | ターゲット | 説明
--- | --- | --- | --- | ---
`xsel` | V:7, I:42 | 55 | X | X 選択のコマンドラインインターフェース (クリップボード)
`xclip` | V:18, I:79 | 62 | X | X 選択のコマンドラインインターフェース (クリップボード)
`wl-clipboard` | V:9, I:27 | 174 | Wayland | `wl-copy` `wl-paste`: Wayland クリップボードへのコマンドライン インターフェース
`gpm` | V:8.2, I:9.1 | 524 | Linux コンソール | Linux コンソールのマウスイベントを捉えるデーモン

第6章 ネットワークアプリケーション |  | 第8章 I18N と L10N