diff --git a/ja_JP.eucJP/books/handbook/x11/chapter.sgml b/ja_JP.eucJP/books/handbook/x11/chapter.sgml index 76699b8011..2d32502b01 100644 --- a/ja_JP.eucJP/books/handbook/x11/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/x11/chapter.sgml @@ -1,1107 +1,1107 @@ X Window System 概要 FreeBSD では, ユーザに強力なグラフィカルインタフェイスを提供するためにXFree86を採用しています. XFree86 は X Window System のオープンソースな実装です. この章では FreeBSD における XFree86 のインストールと設定について解説します. XFree86 についての情報や, それがサポートするビデオハードウェアについては XFree86 の Web サイトをご覧ください. この章を読めば以下のことがわかります. X Window System の様々なコンポーネントと, それらが互いにどのように連携しているか. XFree86 のインストールと設定について 様々なウィンドウマネージャのインストール方法 XFree86 での TrueType フォントの使い方 GUI ログイン (XDM) のセットアップ方法 この章を読み始める前に以下のことに注意してください. サードパーティ製ソフトウェアのインストール方法について知っていること (). X を理解する 初めて X を使う場合, Microsoft Windows や Mac OS といった他の GUI 環境に慣れている人は多少ショックを受けるでしょう. 様々な X のコンポーネントについての詳細の全てや, それらがどのようにやり取りするかについては理解する必要はありませんが, 基本的なことをいくつか知っていると X を使う際に強力な武器になるでしょう. なぜ X? - X は, UNIX 用に書かれた最初のウィンドウシステムではありませんが, 最もポピュラーなものです. X のオリジナルの開発チームは X を書く前に別のウィンドウシステムを開発していました. そのシステムの名前は W (Winodwの W) です. X は単にローマ字でその次の文字だというだけなのです. + X は, UNIX 用に書かれた最初のウィンドウシステムではありませんが, 最もポピュラーなものです. X のオリジナルの開発チームは X を書く前に別のウィンドウシステムを開発していました. そのシステムの名前は W (Windowの W) です. X は単にローマ字でその次の文字だというだけなのです. X は X, X Window System, X11, もしくはその他の用語で呼ぶことができます. X11 を X Windows と呼ぶと気を悪くする人もいます. 詳しくは &man.X.1; をご覧ください. X のクライアント/サーバモデル X は最初からネットワークを意識してデザインされており, クライアント - サーバモデルを採用しています. X では, X サーバはキーボードやモニター, マウスが接続されたコンピュータ上で動きます. このサーバはディスプレイの表示を管理したり、キーボード, マウスなどからの入力を処理したりします. 各 X アプリケーション (XTermNetscape など) は クライアントになります. クライアントはこの座標にウィンドウを描いてくださいといったメッセージをサーバへ送り, サーバはユーザが OK ボタンを押しましたといったようなメッセージを送り返します. 家庭や小さなオフィスのような環境で, 1 台しかコンピューターがないという場合には, X サーバと X クライアントは同じコンピューター上で動くことになるでしょう. しかし, X サーバを非力なデスクトップコンピューターで動かし, X アプリケーション (クライアント) は例えばオフィス全体を捌くような高機能で高価なマシンで動かすことも可能なのです. この場合, X のクライアントとサーバの通信はネットワーク越しに行なわれます. これは, ある人々を混乱させることがあります. X での用語は彼らが想定するものとは正反対だからです. 彼らはX サーバは地下にある大きなパワフルなマシンであり, X クライアントが自分たちのデスク上にあると想像するのです. Xサーバとはモニターとキーボードがついているマシンのことであり、Xクライアントとはウィンドウを表示するプログラムだということを思い出してください。 X のプロトコルには, クライアントとサーバのマシンが同じ OS で動いていなければならないといったことを強制するものはなにもありませんし, 同じ機種で動いている必要もありません. X サーバを Microsoft Windows や Apple の Mac OS で動かすことも可能ですし, そのようなソフトウェアもフリーのものから商用のまでいろいろとあります. FreeBSD に付いてくる X サーバは XFree86 と呼ばれるもので, FreeBSD のライセンスに似たライセンスに従ってフリーで配布されています. FreeBSD 用の商用 X サーバも入手可能です. X ウィンドウマネージャ X のデザイン哲学は UNIX のそれに非常によく似ており, ツールであってポリシーではないのです. つまり, X はあるタスクがどのように達成されるべきかを示すものではありません. その代わり, ユーザにはツールが与えられ, それらをどうするかはユーザに委ねられているのです. この哲学は, X ではスクリーン上でウィンドウがどのように見えるべきか, マウスでそれらをどうやって動かすか, ウィンドウ間を移動するのにどういうキーストロークを使うべきか (例えば Microsoft Windows における Alt Tab ), 各ウィンドウのタイトルバーはどのように見えるべきか, それらはクローズボタンを持つべきかどうか, といったことを示すものではないというところまで拡大して解釈できます. その代わりに, X ではそういったことをウィンドウマネージャと呼ばれるアプリケーションに任せるのです. X 用のウィンドウマネージャは以下のようにたくさんあります. AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker, などなど. これらのウィンドウマネージャはそれぞれ異なるルックアンドフィールを持っていますし, いくつかはバーチャルデスクトップをサポートしていますし, いくつかはデスクトップのマネージメントにキーストロークをカスタマイズできたり, スタートボタンやそれに類するもの持っているものもありますし, テーマをサポートをしており新しいテーマを適用することによってルックアンドフィールを完全に変えることができるものもあります. これらのウィンドウマネージャやさらに多くのものはportsコレクションの x11-wm というカテゴリーからインストールすることが可能です. 加えて, KDEGNOME といったデスクトップ環境はともにそれぞれのデスクトップに統合された独自のウィンドウマネージャを持っています. それぞれのウィンドウマネージャはまた異なる設定機構を備えており, 手で設定ファイルを編集しなければならないものや, 設定作業のほとんどを GUI ツールですることができるものもあります. 少なくとも 1 つ (sawfish) は Lisp 言語の変種で書かれた設定ファイルを持っています. フォーカスポリシー ウィンドウマネージャのもう一つの機能はマウスのフォーカスポリシーに関するものです. 全てのウィンドウシステムは, ウィンドウを選択しキーストロークを受け付けるようにするための方法が必要です. そして, どのウィンドウがアクティブなのかを示す必要もあります. よく知られているフォーカスポリシーは click-to-focus と呼ばれるもので, このモデルは Microsoft Windows で利用されており, あるウィンドウ内でマウスをクリックすればそのウィンドウがアクティブになる, というものです. X は特定のフォーカスポリシーを採用していません. 代わりにウィンドウマネージャがそれをコントロールします. それぞれのウィンドウマネージャが, それぞれのフォーカスポリシーをサポートしています. 全てのものは click-to-focus をサポートしていますし, 多くのものは他の方法もサポートしています. 最もポピュラーなフォーカスポリシーは次のものでしょう focus-follows-mouse マウスポインターの下にいるウィンドウがフォーカスされるというものです. ウィンドウは最全面にある必要はありません. フォーカスを変えるには他のウィンドウにマウスポインターを動かすだけです. クリックする必要はありません. sloppy-focus これは focus-follows-mouse を少し拡張したものです. focus-follows-mouse では, マウスがルートウィンドウ (背景) に移動した時には, フォーカスされているウィンドウがなくなり, キーストロークは単に破棄されます. sloppy-focus であればポインターが別のウィンドウに移った時のみフォーカスが変わり, 現在のウィンドウから出ただけでは変わりません. click-to-focus アクティブなウィンドウはマウスクリックにより選択されます. ウィンドウは持ち上げられ, 他の全てのウィンドウの前にきます. ポインターが別のウィンドウに動いた時でも、全てのキーストロークがこのウィンドウに届きます. 多くのウィンドウマネージャはこういったものに加え, 他のポリシーもサポートしています. ウィンドウマネージャ自身のドキュメントもよく読んでください. ウィジェット X のツールを提供してもポリシーは提供しないというアプローチは, 各アプリケーションでスクリーンに現われるウィジェットにも適用されます. ウィジェットはクリック可能であったり, 他の方法で操作可能な全てのユーザインタフェイス用アイテムを指す用語です. ボタンやチェックボックス, ラジオボタン, アイコン, リスト, などがそうです. Microsoft Windows はこれらをコントロールと呼んでいます. Microsoft Windows や Apple の Mac OS はともに非常に厳密なポリシーをウィジェットに課しています. アプリケーション開発者は共通のルックアンドフィールに確実に従うことを想定されているわけです. X では, グラフィカルなスタイルやウィジェットのセットが特定のものに合わせたりすることに対してそれほど意識していませんでした. すなわち, X アプリケーションに共通のルックアンドフィール期待してはいけません. いくつかのポピュラーなウィジェットセットやその亜種があります. MIT のオリジナルの Athena ウィジェットや Motif (Microsoft Windows をモデルにした, 斜めになったエッジやグレイの陰影のウィジェットセットを持っている), OpenLook などです. 比較的新しいの X アプリケーションのほとんどが, KDE で使われている Qt や GNOME プロジェクトで使われている GTK のようにモダンな見た目を持ったウィジェットセットを使っています. この点で言えば, UNIX のルックアンドフィールは収斂されてきており, 初心者がより簡単に使えるようになってきています. XFree86 のインストール XFree86 をインストールする前にどのバージョンを動かすかを決めてください. XFree86 3.x は XFree86 におけるメンテナンスブランチです. これは非常に安定しており, 非常にたくさんの数のグラフィックカードをサポートしているのですが, もう新しい機能は追加されません. XFree86 4.X はシステムを完全に見直して設計したものであり, フォント自体のもっと良いサポートやアンチエイリアスなどといった多くの新しい機能も追加されています. 残念ながら, この新しいアーキテクチャーではビデオドライバーの書き直しが必要なため, 3.X でサポートされていたいくつかの古いカードはまだサポートされていません. FreeBSD のセットアッププログラムを使えば, OS のインストール時に XFree86 3.3.6 をインストールして設定することができます (に書かれています). XFree86 4.x を使いたい場合, まずベースとなる FreeBSD をインストールしてから XFree86 のインストールを行うことになります. 例えば, XFree86 4.X を ports コレクションからビルドしてインストールする場合には次のようにします. &prompt.root; cd /usr/ports/x11/XFree86-4 &prompt.root; make all install clean 他には pkg_add ツールを用いたり, XFree86 の Webサイトで直接提供されているものを利用して XFree86 4.X のバイナリパッケージをインストールするという方法もあります. この章の残りでは, XFree86 をどのように設定すればいいか, また productive なデスクトップ環境をどのように設定するかについて解説します. Christopher Shumway による文章です XFree86 の設定 XFree86 4.X XFree86 はじめに XFree86 4.Xの設定を始める前に, 次の情報が必要となります. モニターの仕様 ビデオアダプタのチップセット ビデオアダプタのメモリー 水平走査周波数 垂直同期周波数 モニターの仕様は, XFree86 がどの解像度とリフレッシュレートで動くかを決定するために用いられます. こういった仕様は, 通常はモニターに付いてくるドキュメントや製造元のWebサイトから取得することができます. 必要なものは二つの数字の範囲, 一つは水平走査周波数でもう一つは垂直同期周波数, です. ビデオアダプタのチップセットは XFree86 がグラフィックハードウェアとやり取りするためにどのドライバーモジュールを使うかを定義します. ほとんどのチップセットが自動認識されますが, 正常に認識されない時のために知っておくとよいでしょう. ビデオメモリーは, グラフィックアダプタがどの解像度とどの色数で動くことができるかを決めます. これは, ユーザが自分のシステムにおける制限を理解するために知っておくことが重要です. XFree86 4.Xの設定 XFree86 4.X の設定は複数のステップの処理に分けられます. まずは XFree86 オプションを付けて初期設定ファイルを作りましょう. スーパーユーザになって次のようにしてください. &prompt.root; XFree86 -configure これにより, 現在のワーキングディレクトリに XF86Config.new という XFree86 の設定ファイルのスケルトンが生成されます. XFree86 プログラムはシステム上のグラフィックハードウェアを検出し, そのハードウェア用の適切なドライバーを読み込む設定ファイルを作ります. 次のステップは, 作成した設定ファイルで XFree86 が動くことを確認することです. そのためには以下のようにします. &prompt.root; XFree86 -xf86config XF86Config.new 黒とグレーのグリッドと X のマウスポインターが現われればその設定は成功です. テストから抜け出すためには単に次のキーを同時に押します. Ctrl Alt Backspace XFree86 4 のチューニング 次は XF86Config.new を好みに合うように調整します. &man.emacs.1; や &man.ee.1; のようなテキストエディターでファイルを開いてください. まずやることはモニターの周波数を加えることです. これらは水平と垂直の同期周波数と表現されるのが普通です. これらの値は XF86Config.new の "Monitor" のセクションに次のように加えます. Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" Horizsync 30-107 VertRefresh 48-120 EndSection HorizsyncVertRefresh というキーワードが設定ファイル中にない場合があります. その場合には, Horizsync キーワードの後には水平走査周波数の, VertRefresh キーワードの後には垂直同期周波数の正しい値を加えてください. 上の例では対象となるモニターの周波数が書かれています. XF86Config XF86Config.new はエディターで開いたままにしておき, 今度はデフォルトの解像度と色数を好みで選びましょう. Screen セクションに以下のように書きます. Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection DefaultDepth というキーワードはデフォルトで動く色数について記述するためのものです. &man.XFree86.1; のコマンドラインスイッチ -bpp が使用された場合はこちらが優先されます. Modes というキーワードは与えられた色数におけるデフォルトの解像度を記述しておくためのものです. 上の例ではデフォルトの色数はピクセルあたり24ビットであり, この色数での解像度は1024ピクセル×768ピクセルです. 1024x768の解像度で動かすためには DefaultDepth というキーワードに 24 という値を与えて書き加えおき, "Display" サブセクションに求める Depth と Modes のキーワードを書いておきます. ターゲットのシステムのフラフィックハードウェアによって定義されているように, VESAスタンダードモードのみがサポートされていることに注意してください. 最後に, 設定ファイルを保存し, 上の例にあるようにテストしてみてください. 全てうまくいったなら, &man.XFree86.1; が見つけることができる共通の場所に設定ファイルを置きます. これは, 通常は /etc/X11/XF86Config/usr/X11R6/etc/X11/XF86Config です. &prompt.root; cp XF86Config.new /etc/X11/XF86Config 設定ファイルを共通の場所に置いたら, 設定は完了です. &man.startx.1; で XFree86 4.X を起動するために x11/wrapper ポートをインストールします. また, XFree86 4.X を &man.xdm.1; で立ち上げることも可能です. 高度な設定 Intel i810 グラフィックチップセットの設定 Intel i810 graphic chipset Intel i810 統合チップセットを設定には, XFree86にカードを制御させるためにAGP プログラミングインタフェイスである agpgart が必要になります. agpgart を利用するには, &man.kldload.8; を使って agp.ko というカーネルローダブルモジュールをカーネルにロードしておく必要があります. これは, /boot/loader.conf に次のように書いておけば &man.loader.8; がブート時に自動的にやってくれます. agp_load="YES" 次に, プログラミングインタフェイス用にデバイスノードを作る必要があります. AGP のデバイスノードを作るには, /dev で &man.MAKEDEV.8; を次のように起動します. &prompt.root; cd /dev &prompt.root; sh MAKEDEV agpgart これで他のグラフィックカードと同様に設定を行うことができるようになります. もし XFree86 4.1.0 (もしくはそれ以降) を使っており, fbPictureInit といったようなシンボルが見つからないというメッセージが現われるなら, XFree86 設定ファイルで Driver "i810" の後に次のような行を入れてみてください. Option "NoDDC" Murray Stokely Contributed by XFree86 でのフォントの使用 Type1 フォント XFree86 に付いてくるデフォルトのフォントは通常のデスクトップパブリッシングアプリケーションにとっては理想的とは言えない程度のものです. 文字を大きくするとジャギーになりプロフェッショナルとは言えないようなものになりますし, Netscape での小さなフォントは頭が悪そうに見えます. しかし, 世の中には質の高い Type1 (PostScript) フォントがいくつかあり, XFree86 ではバージョン 3.X でも 4.X でもそれらを簡単に利用することができます. 例えば, URW フォントコレクション (x11-fonts/urwfonts) には高品質の Type1 フォント (Times Roman, Helvetica, Palatino など) が含まれています. freefont コレクション (x11-fonts/freefont) にはもっとたくさんのフォントが含まれていますが, それらは Gimp のようなグラフィックソフトウェアで使用するためのものであり, スクリーンフォントとしては十分ではありません. さらに, XFree86 は簡単に TrueType フォントを使うように設定することも可能です. 後に出てくる TrueType フォントのセクション を参照してください. 上記の Type1 フォントコレクションを ports から入れる場合には次のコマンドを実行してください. &prompt.root; cd /usr/ports/x11-fonts/urwfonts &prompt.root; make install clean freefont や他のコレクションでも同じようにします. X サーバにこれらのフォントがあることを教えるには (XFree86 バージョン 3 の場合は /etc/, バージョン 4 では /etc/X11/ にある) XF86Config の適切な場所に次のような行を加えます. FontPath "/usr/X11R6/lib/X11/fonts/URW/" 別の方法としては, X のセッション中に次のようなコマンドラインを実行します. &prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/URW &prompt.user; xset fp rehash これは動くのですが, X のセッションが終了すると消えてしまいます. 消えないようにするには X の起動時に読み込まれるファイル (通常の startx セッションの場合は ~/.xinitrc, XDM のようなグラフィカルなログインマネージャを通してログインする時は ~/.xsession) に加えておきます. 三番目の方法は新しい XftConfig ファイルを使うことです. これに関しては アンチエイリアスのセクションを参照してください. TrueType フォント XFree86 4.X には TrueType フォントのレンダリング機能が組み込まれています. この機能を実現するために二つの異なるモジュールがあります. ここでは, "freetype" のほうがより他のフォントレンダリングバックエンドと似ているため, このモジュールを使うことにします. freetype モジュールを使うためには /etc/X11/XF86Config ファイルに以下の行を追加するだけです. Load "freetype" XFree86 3.3.X の場合, TrueType フォントサーバが別に必要となります. Xfstt がよく使われるものです. Xfstt とインストールするのは簡単で, x11-servers/Xfstt ポートを利用してください. さて, まずは TrueType フォント用のディレクトリ (例えば /usr/X11R6/lib/X11/fonts/TrueType) を作り, そこに TrueType フォントを全て放り込みましょう. Macintosh の TrueType フォントは, そのままでは使うことができませんので注意してください. XFree86 で使うには Unix/DOS/Windows 用のフォーマットでなければなりません. ファイルを置いたら ttmkfdir を使って fonts.dir ファイルを作ってください. このファイルにより, X は新しいファイルがイントールされたことを理解します. ttmkfdir は FreeBSD Ports コレクション, x11-fonts/ttmkfdir, からインストールできます. &prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType &prompt.root; ttmkfdir > fonts.dir 次に TrueType フォントのディレクトリをフォントパスに追加します. 上の Type1 フォントの場合と同じように, &prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType &prompt.user; xset fp rehash とするか, もしくは XF86Config ファイルに 行を追加するのです. これで終わりです. NetscapeGimp, StarOffice といった全ての X アプリケーションから TrueType フォントを使うことができます. (高解像度なディスプレイで見る Web ページ上のテキストみたいな) とても小さなフォントや (StarOffice にあるような) 非常に大きなフォントもかなり綺麗に見えるようになることでしょう. フォントのアンチエイリアス XFree86 では 4.0.2 以降でフォントのアンチエイリアスをサポートしています. 今のところ, ほとんど全てのソフトがこの新しい機能を使うメリットを亨受するようにはなっていません. しかし, Qt (KDE デスクトップ用のツールキット) はサポートしていますので, XFree86 4.0.2 以降と Qt 2.3 以降及び KDE を使う場合には全ての KDE/Qt アプリケーションでアンチエイリアスなフォントを使うことができます. アンチエイリアスを使うように設定するには, /usr/X11R6/lib/X11/XftConfig ファイルを作ります (既にある場合には編集してください). このファイルを使えばいくつかの先進的な機能を使うことができるのですが, このセクションでは最も簡単なところだけを解説します. まず, X サーバに対してアンチエイリアスをかけるべきフォントを指定します. それぞれのフォントディレクトリに対して次のような行を加えます. dir "/usr/X11R6/lib/X11/Type1" アンチエイリアスをかけたい他のフォントのディレクトリ (URW や truetype など) についても同じようにします. アンチエイリアスはスケーラブルなフォント (基本的には Type1 と TrueType) にのみ有効ですので, ビットマップフォントのディレクトリは加えないようにしてください. ここに含めたディレクトリは XF86Config ではコメントアウトします. アンチエイリアスをかけることによって境界が少しぼやけ, そのためにとても小さなテキストはさらに読みやすくなり, 大きなフォントではギザギザが消えるのです. しかし, 普通のテキストにかけた場合には目が疲れることになります. 9から13ポイントのサイズのフォントについて, アンチエイリアスをかけないようにするには次の行を加えます. match any size > 8 any size < 14 edit antialias = false; いくつかの等幅フォントは, アンチエイリアスをかけるとスペーシングがうまくいかなくなる場合があります. 特に KDE でその傾向があるようです. 解決策の一つとして, そういったフォントのスペーシングを100に設定する方法があります. そうするためには次の行を加えてください. match any family == "fixed" edit family =+ "mono"; match any family == "console" edit family =+ "mono"; (これによりfixedというフォントに他の "mono" という名前のエイリアスを付けます) そして次の行も加えてください. match any family == "mono" edit spacing = 100; 等幅フォントが必要な時にはつねに Lucidux を使うように (このフォントは実際見目もよく, スペーシングの問題もありません) するためには最後の行を次のように変更します (最後の行は異なるものに同じファミリー名を付けています). match any family == "mono" edit family += "LuciduxMono"; match any family == "Lucidux Mono" edit family += "LuciduxMono"; match any family == "LuciduxMono" edit family =+ "Lucidux Mono"; 最後に, このファイルを自分の .xftconfig として保存し, 次のコマンドを追加します. includeif "~/.xftconfig" 最後に一つ. LCD スクリーンではサブピクセルサンプリングが必要な場合があります. これは, 基本的には (水平方向に分かれている) 赤, 緑, 青の各コンポーネントを別々に扱うことによって水平方向の解像度を良くするというもので, そうすることによって劇的な結果が得られます. これを有効にするには XftConfig ファイルに次の行を加えます (ディスプレイの種類にもよりますが最後は ``rgb'' ではなく ``bgr''や ``vrgb'', ``vbgr'' の場合もあるので, 試してみて最も良いものを使ってください). match edit rgba=rgb; アンチエイリアスは, 次に X サーバを立ち上げた時から有効になります. しかし, 上でも述べたようにその恩恵を受けるにはプログラム側での対処も必要です. 今のところ Qt は対応しているため, KDE 環境全体でアンチエイリアスのかかったフォントを用いることができます (KDE についての詳しいことは をご覧ください). gtk+ を同じようにするパッチもありますので, そのパッチを当てた gtk+ を使ってコンパイルし直せば GNOME 環境や Mozilla もまたアンチエイリアスなフォントを使うことができます. 実際には x11/gdkxft という port があり, リコンパイルしなくてもアンチエイリアスなフォントを使うことができます. 詳しくは をご覧ください. アンチエイリアスは, FreeBSD や XFree86 ではまだ新しい機能ですが, その設定はもっと簡単になるでしょうし, すぐにもっとたくさんのアプリケーションがサポートするようになるでしょう. Seth Kingsley Contributed by X ディスプレイマネージャ 概要 X ディスプレイマネージャ (XDM) は X Window System のオプショナルな一部分であり, ログインセッションの管理に用います. 最低限の機能を実装した X 端末やデスクトップ, 大規模なネットワークディレプレイサーバといった場面ではこれが有用です. X Window System はネットワークとプロトコルから独立しているため, ネットワークで繋がれた X のクライアントとサーバを動かすための設定はかなり幅が広くなります. XDM はどのディスプレイサーバに接続するかを選択でき、ログイン名とパスワードの組み合わせなど認証情報を入力できるグラフィカルなインタフェイスを提供しています. XDM がユーザに &man.getty.8; (詳しくはをご覧ください) と同じ機能を提供することを考えてみてください. つまり, ディスプレイ上でシステムへのログインができ, ユーザの代わりにセッションマネージャ (通常は X のウィンドウマネージャ) を起動することができるのです. それからXDMは, ユーザが作業を終えてディスプレイからログアウトする合図を送ってきてプログラムが終了するのを待ちます. この時点で, XDM は次にログインするユーザのためにログイン画面や chooser 画面を表示することができるのです. XDM の使用 XDM のデーモンプログラムは /usr/X11R6/bin/xdm にあります. このプログラムは root になればいつでも起動することができ, ローカルマシン上のディスプレイの管理を始めます. マシンをブートする際, いつも XDM を起動したい場合には, /etc/ttys にそのためのエントリを加えておくのが簡単です. このファイルのフォーマットや使用方法についての詳細は を参照してください. デフォルトの /etc/ttys ファイルには仮想端末上で XDM のデーモンプログラムを起動するための行: ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure があります. このエントリーはデフォルトでは無効になっており, 有効にするには 5 番目のカラムを off から on にし, の指示に従って &man.init.8; を再起動します. 最初のカラムはこのプログラムが管理する端末の名前で, この場合 ttyv8 になります. つまり, XDM は 9 番目仮想端末で起動されるということです. XDM の設定 XDM の設定用ディレクトリは /usr/X11R6/lib/X11/xdm です. このディレクトリには XDM の振る舞いや見た目を変更するために用いられるいくつかのファイルがあります. だいたいは以下のような感じです. ファイル 説明 Xaccess クライアント認証のルールセット Xresources デフォルトの X リソース Xservers 管理すべきリモートやローカルのディスプレイのリスト Xsession デフォルトのログイン時のセッションスクリプト Xsetup_* ログインインタフェイスの前にアプリケーションを起動するためのスクリプト xdm-config このマシンで動いている全てのディスプレイのグローバルな設定 xdm-errors サーバプログラムによって生成されるエラー xdm-pid 現在動いている XDM のプロセス ID このディレクトリにはまた, XDM の動作中にデスクトップをセットアップするために用いられるスクリプトやプログラムがいくつかあります. それぞれのファイルの目的を簡単に解説しましょう. 正確な文法や使い方は &man.xdm.1; に記述されています. デフォルトの設定では,単純な四角のログインウィンドウがあり, そこにはマシンのホスト名が大きなフォントで表示され, Login:Password: のプロンプトがその下に表示されています. XDM スクリーンのルックアンドフィールを変えるにはここから始めるのがいいでしょう. Xaccess XDM がコントロールするディスプレイに接続するためのプロトコルは X Display Manager Connection Protocol (XDMCP) と呼ばれます. このファイルにはリモートのマシンからの XDMCP 接続をコントロールするためのルールセットが書かれます. デフォルトでは, どんなクライアントからの接続も許可するようになっていますが, xdm-config を変更してリモートからのコネクションを待ち受けるようにしない限り問題ではありません. Xresources これはディスプレイの chooser とログインスクリーン用の application-defaults ファイルです. このファイルでログインプログラムの見た目を変更することができます. フォーマットは XFree86 のドキュメントで記述されている app-defaults ファイルのものと同じです. Xservers これは, chooser が選択肢として提供するリモートのディスプレイの一覧です. Xsession XDM でログインした後に実行されるデフォルトのセッションスクリプトです. 通常, 各ユーザは ~/.xsessionrc というカスタマイズしたセッションスクリプトを持っており, こちらが優先されます. Xsetup_* これらは chooser やログインインタフェイスが表示される前に自動的に実行されます. それぞれのディスプレイには, Xsetup_ に続けてローカルのディスプレイ番号を付けたもの (例えばXsetup_0) を名前とするスクリプトがあります. 典型的な使い方は xconsole のようなバックグラウンドで動かすプログラムを一つか二つ起動することです. xdm-config app-defaultsの書式で書かれた, このインストレーションで管理されるすべてのディスプレイに適用される設定を保持しています。 xdm-errors このファイルには XDM が起動しようとしている X サーバからの出力が書き出されます. XDM が起動しようとしているディスプレイがなんらかの理由でハングした場合, このファイルのエラーメッセージを見てください. そういったメッセージは各ユーザの ~/.xsession-errors にもセッション毎に書き出されます. ネットワークディスプレイサーバの起動 あるディスプレイサーバに他のクライアントが接続することができるようにするために, アクセスコントロールのルールを編集し, コネクションリスナーを有効にします. デフォルトでは保守的な設定になっています. XDM がそういったコネクションを待ち受けるようにするためには xdm-config にある次の行をコメントアウトします. ! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0 そして, XDM を再起動します. app-defaults ファイルにおけるコメントは ! であっていつものような # ではないことに注意してください. アクセス制限はもっと厳しくしたいかもしれません. Xaccess ファイルにある例を参考にしたり, オンラインマニュアル &man.xdm.1; を参照したりしてください. XDM の代わりになるもの デフォルトの XDM に代わるものがいくつかあります. 一つは KDM (KDE に付属しててます) はその一つであり, この章の後ろで解説します. KDM はログイン時にウィンドウマネージャを選ぶことができるのに加え, 見た目もかなり綺麗にしてくれます. Valentino Vaschetto Contributed by デスクトップ環境 このセクションでは, FreeBSD 上の X で利用可能ないくつかのデスクトップ環境について解説します. デスクトップ環境とは, 単なるウィンドウマネージャから KDEGNOME といったような完全なデスクトップアプリケーションスイートまでカバーします. GNOME GNOME について GNOME はユーザフレンドリーなデスクトップ環境で, ユーザはコンピューターを簡単に使ったり設定したりできるようになります. GNOME にはパネル (アプリケーションを起動したり状態を表示したりするもの) , デスクトップ (データやアプリケーションが置かれる場所), 標準的なデスクトップツールやアプリケーションのセット, そしてアプリケーションが互いにうまくやり取りできるような仕組みが含まれています. 他の OS や環境に慣れている人でも GNOME の提供するグラフィック環境であれば心地よく感じるでしょう. GNOME のインストール GNOME をインストールする最も簡単な方法は, 第 2 章で解説した FreeBSD のインストールメニューのデスクトップ環境の設定を通して行うことです. また, package や ports を利用しても簡単にインストールできます. GNOME packageをネットワークからインストールするには, 以下のようにするだけです. &prompt.root; pkg_add -r gnome GNOME をソースから構築する場合, 次のように ports ツリーを使いましょう. &prompt.root; cd /usr/ports/x11/gnome &prompt.root; make install clean GNOMEがインストールできたら, デフォルトのウィンドウマネージャの代わりに GNOME を起動するように X サーバに教えます. 自分の .xinitrc が既にある場合には, ウィンドウマネージャを起動するところの行を /usr/X11R6/bin/gnome-session を起動するように変更するだけです. 特にこのファイルを用意していない場合には次のようにすれば十分でしょう. &prompt.user; echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrc 次に, startx とタイプすれば GNOME デスクトップ環境が起動します. もし XDM のようなディスプレイマネージャを使っているなら, この方法ではうまくいきません. その代わり, 実行可能な .xsession というファイルを作成し, 同じコマンドを起動するようにします. そのためには, このファイルを編集してウィンドウマネージャを /usr/X11R6/bin/gnome-session で置き換えます. &prompt.user; echo "#!/bin/sh" > ~/.xsession &prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession &prompt.user; chmod +x ~/.xsession もう一つの方法は, ログイン時にウィンドウマネージャを選択できるようにディスプレイマネージャを設定することです. KDE2 の詳細についてのセクションで KDE のディスプレイマネージャである kdm を使ってどのようにすればいいのかを解説しています. GNOME でアンチエイリアスなフォントの使用 XFree86 デスクトップでは, フォントのアンチエイリアスは KDE 環境ではじめて登場し標準のインストールでサポートされていますが, GNOME 環境のような gtk アプリケーションでも可能です. 最も素直なやり方は恐らく x11/gdkxft port にある libgdkxftライブラリ を使うことです. この port をインストールしたら /usr/X11R6/share/doc/gdkxft/README を注意深く読んでください. あとは gtk アプリケーションにフォントのレンダリング関数を標準の libgdk.so よりも前に libgdkxft.so から探すようにさせるだけです. これは, 環境変数が正しい位置を指すようにするだけでできます. Bourne シェル (/bin/sh) 系のシェルの場合, (The Gimp を起動するなら) 次のようにタイプします. &prompt.user; LD_PRELOAD=/usr/X11R6/lib/libgdkxft.so gimp csh 系のシェルであれば次のようにしてください. &prompt.user; setenv LD_PRELOAD /usr/X11R6/lib/libgdkxft.so &prompt.user; gimp もしくは, LD_PRELOAD=/usr/X11R6/lib/libgdkxft.so export LD_PRELOAD というコマンドを, X をどのように立ち上げるかに依って .xinitrc.xsession, もしくは /usr/X11R6/lib/X11/xdm/Xsession に書いておきます. ただし, こうすると GTK の Linux バイナリを起動する時にトラブるかもしれません. KDE2 KDE2 について KDE は最近の簡単に使えるデスクトップ環境です. KDE によりユーザは以下のようなメリットを亨受します. 美しい現代風のデスクトップ ネットワーク透過なデスクトップ KDE デスクトップやそのアプリケーションを使う際の便利で統一されたヘルプにアクセスできるような統合されたヘルプシステム 全ての KDE アプリケーションで統一されたルックアンドフィール 標準化されたメニュー, ツールバー, キーバインディング, カラースキームなど 国際化: KDE は 40を越える言語で利用可能 集中したダイアログベースのデスクトップ設定 膨大な数の KDE アプリケーション KDE はその KParts テクノロジーをベースにしたオフィススイートを持っており, それにはスプレッドシート, プレゼンテーションアプリケーション, オーガナイザー, ニュースクライアントなどが含まれています. KDE にはまた Konqueror と呼ばれる Web ブラウザーも付属しており, これは Unix システム上の他の Web ブラウザーの強力な競争相手です. KDE の詳細については KDE の Webサイトをご覧ください. KDE2 のインストール GNOME や他のデスクトップ環境とと全く同じように, KDE をインストールする最も簡単な方法は第 2 章にある FreeBSD のインストールメニューでのデスクトップ設定を利用することです. またまた同じことですが, package や ports コレクションからインストールするのも簡単です. ネットワーク越しに KDE2 package をインストールするには次ようにします. &prompt.root; pkg_add -r kde2 ソースから KDE を構築するには次のように ports ツリーを使いましょう &prompt.root; cd /usr/ports/x11/kde2 &prompt.root; make install clean KDE2 がインストールできたら X サーバに, デフォルトのウィンドウマネージャの代わりにこのアプリケーションを立ち上げるように教えます. .xinitrc ファイルを次のように編集しましょう. &prompt.user; echo "/usr/X11R6/bin/startkde" > ~/.xinitrc さぁ, これで startx でいつ X Window System を立ち上げても KDE2 がデスクトップになります. xdm のようなディスプレイマネージャを使っている場合, 設定は少し異なります. 代わりに .xsession ファイルを編集しましょう. kdm 用の説明はこの章の後のほうにあります. KDE2 の詳細について さぁ, KDE2 のインストールができました. ほとんどのことはヘルプページを見たりいろんなメニューをつつけばわかるでしょう. Winodows や Mac のユーザにも簡単なはずです. KDE2 の最も良いリファレンスはオンラインドキュメントです. KDE には独自の Web ブラウザー Konqueror が付属してますし, 膨大な数の便利なアプリケーションや詳しいドキュメントもあります. このセクションの残りではなんとなく使っているだけでは理解し難い技術的なところを解説します. KDE ディスプレイマネージャ マルチユーザシステムの管理者であれば, ユーザを迎えるにあたってグラフィカルなログインスクリーンが欲しいと思うかもしれません. xdm は上で述べたようにその目的で使うことができます. しかしながら, KDE にはその代わりになる KDM が付いており, より魅力的な見た目で, ログイン時のオプションもたくさんあります. 特に, (メニューを使って) ログイン後にどのデスクトップ環境か (KDE2GNOME など) を簡単に選ぶこともできます. まず最初に rootKDE2 のコントロールパネル kcontrol を起動しましょう. 一般には X 環境全体を root で動かすのは安全ではありませんので, ウィンドウマネージャは普通のユーザで起動しておいて (xtermKDEkconsole のような) ターミナルウィンドウを開き, su コマンドで root になり (そのユーザは wheel グループに入ってなければなりません) kcontrol とタイプします. 左側にあるシステム と書かれたアイコンをクリックし, ログインマネージャ をクリックします. 右側には様々な設定オプションがあり, これらについては KDE のマニュアルに細かく解説されています. 右側にある セッション をクリックしてください. 新規追加 をクリックして様々なウィンドウマネージャやデスクトップ環境を加えます. これらはただのラベルですので startkdegnome-session ではなく KDEGNOME とできます. failsage というラベルも入れてください. 他のメニューでも遊んでみてください. それらはだいたい見た目に関するもので, 見ればわかります. 終わったら下のほうにある 適用 ボタンをクリックしてコントロールセンターを終了します. (KDEGNOME といった) ラベルが何かを kdm が確実に理解してくれるように, xdm で使われているファイルを編集します. KDE 2.2 では, これは変更され kdm は独自の設定ファイルを持ちます. 詳しくは KDE 2.2 のドキュメントを参照してください. ターミナルウィンドウで root/usr/X11R6/lib/X11/xdm/Xsession ファイルを編集します. 中ほどに次のような行があるはずです. case $# in 1) case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; esac esac このセクションにもう少し行を追加する必要があります. KDE2GNOME というラベルが付いてると仮定すると, 以下の行を追加してください. case $# in 1) case $1 in kde) exec /usr/local/bin/startkde ;; GNOME) exec /usr/X11R6/bin/gnome-session ;; failsafe) exec xterm -geometry 80x24-0-0 ;; esac esac KDE を尊重してログイン時のデスクトップのバックグラウンドを変える場合には /usr/X11R6/lib/X11/xdm/Xsetup_0 に次の行を加えます. /usr/local/bin/kdmdesktop 最後に, 次のブート時で立ち上がるように /etc/ttyskdm を書きます. 上の xdm のセクションの解説で /usr/X11R6/bin/xdm となっている部分を /usr/local/bin/kdm とすればいいだけです. アンチエイリアスフォント 4.0.2 以降, XFree86 ではその "RENDER" 拡張によってアンチエイリアスがサポートされています. (KDE で利用されているツールキットである) Qt では 2.3 以降でこの拡張がサポートされています. その設定は X11 フォントでのアンチエイリアスに関して で解説されています. 従って最新のソフトウェアであれば KDE2 デスクトップ上でアンチエイリアスを利用することが可能なのです. KDE2 のメニューから 設定 -> ルックアンドフィール -> フォント と辿り, フォントとアイコンをアンチエイリアス表示 をクリックしてください. KDE の一部になっていない Qt アプリケーションの場合, QT_XFT という環境変数をプログラムを起動する前に設定する必要があります. XFCE XFCE について XFCEGNOME で使われている GTK ツールキットをベースにしたデスクトップ環境ですが, 非常に軽く, 使用や設定が簡単なのにも関わらずシンプルで効率的なデスクトップです. 見ためとしては商用 Unix システムが採用している CDE にかなり似ています. XFCE の機能のいくつかを下に挙げておきます. シンプルで使いやすいデスクトップ マウスのドラッグアンドドロップなどで全ての設定が可能 CDE に似たメインパネルとメニューやアプレット, ランチャー 統合されたウィンドウマネージャ, ファイルマネージャ, サウンドマネージャと GNOME 準拠のモジュールなど (GTK なので) テーマをサポート 速くて軽くて効率的: 古いマシンや遅いマシン, メモリーの限られたマシン向き XFCE に関する詳しい情報は XFCE の Web サイトから得られます. XFCE のインストール (この文章を書いている時点で) xfce のバイナリーパッケージがあります. インストールするにはただ次のようにタイプするだけです &prompt.root; pkg_add -r xfce また, ports コレクションを利用してソースから作ることも可能です &prompt.root; cd /usr/ports/x11-wm/xfce &prompt.root; make install clean 次に X が起動した時に XFCE が起動されるように設定します. 次のようにしてください. &prompt.user; echo "/usr/X11R6/bin/startxfce" > ~/.xinitrc 次に X が起動する時 XFCE のデスクトップが立ち上がります. 上と同様に, xdm のようなディスプレイマネージャを使っている場合には GNOME のセクションに書いてあるのと同じように .xsession ファイルを作り, /usr/X11R6/bin/startxfce を起動するようにします. もしくは, kdm のセクションにあるようにディスプレイマネージャから XFCE を選ぶことができるように設定します.