第7章 X Window システム

目次

7.1. 重要パッケージ
7.2. デスクトップ環境の設定
7.2.1. Debian メニュー
7.2.2. Freedesktop.org メニュー
7.2.3. GNOME デスクトップ環境下の Debian メニュー
7.3. サーバー/クライアント関係
7.4. X サーバー
7.4.1. X サーバーの (再)設定
7.4.2. X サーバーへの接続方法
7.5. X Window システムの起動
7.5.1. gdm3 で X セッションをスタート
7.5.2. X セッションのカスタム化 (古典的方法)
7.5.3. X セッションのカスタム化 (新方法)
7.5.4. リモート X クライアントを SSH 経由で接続
7.5.5. インターネット経由のセキュアーな X ターミナル
7.6. X Window でのフォント
7.6.1. 基本的フォント
7.6.2. 追加のフォント
7.6.3. CJK フォント
7.7. X アプリケーション
7.7.1. X オフィスアプリケーション
7.7.2. X ユーティリティーアプリケーション
7.8. X トリビア
7.8.1. X でのキーマップとポインターボタンのマッピング
7.8.2. 古典的 X クライアント
7.8.3. X ターミナルエミュレーター — xterm
7.8.4. X クライアントを root で実行

Debian システム上の X Window システムX.Org 由来のソースに基づいています。2009年7 月現在、それは X11R7.1(etch) と X11R7.3(lenny) と X11R7.3(squeeze) と X11R7.4(sid) です。

7.1. 重要パッケージ

インストールを簡略化するための (メタ)パッケージが少々あります。

表7.1 X Window のためのキーとなる (メタ)パッケージのリスト

(メタ)パッケージ ポプコン サイズ 説明
xorg I:461 78 X ライブラリー、X サーバー、フォントセット、基本的な X クライアントとユーティリティーの集合 (メタパッケージ)
xserver-xorg V:178, I:541 366 このパッケージは X サーバーのフルスイーツとその設定
xbase-clients I:372 62 X クライアントの雑多な集合
x11-common V:446, I:856 466 X Window システムのためのファイルシステムインフラ
xorg-docs I:24 2056 X.Org ソフトウエアースイーツの雑多な文書
menu V:281, I:537 1757 メニューに対応しているアプリケーションに関して Debian メニューを生成
gksu V:228, I:470 207 su(1)sudo(8) の Gtk+ フロントエンド
menu-xdg V:137, I:471 76 Debian メニュー構造を freedesktop.org の xdg メニュー構造に変換
xdg-utils V:254, I:520 300 freedesktop.org によって提供される統合デスクトップ環境のためのユーティリティー
gnome-desktop-environment I:224 43 標準の GNOME デスクトップ環境 (メタパッケージ)
kde-standard I:67 35 コアの KDE デスクトップ環境 (メタパッケージ)
xfce4 I:78 40 Xfce 軽量デスクトップ環境 (メタパッケージ)
lxde-core I:30 26 LXDE 軽量デスクトップ環境 (メタパッケージ)
fluxbox V:7, I:22 4330 Fluxbox: 自由自在に設定可能でリソース消費が少ない X ウィンドウマネージャー

X の基本に関しては、X(7)the LDP XWindow-User-HOWTO を参照下さい。

7.2. デスクトップ環境の設定

デスクトップ環境は、通常 X ウィンドウマネージャーとファイルマネージャーと互換性あるユーティリティープログラムのスイートの組み合わせです。

GNOMEKDEXfceLXDE 等の充実したデスクトップ環境aptitude のタスクメニューを使って設定できます。

[ヒント] ヒント

タスクメニューは Debian の unstable/testing 環境下では最新のパッケージの変遷状態を反映していないかもしれません。そのような状況ではパッケージ間のコンフリクトを避けるために aptitude(8) のタスクメニューの下でいくつかの (メタ)パッケージを非選択にする必要があります。(メタ)パッケージを非選択にする場合には、それらに依存関係を提供しているパッケージが自動削除されないように特定のパッケージを手動選択しなければいけません。

上記と違う方法として、Fluxbox 等の X ウィンドウマネージャーだけを使って簡単な環境を設定する事もできます。

X ウィンドウマネージャーやデスクトップ環境のガイドは X のためのウィンドウマネージャーを参照下さい。

7.2.1. Debian メニュー

Debian メニューシステムmenu パッケージの update-menus(1) を使って、テキストと X の両指向のプログラムに関して一般化されたインターフェースを提供します。各パッケージは "/usr/share/menu/" ディレクトリーにメニューデーターをインストールします。"/usr/share/menu/README" を参照下さい。

7.2.2. Freedesktop.org メニュー

Freedesktop.org の xdg メニューシステム対応の各パッケージは "/usr/share/applications/" の下の "*.desktop" で提供されるそのメニューデーターをインストールします。Freedesktop.org スタンダード対応の現代的デスクトップ環境は xdg-utils パッケージを使ってこれらのデーターからそれぞれのメニューを生成します。"/usr/share/doc/xdg-utils/README" を参照下さい。

7.2.3. GNOME デスクトップ環境下の Debian メニュー

GNOME デスクトップ環境下で伝統的な Debian メニューにアクセスするには menu-xdg をインストールし、"System" → "Preference" → "Main Menu" とし、"Debian" のボックスをチェックします。

[ヒント] ヒント

Freedesktop.org スタンダード対応の他の現代的デスクトップ環境でも同様の対応が必要かもしれません。

7.3. サーバー/クライアント関係

X Window システムはサーバーとクライアントのプログラムの組み合わせとして起動されます。ローカルリモートと言う言葉に対応するサーバークライアントと言う言葉の意味に注意を払う必要があります。

表7.2 サーバー/クライアントの用語法のリスト

タイプ 説明
X サーバー ユーザーのディスプレーや入力デバイスが接続されたローカルホスト上で実行されるプログラム。
X クライアント データーを処理し X サーバーへ話しかけるリモートホスト上で実行されるプログラム。
アプリケーションサーバー データーを処理しクライアントへ話しかけるリモートホスト上で実行されるプログラム。
アプリケーションクライアント ユーザーのディスプレーや入力デバイスが接続されたローカルホスト上で実行されるプログラム。

7.4. X サーバー

X サーバーの情報は xorg(1) を参照下さい。

7.4.1. X サーバーの (再)設定

[注記] 注記

X サーバー (lenny 以降) は、その設定に "/etc/X11/xorg.conf" からの情報より HALD-bus 等の標準化された OS サービスからの情報を使うように書き換えられています。このため "/etc/X11/xorg.conf" の内容は減ってきています。X サーバーの移行問題の回避をする必要があるかもしれません。

次のようにすると dexconf(1) を使って新たな "/etc/X11/xorg.conf" ファイルが生成して X サーバーが (再)設定されます。

# dpkg-reconfigure --priority=low x11-common
# dpkg-reconfigure --priority=low xserver-xorg

この "/etc/X11/xorg.conf" ファイルを手動編集してはいるが自動的にファイルを更新したい場合には、次のコマンドを実行します。

# sudo dpkg-reconfigure -phigh xserver-xorg

あなたのモニターのスペックに関して注意深く確認します。大きな高解像度の CRT モニターの場合、チラつきを軽減するためにモニターの許容する限りできるだけ高いリフレッシュレート (85 Hz なら十二分、75 Hz で十分) 設定することが望ましい。LCD モニターの場合、その低速反応性のためにより低速の標準リフレッシュレート (60 Hz) 設定で通常問題はありません。

[注記] 注記

あなたのモニターシステムのハードウエアーを破壊するかもしれないので、高過ぎるリフレッシュレートを使わないように注意して下さい。

7.4.2. X サーバーへの接続方法

"X サーバー " (ディスプレー側) が"X クライアント" (アプリケーション側) からの接続を許可するようにするにはいくつかの方法があります。

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

パッケージ ポプコン サイズ ユーザー 暗号化 方法 適切な用途
xbase-clients I:372 62 非確認 いいえ xhost コマンド 非推奨
xbase-clients I:372 62 確認済み いいえ xauth コマンド パイプ経由のローカル接続用
openssh-client V:563, I:995 2276 確認済み はい ssh -X コマンド リモートネットワーク接続用
gdm3 V:232, I:317 5899 確認済み いいえ (XDMCP) GNOME ディスプレーマネージャー パイプ経由のローカル接続用
kdm V:72, I:98 4046 確認済み いいえ (XDMCP) KDE ディスプレーマネージャー パイプ経由のローカル接続用
xdm V:6, I:18 725 確認済み いいえ (XDMCP) X ディスプレーマネージャー パイプ経由のローカル接続用
wdm V:267, I:870 2082 確認済み いいえ (XDMCP) WindowMaker ディスプレーマネージャー パイプ経由のローカル接続用
ldm V:0, I:0 592 確認済み はい LTSP ディスプレーマネージャー リモート SSH ネットワーク接続用 (シンクライアント)

[警告] 警告

暗号手法を使っている等といった非常に良い理由無しには、X 接続のためにセキュアーされていないネットワーク経由のリモート TCP/IP 接続を使ってはいけません。暗号化無しのリモート TCP/IP ソケット接続は盗聴の被害に会いやすく、Debian システムではデフォールトで無効化されています。"ssh -X" を使います。

[警告] 警告

セキュアーされていないネットワーク経由で XDMCP 接続も使ってはいけません。XDMCP 接続は、UDP/IP 経由で暗号化せずデーターを送信するので盗聴攻撃を受けやすいです。

[ヒント] ヒント

LTSP は、Linux ターミナルサーバープロジェクトのことです。

7.5. X Window システムの起動

X Window システムは X サーバーとそれに接続する X クライアントの組み合わせの X セッションとしてよく起動されます。通常のデスクトップ環境ではそれらの両方ともワークステーション上で実行されます。

X session は次で起動されます。

  • コマンドラインからの startx コマンド

  • "/etc/rc?.d/" ディレクトリー ("?" はランレベルに対応) 中の最後にある起動スクリプトから起動される X ディスプレーマネージャーデーモンプログラム *dm の1つ

[ヒント] ヒント

ディスプレーマネージャーデーモンの起動スクリプトは実際に実行される前に "/etc/X11/default-display-manager" ファイルの内容を確認します。こうすることで X ディスプレーマネージャーデーモンプログラムが1つだけが実行されることを確実にします。

[ヒント] ヒント

X ディスプレーマネージャーの初期環境変数に関しては、「X Window の下でのみ特定ロケール」を参照下さい。

本質的にこれらすべてのプログラムは "/etc/X11/Xsession" スクリプトを実行します。そうすることで、"/etc/X11/Xsession" スクリプトは、"/etc/X11/Xsession.d/" ディレクトリー中のスクリプトを run-parts(8) 風に実行します。これは本質的に次の順番で見つかる最初のプログラムを exec builtin コマンドで実行することです。

  1. もし定義されていた場合には、X ディスプレーマネージャーにより "/etc/X11/Xsession" の引数として指定されたスクリプト。

  2. もし定義されていた場合には、"~/.xsession" か "~/.Xsession" スクリプト。

  3. もし定義されていた場合には、"/usr/bin/x-session-manager" コマンド。

  4. もし定義されていた場合には、"/usr/bin/x-window-manager" コマンド。

  5. もし定義されていた場合には、"/usr/bin/x-terminal-emulator" コマンド。

このプロセスは "/etc/X11/Xsession.options" の内容に影響されます。これらの "/usr/bin/x-*" コマンドが指し示すプログラムが正確に何であるかは Debian の alternative システムにより決定され、"update-alternatives --config x-session-manager" 等によって変更されます。

7.5.1. gdm3 で X セッションをスタート

gdm3(1) はメニューから X セッションのセッションのタイプ (デスクトップ環境: 「デスクトップ環境の設定」) とか、言語 (ロケール: 「ロケール」) を選択できるようにします。それは "~/.dmrc" の中に選択されたデフォールト値を次のように保存します。

[Desktop]
Session=default
Language=ja_JP.UTF-8

7.5.2. X セッションのカスタム化 (古典的方法)

"/etc/X11/Xsession.options" が、"#" 文字が前に付いていない "allow-user-xsession" と言う行を含んでいるシステム上では、誰でも "~/.xsession" か "~/.Xsession" を定義することでシステムコードを完全にオーバーライドして "/etc/X11/Xsession" の挙動をカスタム化できます。"~/.xsession" ファイル中の最後のコマンドはあなたの最も好む X window/ セッションマネージャーを起動するように "exec some-window/session-manager" という形式の使う必要があります。

7.5.3. X セッションのカスタム化 (新方法)

上記のように完全にシステムコードをオーバーライドすること無しに X セッションをカスタム化する新方法を次に示します。

  • ディスプレーマネージャー gdm3 は特定のセッションを選択する事ができて、それを "/etc/X11/Xsession" の引数に設定できます。

  • "~/.xsessionrc" ファイルが起動プロセスの一部として実行されます。(デスクトップ非依存)

  • "~/.gnomerc" ファイルが起動プロセスの一部として実行されます。(GNOME デスクトップのみ)

  • GUI プログラムで提供されるセッション管理ソフトが "~/.gnome2/session" ファイルなどを使うかもしれません。

7.5.4. リモート X クライアントを SSH 経由で接続

"ssh -X" を使うことで、ローカルの X サーバーからリモートのアプリケーションサーバーへのセキュアーな接続が可能となります。

コマンドラインオプション "-X" を使わないでおくには、リモートホストの "/etc/ssh/sshd_config" 中の "X11Forwarding" エントリーを "yes" と設定します。

ローカルホスト上の X サーバーの起動します。

ローカルホスト上で xterm を開きます。

ssh(1) を実行してリモートサイトとの接続を次のように確立します。

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

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

loginname @ remotehost $ gimp &

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

7.5.5. インターネット経由のセキュアーな X ターミナル

インターネット経由のセキュアーな X ターミナルは ldm 等の専用のパッケージを使えば簡単に実現でき、リモートで実行される X デスクトップ環境の全てを表示します。あなたのローカル機器は SSH 経由で接続されたリモートのアプリケーションサーバーのシンクライアントになります。

7.6. X Window でのフォント

2002年に、Fontconfig 2.0 がフォントアクセスの設定とカスタム化のためのディストリビューション非依存のライブラリーとして作られました。Debian はsqueeze 以降 Fontconfig 2.0 だけをそのフォント設定に使います。

X Window システムのフォントサポートは次のように要約できます。

  • 旧来の X サーバー側フォントサポートシステム

    • 旧式バージョンの X クライアントアプリケーションとの下位互換性ためにオリジナルの中核 X11 フォントシステムが提供されています。

    • オリジナルの中核 X11 フォントは X サーバーにインストールされます。

  • 現代的な X クライアント側フォントサポートシステム

    • 現代的な X システムはこの後にリストされる (「基本的フォント」「追加のフォント」「CJK フォント」) 全てのフォントをアンチエリアシングなどの先進的機能とともにサポートします。

    • Xft 2.0 はGNOMEKDELibreOffice 由来等の現代的な X アプリケーションを FreeType 2.0 ライブラリーと結びつけます。

    • FreeType 2.0 はフォントのラスター化ライブラリーを提供します。

    • FontconfigXft 2.0 のためのフォント規定を提供します。その設定は fonts.conf(5) を参照下さい。

    • 現代的な Xft 2.0 を使う X アプリケーションは現代的な X サーバーに X レンダリング拡張を使って話しかけます。

    • X レンダリング拡張はフォントアクセスとグリフイメージ生成を X サーバーから X クライアントに移動します。

表7.4 X Window フォントシステムをサポートするパッケージのテーブル

パッケージ ポプコン サイズ 説明
xfonts-utils V:108, I:736 430 X Window システムフォントユーティリティープログラム
libxft2 V:441, I:772 137 Xft、X アプリケーションと FreeType フォントラスター化ライブラリーをつなげるライブラリー
libfreetype6 V:626, I:962 835 FreeType 2.0 フォントラスター化ライブラリー
fontconfig V:446, I:756 432 Fontconfig、汎用フォント設定ライブラリー — サポートバイナリー
fontconfig-config V:436, I:842 345 Fontconfig、汎用フォント設定ライブラリー — 設定データー

フォント設定情報は次のようにして確認できます。

  • 中核 X11 フォントパスに関しては "xset q"

  • fontconfig のフォントデフォールトに関しては "fc-match"

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

[ヒント] ヒント

"The Penguin and Unicode" は現代的な X Window システムの良い概論です。http://unifont.org/ にある他の文書も Unicode フォントや Unicode 化されたソフトや国際化や Unicode のフリー (英語で自由と無償という意味)/ リブレ (仏語等で自由の意味、無償という意味は無い)/ オープンソース (FLOSS) オペレーティングシステム上での使い勝手の問題に関する良い情報源です。

7.6.1. 基本的フォント

コンピューターフォントには大きくわけて2つのタイプがあります。

  • ビットマップフォント (低解像度のラスター化で良好)

  • アウトラインやストロークフォント (高解像度ラスター化で良好)

ビットマップフォントを拡大するとギザギザのイメージになってしまいますが、アウトラインやストロークフォント拡大するとスムーズなイメージになります。

Debian システム上のビットマップフォントは、".pcf.gz" というファイル拡張子を持った圧縮された X11 pcf ビットマップフォントファイルとして提供されます。

Debian システム上のアウトラインフォントは次で提供されます。

  • ".pfb" (バイナリーフォントファイル) と ".afm" (フォントメトリクスファイル) というファイル拡張子を持った PostScript Type 1 フォントファイル。

  • ".ttf" というファイル拡張子を通常持った TrueType (もしくは OpenType) フォントファイル。

[ヒント] ヒント

OpenTypeTrueTypePostScript Type 1 の両方を置き換えることを目指しています。

表7.5 PostScript Type 1 フォントへの対応表

フォントパッケージ ポプコン サイズ サンセリフフォント セリフフォント モノスペースフォント フォントの起源
PostScript N/A N/A Helvetica Times Courier Adobe
gsfonts V:190, I:679 4632 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L URW (Adobe 互換サイズ)
gsfonts-x11 I:260 68 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L PostScript Type 1 フォントでの X フォントサポート。
t1-cyrillic I:23 4834 Free Helvetian Free Times Free Courier 拡張 URW (Adobe 互換サイズ)
lmodern V:13, I:165 43427 LMSans* LMRoman* LMTypewriter* Computer Modern (TeX 由来) に準拠したスケーラブルな PostScript と OpenType のフォント

表7.6 TrueType フォントへの対応表

フォントパッケージ ポプコン サイズ サンセリフフォント セリフフォント モノスペースフォント フォントの起源
ttf-mscorefonts-installer V:3, I:106 124 Arial Times New Roman Courier New Microsoft (Adobe 互換サイズ) (これは non-free データーをインストールします)
fonts-liberation I:201 2118 Liberation Sans Liberation Serif Liberation Mono Liberation フォントプロジェクト (Microsoft 互換サイズ)
fonts-freefont-ttf V:77, I:165 10720 FreeSans FreeSerif FreeMono GNU freefont (Microsoft 互換サイズ)
ttf-dejavu I:660 56 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu、Unicode 対応 Bitstream Vera
ttf-dejavu-core V:88, I:812 2804 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu、Unicode 対応 Bitstream Vera (sans, sans-bold, serif, serif-bold, mono, mono-bold)
ttf-dejavu-extra I:657 6437 N/A N/A N/A DejaVu、Unicode 対応 Bitstream Vera (oblique, italic, bold-oblique, bold-italic, condensed)
ttf-unifont I:34 16044 N/A N/A unifont GNU Unifont、Unicode 5.1 基本多言語面 (BMP) 中の全印刷可能文字

[ヒント] ヒント

DejaVu フォントは Bitstream Vera フォントに基づきそれを包含します。

7.6.2. 追加のフォント

aptitude(8) を使うと追加のフォントを簡単に見つけられます。

  • "Tasks" → "Localization" の下の短いパッケージ一覧

  • debtag への正規表現: "~Gmade-of::data:font" を使ってフォントデーターにフィルターされた平坦なパッケージ一覧

  • パッケージ名への正規表現: "~nxfonts-" を使って BDF (ビットマップ) フォントパッケージにフィルターされた平坦なパッケージ一覧

  • パッケージ名への正規表現: "~nttf-" を使って TrueType (アウトライン) フォントパッケージにフィルターされた平坦なパッケージ一覧

フリーなフォントは限られていることがあるので、Debian ユーザーにとっていくつかの商用 TrueType フォントをインストールする選択肢があります。こういったことをユーザーが簡単しやすいようにいくつかの利便性のためのパッケージが作成されています。

  • ttf-mathematica4.1

  • ttf-mscorefonts-installer

あなたのフリーなシステムを non-Free のフォントで汚染する事になるとはいえ、TrueType フォントの選択肢は非常に沢山あります。

7.6.3. CJK フォント

CJK (中日韓)文字のフォントに焦点を当てキーポイントを記します。

表7.7 CJK フォント名中でフォントタイプを示すために使われるキーワード表

フォントタイプ 日本語フォント名 中国語フォント名 韓国語フォント名
サンセリフ gothic, ゴチック hei, gothic dodum, gulim, gothic
セリフ mincho, 明朝 song, ming batang

"P" の付いた "VL PGothic" のようなフォント名は、固定幅フォントの "VL Gothic" フォントに対応するプロポーショナルフォントです。

例えば、Shift_JIS コードテーブルには 7070文字があります。それらは次のように分類できます。

  • JIS X 0201 1バイト文字 (191文字、別名: 半角文字)

  • JIS X 0208 2バイト文字 (6879文字、別名: 全角文字)

2バイト文字は CJK 固定幅フォントを使うコンソールターミナル上で倍の幅を占めます。このような状況に対応するために、ファイル拡張子 ".hbf" を使う Hanzi ビットマップフォント (HBF) ファイルが1バイトと2バイトの文字を含むフォントのために使えます。

TrueType フォントファイルのための空間を節約するために、ファイル拡張子 ".ttc" を持つ TrueType フォントコレクションファイルを使う事ができます。

文字の複雑なコード空間をカバーするために、CID でキーされた PostScript Type 1 フォントは "%!PS-Adobe-3.0 Resource-CMap" で始まる CMap ファイルとともに使われます。これは通常の X ディスプレーではほとんど使われませんが PDF のレンダリング等では使われます (「X ユーティリティーアプリケーション」参照下さい)。

[ヒント] ヒント

ハン(漢)統一のために複数のグリフがいくつかの Unicode コードポイントに対して期待されています。最も気になることの一つは CJK 国間で文字の位置が異なる "U+3001 IDEOGRAPHIC COMMA" と "U+3002 IDEOGRAPHIC FULL STOP" です。"~/.fonts.conf" を使って日本語中心のフォントを中国語中心のフォントより優先順位を上げるよう設定することで日本人は安心できるようになります。

7.7. X アプリケーション

7.7.1. X オフィスアプリケーション

基本的なオフィスアプリケーションのリストを記します (LO は LibreOffice)。

表7.8 基本的な X オフィスアプリケーションのリスト

パッケージ ポプコン パッケージサイズ タイプ 説明
libreoffice-writer V:150, I:203 28763 LO ワードプロセッサ
libreoffice-calc V:148, I:200 23894 LO スプレッドシート
libreoffice-impress V:145, I:197 3404 LO プレゼンテーション
libreoffice-base V:142, I:192 8959 LO データーベース管理
libreoffice-draw V:146, I:197 12617 LO ベクトル画像エディター (ドロー)
libreoffice-math V:148, I:200 1508 LO 数式エディター
abiword V:43, I:103 5768 GNOME ワードプロセッサ
gnumeric V:67, I:110 7698 GNOME スプレッドシート
gimp V:124, I:468 15578 GTK ビットマップ画像エディター (ペイント)
inkscape V:166, I:368 79425 GNOME ベクトル画像エディター (ドロー)
dia-gnome V:10, I:18 617 GNOME フローチャートやダイアグラムエディター
planner V:2, I:16 1146 GNOME プロジェクト管理
calligrawords V:1, I:5 7042 KDE ワードプロセッサ
calligrasheets V:1, I:5 13128 KDE スプレッドシート
calligrastage V:1, I:5 11018 KDE プレゼンテーション
calligraplan V:0, I:5 7094 KDE プロジェクト管理
calligraflow V:0, I:4 357 KDE フローチャートやダイアグラムエディター
kexi V:2, I:10 9461 KDE データーベース管理
karbon V:3, I:10 2146 KDE ベクトル画像エディター (ドロー)
krita V:2, I:12 18806 KDE ビットマップ画像エディター (ペイント)

7.7.2. X ユーティリティーアプリケーション

著者の目に止まった基本的ユーティリティーアプリケーションのリストを記します。

表7.9 基本的 X ユーティリティーアプリケーションのリスト

パッケージ ポプコン パッケージサイズ タイプ 説明
evince V:284, I:411 1100 GNOME 文書 (pdf) ビューワー
okular V:70, I:104 3205 KDE 文書 (pdf) ビューワー
evolution V:87, I:365 5589 GNOME 個人情報管理 (グループウエアと電子メール)
kontact V:8, I:54 4658 KDE 個人情報管理 (グループウエアと電子メール)
scribus V:13, I:29 54122 KDE デスクトップページレイアウトエディター
glabels V:1, I:6 1273 GNOME ラベルエディター
gnucash V:6, I:21 7033 GNOME 個人会計
homebank V:1, I:5 759 GTK 個人会計
kmymoney V:1, I:5 9255 KDE 個人会計
xsane V:47, I:331 702 GTK スキャナーのフロントエンド

[注意] 注意

evinceokular によって CJK の PDF 文書を Cmap データー (「CJK フォント」) を使って表示する際には poppler-data パッケージ (以前は non-free だった、「Ghostscript」参照下さい) が必要です。

[注記] 注記

scribus (KDE) のようなソフトウエアーを GNOME デスクトップ環境にインストールすることは、同様の機能が GNOME デスクトップ環境下で利用でき無いのでまったく問題ありません。ただ、機能が重複するパッケージをインストールしすぎるとあなたのメニューが忙しくなってしまいます。

7.8. X トリビア

7.8.1. X でのキーマップとポインターボタンのマッピング

xmodmap(1) は X Window システム中でのキーマップとポインターボタンのマッピングのためのユーティリティーです。keycode を知るには、X 環境下で xev(1) を実行してキーを押さえます。keysym の意味を知るには、"/usr/include/X11/keysymdef.h" ファイル (x11proto-core-dev パッケージ) 中の MACRO 定義を覗いて下さい。このファイル中の全ての "#define" 文は keysym 名に "XK_" を前付けして名づけられています。

7.8.2. 古典的 X クライアント

xterm(1) のような多くの伝統的 X クライアントプログラムは、ジオメトリやフォントや表示を規定する標準化されたコマンドラインオプションの組み合わせを使って起動できます。

それらはその見栄えを設定するのに X リソースデーターベースも用います。X リソースのシステム全体のデフォールトは "/etc/X11/Xresources/*" の中に保存されており、それらのアプリケーションのデフォールトは "/etc/X11/app-defaults/*" の中に保存されています。これらの設定をスタート点として使います。

"~/.Xresources" ファイルはユーザーのリソース規定を保存するために使われます。ログイン時にこのファイルは自動的にデフォールトの X リソースに合流されます。この設定変更をしてすぐ有効にするには、それを次のコマンドを使ってデーターベースに合流させます。

$ xrdb -merge ~/.Xresources

x(7)xrdb(1) を参照下さい。

7.8.3. X ターミナルエミュレーター — xterm

xterm(1) に関することは、http://dickey.his.com/xterm/xterm.faq.html で学びます。

7.8.4. X クライアントを root で実行

[警告] 警告

gdm3 のようなディスプレーマネージャーのプロンプトに root と入力して X ディスプレー・セッションマネージャーを root アカウントの下で実行してはいけません。なぜなら、たとえシステム管理業務を行おうとしている時ですら、こういう行為は安全でない (インセキュアー) と認識されているからです。X アーキテクチャ全てが root として実行するとインセキュアーと認識されています。通常ユーザーのような、可能な限り最低レベルの特権を使うように常にするべきです。

例えば "foo" 等の特定の X クライアントを root として実行する最も簡単な方法は次に記すように sudo(8) を使うことです。

$ sudo foo &
$ sudo -s
# foo &
$ gksu foo &
$ ssh -X root@localhost
# foo &
[注意] 注意

この目的だけのために上記のように ssh(1) を使うことはリソースの無駄遣いです。

X クライアントが X サーバーに接続するためには次のことに注意下さい。

  • 元のユーザーの "$XAUTHORITY" と "$DISPLAY" 環境変数の値は新たなユーザーの環境変数値にコピーされなければいけません。

  • "$XAUTHORITY" 環境変数の値で指示されるファイルが新たなユーザーによって読めなければいけません。

gksu パッケージ (ポプコン: V:228, I:470) はルート特権を獲得することに特化した GTK+ の GUI パッケージです。それが su(1) または sudo(8) をバックエンドに使うように "/apps/gksu/sudo-mode" gconf キーを使って設定できます。gconf キーを編集するには gconf-editor(1) を使えばできます (メニュー: "Applications" → "System Tools" → "Configuration Editor")。