目次
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 のデフォルトデスクトップ環境にフォーカスします: wayland
上の GNOME を提供する
task-gnome-desktop
。
GNOME デスクトップで使用されうる GUI 通信プロトコル:
Wayland (ディスプレイサーバプロトコル) (ネイティブ)
X Window システム コア プロトコル
(xwayland
経由)
Wayland アーキテクチャーは X Window アーキテクチャーとどう違うのかという freedesktop.org サイトを確認して下さい。
ユーザー視点からは、相違点は以下のように口語的にまとめられます。
Wayland は 同一ホスト上の GUI 通信プロトコル: 新規、簡単、高速、非 setuid root のバイナリー
X Window は ネットワーク対応可能な GUI 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 サーバー設定ファイル
" |
Wayland 環境上の GNOME のための特記すべき GUI インフラパッケージは以下です。
表7.2 データーインフラパッケージのリスト
パッケージ | ポプコン | パッケージサイズ | 説明 |
---|---|---|---|
mutter
|
V:1, I:60 | 187 | GNOME の mutter ウィンドウマネージャ [自動] |
xwayland
|
V:240, I:319 | 2388 | wayland 上で実行される X サーバー [自動] |
gnome-remote-desktop
|
V:35, I:221 | 1068 | GNOME のための PipeWire を使うリモートデスクトップデーモン [自動] |
gnome-tweaks
|
V:21, I:229 | 1170 | GNOME のための高度な構成設定 |
gnome-shell-extension-prefs
|
V:13, I:213 | 60 | GNOME シェル拡張を有効化・無効化するツール |
ここで、"[自動]" は
task-gnome-desktop
がインストールされた際に自動的にインストールされるパッケージの意味です。
ヒント | |
---|---|
|
ヒント | |
---|---|
GNOME デスクトップ環境の詳細機能は、 |
有用な GUI アプリケーションの多くは Debian で利用できるようになりました。対応する機能が GNOME
デスクトップ環境下では利用できないため、scribus
(KDE) のようなソフトウェアを GNOME
デスクトップ環境にインストールするのはまったく問題ありません。しかしながら、機能が重複するパッケージをインストールしすぎるとあなたのシステムが散らかってしまいます。
著者の目に止まった 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) フォント、3次 ベジェ曲線 を使用 (ほぼ廃れた形式)
TrueType フォント、2次ベジェ曲線を使用 (よい選択肢)
OpenType フォント、3次ベジェ曲線を使用 (最良の選択肢)
文字の大きさやグリフ提供範囲に関する明確な理解に基づき、適切なスケーラブルフォントをユーザーが選択する助けとなることを願って、以下のテーブルを編纂しました。ほとんどのフォントは全てのラテン文字とギリシャ文字とキリル文字をカバーします。最終的にアクティベートされるフォントの選択はあなたの美学によっても影響されます。これらの文字は画面表示にも紙への印刷にも使えます。
表7.4 特記すべき TrueType や OpenType フォントのリスト
ここで:
"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:" としてリストされたフォントパッケージが主要候補です。 |
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 の CLI
コマンド |
font-manager
|
V:2, I:8 | 1022 | Font Manager: Fontconfig の GUI コマンド |
nautilus-font-manager
|
V:0, I:0 | 37 | Font ManagerのNautilus拡張 |
ヒント | |
---|---|
|
フォント設定状態は以下のようにしても確認できます。
fontconfig のフォントデフォルトに関しては "fc-match(1)
"
fontconfig で利用可能なフォントに関しては "fc-list(1)
"
テキストエディターからフォント設定状態を設定できますが、これは簡単ではありません。fonts.conf
(5)
を参照下さい。
Linux 上の主に GUI アプリケーションの多くはバイナリー形式で非 Debian ソースから利用可能です。
警告 | |
---|---|
これらのサイトからのバイナリーはプロプライエタリーな non-free ソフトウェアーパッケージが含まれているかもしれません。 |
各アプリのアップストリームデベロッパーが当該アプリに使っている本来のライブラリーの組み合わせを Debian が提供するライブラリーと独立にアプリに提供することを可能にするので、Debian を使うフリーソフトウェアー愛好家にとってもこれらのバイナリー形式ディストリビューションには一定の存在意義があります。
外部バイナリーを実行する本質的リスクは、Linux の現代的なセキュリティー機能を利用するサンドボックス環境を使うことで低減できます(「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 パッケージを有効化するデーモンやツール |
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 用の xdg-desktop-portal バックエンド (GNOME) |
xdg-desktop-portal-kde
|
V:53, I:72 | 1438 | Qt 用の xdg-desktop-portal バックエンド (KDE) |
xdg-desktop-portal-wlr
|
V:0, I:4 | 135 | wltools 用の xdg-desktop-portal バックエンド (Wayland) |
firejail
|
V:1, I:4 | 1771 | AppImage に用いる SUID のセキュリティー サンドボックス プログラム firejail |
このサンドボックス環境技術はアプリが制御されたリソースアクセス下で実行されるスマートフォンの OS 上のアプリと非常に似ています。
ウエッブブラウザーのようないくつかの大きな GUI アプリも、より安全にするために内部的にサンドボックス環境技術を使います。
表7.7 特記すべきリモートアクセスサーバーのリスト
Wayland プロトコルを使いリモートホスト上で実行されるデスクトップやアプリへのローカルクライアントからのアクセスは VNC や RDP 経由の GNOME リモートデスクトップによってサポートされています。
全ての QEMU 仮想マシンのデスクトップ環境へのアクセスは SPICE (the Simple Protocol for Independent Computing Environments) プロトコルによってサポートされています。
パッケージ | ポプコン | サイズ | プロトコル | 説明 |
---|---|---|---|---|
gnome-remote-desktop
|
V:35, I:221 | 1068 | RDP | GNOME Remote Desktop サーバー |
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 | 仮想マシンマネージャー のゲスト OS の GUI 表示クライアント |
ローカルホスト上の xwayland
も含めた X
サーバーにリモートホスト上のアプリが接続する方法がいくつかあります。
表7.8 X サーバーへの接続方法のリスト
パッケージ | ポプコン | サイズ | コマンド | 説明 |
---|---|---|---|---|
openssh-server
|
V:730, I:814 | 1804 | X11-forwarding オプション付きの sshd |
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 のサーバ アクセス制御 |
ローカルの UNIX ドメインソケット経由でローカル接続することで、X コアプロトコルを使うローカルのアプリはローカルの X
サーバーにアクセスできます。これはアクセスクッキーを保持する権限ファイルによって許諾されます。権限ファイルの場所は
"$XAUTHORITY
" 環境変数により特定され、X ディスプレーは
"$DISPLAY
" 環境変数により特定されます。普通これらは自動設定されているので、例えば
"gitk
" の場合以下のように特段のアクションは不要です。
username $ gitk
注記 | |
---|---|
|
X コアプロトコルを使うリモートのアプリからローカルの X サーバーへのアクセスは X11 フォワーディング機能を使ってサポートされます。
ローカルホスト上で gnome-terminal
を開きます。
ssh
(1) を -X
オプションとともに実行して以下のようにリモートサイトとの接続を確立する。
localname @ localhost $ ssh -q -X [email protected] Password:
リモートホスト上の "gitk
" 等の X アプリケーションコマンドを以下のように実行します。
loginname @ remotehost $ gitk
ここに書かれた手法はリモート X クライアントがあたかもローカルの UNIX ドメインソケット経由でローカル接続されているかのようにして、リモート X クライアントからの出力を表示できるようにします。
SSH/SSHD に関しては「リーモートアクセスサーバーとユーティリティー (SSH)」を参照下さい。
X コアプロトコルを使う同一ではあるが認証ファイルにアクセスできない chroot のような環境で実行されるアプリケーションから X
サーバーへのアクセスは、例えば "gitk
" の場合は以下のようにして User-based アクセスを使うと xhost
を使い安全に認証できます。
username $ xhost + si:localuser:root ; sudo chroot /path/to # cd /src # gitk # exit username $ xhost -
テキストのクリップボードへのクリップに関しては、「マウス操作」を参照下さい。
グラフィクスのクリップボードへのクリップに関しては、「画像データーツール」を参照下さい。
文字クリップボード (PRIMARY と CLIPBOARD) の操作は、いくつかの CLI コマンドを使うと可能です。
表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 コンソールのマウスイベントを捉えるデーモン |