<!--
     The FreeBSD Documentation Project
     The FreeBSD Japanese Documentation Project

     Original revision: 1.207
     $FreeBSD$
-->

<chapter id="x11">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Ken</firstname>
	<surname>Tom</surname>
	<contrib>X.Org X11 サーバ対応: </contrib>
      </author>
      <author>
	<firstname>Marc</firstname>
	<surname>Fonvieille</surname>
      </author>
    </authorgroup>
  </chapterinfo>

  <title>X Window System</title>

  <sect1 id="x11-synopsis">
    <title>この章では</title>

    <para>FreeBSD
      では、ユーザに強力なグラフィカルインタフェースを提供するために
      X11 を採用しています。
      X11 は、
      <application>&xorg;</application>
      (他のソフトウェアパッケージについてはここでは述べません) に実装された、
      フリーで利用できる X Window System です。
      &os; におけるデフォルトかつ公式の X11 サーバは
      X.Org Foundation が開発している
      <application>&xorg;</application> です。
      &os; に似たライセンスに従って配布されています。
      &os; 用の商用 X サーバも入手できます。</para>

    <para>X11 がサポートするビデオハードウェアについての情報は、
      <ulink url="http://www.x.org/">&xorg;</ulink>
      のウェブサイトをご覧ください。</para>

    <para>この章を読めば以下のことがわかります。</para>

    <itemizedlist>
      <listitem>
	<para>X Window System のさまざまなコンポーネントと、
	  それらが互いにどのように連携しているか。</para>
      </listitem>

      <listitem>
	<para>X11 のインストールおよび設定方法</para>
      </listitem>

      <listitem>
	<para>さまざまなウィンドウマネージャのインストール方法</para>
      </listitem>

      <listitem>
	<para>X11 での &truetype; フォントの使い方</para>
      </listitem>

      <listitem>
	<para>GUI ログイン (<application>XDM</application>)
	  の設定方法</para>
      </listitem>
    </itemizedlist>

    <para>この章を読み始める前に以下のことを理解しておく必要があります。</para>

    <itemizedlist>
      <listitem>
	<para>サードパーティ製ソフトウェアのインストール方法
	  (<xref linkend="ports">)</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="x-understanding">
    <title>X を理解する</title>
    <para>初めて X を使う場合、&microsoft.windows; や &macos; といった他の
      GUI 環境に慣れている人は多少ショックを受けるでしょう。</para>

    <para>さまざまな X のコンポーネントについての詳細や、
      それらがどのようにやり取りするかについては理解する必要はありませんが、
      基本的なことをいくつか知っていると
      X を使う際に強力な武器になるでしょう。</para>

    <sect2>
      <title>なぜ X?</title>

      <para>X は、&unix;
	用に書かれた最初のウィンドウシステムではありませんが、
	それらの中では最も広まっているものです。
	X のオリジナルの開発チームは
	X を書く前に別のウィンドウシステムを開発していました。
	そのシステムの名前は <quote>W</quote>
	(<quote>Window</quote> の W) です。
	X は単にローマ字でその次の文字だというだけなのです。</para>

      <para>X は <quote>X</quote>, <quote>X Window System</quote>,
	<quote>X11</quote> などといった多くの用語で呼ばれます。
	X11 を <quote>X Windows</quote>
	と呼ぶと気を悪くする人もいるでしょう。
	これについてもう少し見識を深めるには
	&man.X.7; をご覧ください。</para>
    </sect2>

    <sect2>
      <title>X のクライアント/サーバモデル</title>

      <para>X は最初からネットワークを意識してデザインされており、
	<quote>クライアント - サーバ</quote> モデルを採用しています。</para>

	<para>X では、<quote>X サーバ</quote> はキーボードやモニタ、
	マウスが接続されたコンピュータ上で動きます。
	このサーバはディスプレイの表示を管理したり、キーボード、
	マウスからの入力を処理したり、他の入出力装置
	(すなわち、入力装置として <quote>タブレット</quote> を利用できますし、
	出力装置としてビデオプロジェクタを利用することもできます)
	を取り扱います。
	各 X アプリケーション (<application>XTerm</application> や
	<application>&netscape;</application> など) は
	<quote>クライアント</quote> になります。
	クライアントは <quote>この座標にウィンドウを描いてください</quote>
	といったメッセージをサーバへ送り、サーバは
	<quote>ユーザが OK ボタンを押しました</quote>
	といったメッセージを送り返します。</para>

      <para>家庭や小さなオフィスのような環境では、X サーバと
	X クライアントは同じコンピュータ上で動くことになるでしょう。
	しかし、X サーバを非力なデスクトップコンピュータで動かし、
	X アプリケーション (クライアント) は例えばオフィス全体を捌くような
	高機能で高価なマシンで動かすことも可能なのです。この場合、
	X のクライアントとサーバの通信はネットワーク越しに行なわれます。</para>

      <para>これは、ある人々を混乱させることがあります。
	X での用語は彼らが想定するものとは正反対だからです。
	彼らは <quote>X サーバ</quote> は地下にある大きなパワフルなマシンであり、
	<quote>X クライアント</quote> が自分たちのデスク上にあると想像するのです。</para>

      <para>X サーバとはモニタとキーボードがついているマシンのことであり、
	X クライアントとはウィンドウを表示するプログラムだということを覚えておいてください。</para>

      <para>X のプロトコルには、クライアントとサーバのマシンが同じ OS
	で動いていなければならないといったことを強制するものはなにもありませんし、
	同じ機種で動いている必要もありません。
	X サーバを &microsoft.windows; や Apple の &macos;
	で動かすことも可能ですし、
	そのようなソフトウェアもフリーのものから商用のものまでいろいろとあります。</para>
    </sect2>

    <sect2>
      <title>X ウィンドウマネージャ</title>

      <para>X のデザイン哲学は &unix; のそれに非常によく似ており、
	<quote>ツールであってポリシーではない</quote> のです。
	つまり、X
	はあるタスクがどのように達成されるべきかを示すものではありません。
	その代わり、ユーザにはツールが与えられ、
	それらをどうするかはユーザに委ねられているのです。</para>

      <para>この哲学は、X
	ではスクリーン上でウィンドウがどのように見えるべきか、
	マウスでそれらをどうやって動かすか、ウィンドウ間を移動するのに
	どういうキーストロークを使うべきか
	(例えば &microsoft.windows; における
	<keycombo action="simul">
	  <keycap>Alt</keycap>
	  <keycap>Tab</keycap>
	</keycombo>)、
	各ウィンドウのタイトルバーはどのように見えるべきか、
	それらはクローズボタンを持つべきかどうか、
	といったことを示すものではないというところまで拡大して解釈できます。</para>

      <para>その代わりに、X
	ではそういったことを <quote>ウィンドウマネージャ</quote>
	と呼ばれるアプリケーションに任せるのです。
	X 用のウィンドウマネージャは以下のようにたくさんあります。
	<application>AfterStep</application>,
	<application>Blackbox</application>,
	<application>ctwm</application>,
	<application>Enlightenment</application>,
	<application>fvwm</application>,
	<application>Sawfish</application>,
	<application>twm</application>,
	<application>Window Maker</application>
	などなど。
	これらのウィンドウマネージャの見た目や使い勝手はそれぞれ異なっています。
	<quote>バーチャルデスクトップ</quote>
	をサポートしているものもありますし、
	デスクトップを操作するキーストロークをカスタマイズできたり、
	<quote>スタート</quote>
	ボタンやそれに類するものを持っているものもあります。
	<quote>テーマ</quote> に対応しており、
	新しいテーマを適用して見た目や使い勝手を完全に変えられるものもあります。
	これらの、およびその他多くのウィンドウマネージャは
	Ports Collection の <filename>x11-wm</filename>
	というカテゴリからインストールできます。</para>

      <para>さらに、<application>KDE</application> や
	<application>GNOME</application> デスクトップ環境には、
	それぞれのデスクトップに統合された独自のウィンドウマネージャがあります。</para>

      <para>それぞれのウィンドウマネージャはまた異なる設定機構を備えており、
	手で設定ファイルを編集しなければならないものや、
	設定作業のほとんどを GUI ツールで行うことができるものもあります。
	少なくとも 1 つ (<application>Sawfish</application>) は
	Lisp 言語の変種で書かれた設定ファイルを持っています。</para>

      <note>
	<title>フォーカスポリシー</title>

	<para>ウィンドウマネージャのもう一つの機能はマウスの
	  <quote>フォーカスポリシー</quote> に関するものです。
	  すべてのウィンドウシステムは、ウィンドウを選択しキーストロークを
	  受け付けるようにするための方法が必要です。
	  そして、どのウィンドウがアクティブなのかを示す必要もあります。</para>

	<para>よく知られているフォーカスポリシーは
	  <quote>click-to-focus</quote> と呼ばれるもので、
	  このモデルは &microsoft.windows; で利用されており、
	  あるウィンドウ内でマウスをクリックすればそのウィンドウがアクティブになる、
	  というものです。</para>

	<para>X は特定のフォーカスポリシーを採用していません。
	  代わりにウィンドウマネージャがそれをコントロールします。
	  それぞれのウィンドウマネージャが、
	  それぞれのフォーカスポリシーをサポートしています。
	  すべてのものは click-to-focus をサポートしていますし、
	  多くのものは他の方法もサポートしています。</para>

	<para>最もポピュラーなフォーカスポリシーは次のものでしょう</para>

	<variablelist>
	  <varlistentry>
	    <term>focus-follows-mouse</term>

	    <listitem>
	      <para>マウスポインタの下にいるウィンドウがフォーカスされるというものです。
		ウィンドウは最前面にある必要はありません。
		フォーカスを変えるには他のウィンドウにマウスポインタを動かすだけです。
		クリックする必要はありません。</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>sloppy-focus</term>

	    <listitem>
	      <para>これは focus-follows-mouse を少し拡張したものです。
		focus-follows-mouse では、
		マウスがルートウィンドウ (背景) に移動した時には、
		フォーカスされているウィンドウがなくなり、
		キーストロークは単に破棄されます。
		sloppy-focus であれば、
		ポインタが別のウィンドウに移った時のみフォーカスが変わり、
		現在のウィンドウから出ただけでは変わりません。</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>click-to-focus</term>

	    <listitem>
	      <para>マウスクリックによりアクティブなウィンドウが選択されます。
		ウィンドウは <quote>前面に持ち上げられ</quote>、
		他のすべてのウィンドウの前にきます。
		ポインタが別のウィンドウ上に移動した時でも、
		すべてのキーストロークがこのウィンドウに届きます。</para>
	    </listitem>
	  </varlistentry>
	</variablelist>

	<para>多くのウィンドウマネージャはこういったものに加え、
	  その他のポリシーにも対応しています。
	  ウィンドウマネージャそのもののドキュメントもよく読んでください。</para>
      </note>
    </sect2>

    <sect2>
      <title>ウィジェット</title>

      <para>X のツールを提供してもポリシーは提供しないというアプローチは、
	各アプリケーションでスクリーンに現われるウィジェットにも適用されます。</para>

      <para><quote>ウィジェット</quote> はクリック可能であったり、
	他の方法で操作可能なすべてのユーザインタフェース用アイテムを指す用語です。
	ボタンやチェックボックス、ラジオボタン、アイコン、リスト、などがそうです。
	&microsoft.windows; はこれらを <quote>コントロール</quote> と呼んでいます。</para>

      <para>&microsoft.windows; や Apple の &macos;
	はともに非常に厳密なポリシーをウィジェットに課しています。
	アプリケーション開発者は共通のルックアンドフィールに
	確実に従うことを想定されているわけです。
	X では、特定のグラフィカルなスタイルやウィジェットのセットを
	強制することが重要とは考えてられていませんでした。</para>

      <para>したがって、X
	アプリケーションに共通の見た目や使い勝手を期待してはいけません。
	MIT のオリジナルの Athena ウィジェットや
	<application>&motif;</application> (&microsoft.windows;
	のウィジェットセットはこれを基にしており、
	斜度のついた縁と三方に灰色の陰影がついています)、
	<application>OpenLook</application> をはじめとして
	有名なウィジェットセットやその亜種が何種類もあります。</para>

      <para>比較的新しい X アプリケーションのほとんどが、
	<application>KDE</application> で使われている Qt や
	<application>GNOME</application> プロジェクトで使われている GTK+
	のどちらかのウィジェットセットを使っています。
	これらのウィジェットセットはモダンな見た目を持っています。
	この点で言えば、&unix; のルックアンドフィールは収斂されてきており、
	初心者がより簡単に使えるようになってきています。</para>
    </sect2>
  </sect1>

  <sect1 id="x-install">
    <title>X11 のインストール</title>

    <para>&os のデフォルトの X11 は、<application>&xorg;</application>
      です。
      <application>&xorg;</application> は  X.Org Foundation
      がリリースしている X Window System のオープンソースな実装です。
      <application>&xorg;</application> は
      <application>&xfree86&nbsp;4.4RC2</application>
      と X11R6.6 のコードを元にしています。
      現在 &os; Ports Collection で利用可能な
      <application>&xorg;</application> のバージョンは
      &xorg.version; です。</para>

    <para>Ports Collection から <application>&xorg;</application>
      をビルドしインストールするには、以下のように入力します。</para>

    <screen>&prompt.root; <userinput>cd /usr/ports/x11/xorg</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

    <note>
      <para><application>&xorg;</application> をすべてビルドするには、
	少なくとも 4&nbsp;GB の空き容量が必要です。</para>
    </note>

    <para>package から直接 X11 をインストールすることもできます。
      &man.pkg.add.1; ツールで扱われるバイナリパッケージが
      X11 についても提供されています。
      &man.pkg.add.1; のリモート取得機能を利用する時は、
      package のバージョンは外してください。
      &man.pkg.add.1;
      は自動的にそのアプリケーションの最新版を取得します。</para>

    <para>ですから、<application>&xorg;</application>
      の package を取得してインストールするには、
      次のように入力します。</para>

    <screen>&prompt.root; <userinput>pkg_add -r xorg</userinput></screen>

    <note>
      <para>上記の例では、サーバ、クライアント、フォントなどを含んだ
	X11 ディストリビューション全体をインストールします。
	分割された X11 のパッケージや ports も利用できます。</para>

    <para>最小の構成で X11 をインストールをするには、
      <filename role="package">x11/xorg-minimal</filename>
      をインストールしてください。</para>
    </note>

    <para>この章の残りでは、X11 をどのように設定すればよいか、
      また生産性の高いデスクトップ環境をどのように設定するかについて解説します。</para>
  </sect1>

  <sect1 id="x-config">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Christopher</firstname>
	  <surname>Shumway</surname>
	  <contrib>寄稿: </contrib>
	  <!-- July 2001 -->
	</author>
      </authorgroup>
    </sect1info>
    <title>X11 の設定</title>

    <indexterm><primary>&xorg;</primary></indexterm>
    <indexterm><primary>X11</primary></indexterm>

    <sect2>
      <title>はじめに</title>

      <para>X11 の設定を始める前に、
	次の情報が必要となります。</para>

      <itemizedlist>
	<listitem><para>モニタの仕様</para></listitem>
	<listitem><para>ビデオアダプタのチップセット</para></listitem>
	<listitem><para>ビデオアダプタのメモリ</para></listitem>
      </itemizedlist>

      <indexterm><primary>水平走査周波数</primary></indexterm>
      <indexterm><primary>垂直同期周波数</primary></indexterm>

      <para>モニタの仕様は、X11
	がどの解像度とリフレッシュレートで動作するかを決定するために用いられます。
	こういった仕様は、通常モニタに付いてくるドキュメントや、
	製造元のウェブサイトから取得できます。
	必要なものは、水平走査周波数と垂直同期周波数の
	2 つの数値範囲です。</para>

      <para>ビデオアダプタのチップセットは X11
	がグラフィックハードウェアとやり取りするために
	どのドライバモジュールを使うかを定義します。
	ほとんどのチップセットが自動認識されますが、
	正常に認識されない時のために知っておくとよいでしょう。</para>

      <para>ビデオメモリは、
	グラフィックアダプタがどの解像度とどの色数で動くことができるかを決めます。
	これは、ユーザが自分のシステムにおける制限を理解するために知っておくことが重要です。</para>
    </sect2>

    <sect2>
      <title>X11 の設定</title>

      <para><application>&xorg;</application> は、
	バージョン 7.3 から設定ファイルを作成することなく</para>

      <screen>&prompt.user; <userinput>startx</userinput></screen>

      <para>と入力するだけで起動するようになりました。</para>

      <para>バージョン 7.4 から、<application>&xorg;</application> 
	は <acronym>HAL</acronym>
	を用いてキーボードやマウスを自動認識するようになりました。
	<filename role="package">x11/xorg</filename> の依存として、
	<filename role="package">sysutils/hal</filename> および
	<filename role="package">devel/dbus</filename> port
	がインストールされますが、以下のようなエントリを
	<filename>/etc/rc.conf</filename> ファイルに追加し、
	有効にする必要があります。</para>

      <programlisting>hald_enable="YES"
dbus_enable="YES"</programlisting>

      <para>これらのサービスは、
	<application>&xorg;</application> の設定が行われる前に (手動や再起動によって)
	起動している必要があります。</para>

      <para>ある種のハードウェアは、自動設定で動作しなかったり、
	期待したような設定が行われないかもしれません。
	そのような場合には、手動で設定する必要があります。</para>

      <note>
	<para><application>GNOME</application>,
	  <application>KDE</application> および
	  <application>Xfce</application> などのデスクトップ環境では、
	  解像度などのスクリーンパラメータを簡単に設定できるツールがあります。
	  したがって、デフォルトの設定が満足するようなものではない場合でも、
	  これらのデスクトップ環境をインストールすることを考えているのであれば、
	  デスクトップ環境をインストールして、
	  スクリーン設定ツールを利用してください。</para>
      </note>

      <para>X11 の設定は複数の段階を経て行います。
	まずは初期設定ファイルを作りましょう。
	スーパーユーザになって次のようにしてください。</para>

      <screen>&prompt.root; <userinput>Xorg -configure</userinput></screen>

      <para>これにより、<filename>/root</filename>
	ディレクトリに <filename>xorg.conf.new</filename>
	という X11 の設定ファイルの雛形が生成されます
	(&man.su.1; か直接ログインのどちらを利用したかが、受け継がれる
	<envar>$HOME</envar> 環境変数に影響します)。
	X11 プログラムはシステム上のグラフィックハードウェアを検出し、
	そのハードウェア用の適切なドライバを読み込む設定ファイルを作ります。</para>

      <para>次のステップは、作成した設定ファイルで
	<application>&xorg;</application>
	がそのグラフィックハードウェアで動くことを確認することです。
	バージョン 7.3 以前の <application>&xorg;</application> では、
	以下を実行してください。</para>

      <screen>&prompt.root; <userinput>Xorg -config xorg.conf.new</userinput></screen>

      <para><application>&xorg;</application> 7.4 以降では、
	このコマンドを実行すると黒い画面が表示され、
	X11 が正常に動作しているかどうかの判断ができません。
	古いバージョンと同じ実行結果を得るには、
	<option>retro</option> オプションを使ってください。</para>

	<screen>&prompt.root; <userinput>Xorg -config xorg.conf.new -retro</userinput></screen>

      <para>黒とグレーのグリッドと
	X のマウスポインタが現われればその設定は成功です。
	テストを終了するには、コマンドを実行した仮想コンソールに
	<keycombo action="simul">
	  <keycap>Ctrl</keycap>
	  <keycap>Alt</keycap>
          <keycap>F<replaceable>n</replaceable></keycap>
        </keycombo> (1 番目の仮想コンソールへは <keycap>F1</keycap>)
	と入力して切り替え、
	<keycombo action="simul">
	  <keycap>Ctrl</keycap>
	  <keycap>C</keycap>
	</keycombo> と入力してください。</para>

      <note>
	<para>バージョン 7.3 以前の <application>&xorg;</application> では、
	  <keycombo action="simul">
	    <keycap>Ctrl</keycap>
	    <keycap>Alt</keycap>
	    <keycap>Backspace</keycap>
	  </keycombo> キーの組み合わせで
	  <application>&xorg;</application> を終了できます。
	  バージョン 7.4 以降でこのキー操作を利用する場合には、
	  X 端末エミュレータで以下のコマンドを入力してください。</para>

	<screen>&prompt.user; <userinput>setxkbmap -option terminate:ctrl_alt_bksp</userinput></screen>

	<para>または、<application>hald</application> 用のキーボード設定ファイル
	  <filename>x11-input.fdi</filename> を作成して、<filename
	  class="directory">/usr/local/etc/hal/fdi/policy</filename>
	  ディレクトリに保存してください。
	  このファイルには以下を含める必要があります。</para>

	<programlisting>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;deviceinfo version="0.2"&gt;
  &lt;device&gt;
    &lt;match key="info.capabilities" contains="input.keyboard"&gt;
	  &lt;merge key="input.x11_options.XkbOptions" type="string"&gt;terminate:ctrl_alt_bksp&lt;/merge&gt;
    &lt;/match&gt;
  &lt;/device&gt;
&lt;/deviceinfo&gt;</programlisting>

	<para><application>hald</application>
	  がこのファイルを読み込むように、
	  コンピュータを再起動してください。</para>

	<para><filename>xorg.conf.new</filename> の
	  <literal>ServerLayout</literal> もしくは <literal>ServerFlags</literal>
	  セクションに、以下の行を追加する必要もあるでしょう。</para>

	<programlisting>Option	"DontZap"	"off"</programlisting>
      </note>

	<para>もしマウスが動作しなければ、
	  先へ進む前にマウスの設定を行う必要があります。
	  &os; インストールの章の <xref linkend="mouse"> を参照してください。
	  さらに、
	  バージョン 7.4 以降ではデバイスの自動認識のため、
	  <filename>xorg.conf</filename> の
	  <literal>InputDevice</literal> セクションは無視されます。
	  古い設定の記述を利用するには、以下の行を
	  ファイルの <literal>ServerLayout</literal> もしくは、
	  <literal>ServerFlags</literal> セクションに追加してください。</para>

	<programlisting>Option "AutoAddDevices" "false"</programlisting>

	<para>これで、以前のバージョンのように、入力デバイスを
	  (キーボードレイアウトの変更のように)
	  必要なオプションを用いて設定できるようになります。</para>

      <note>
	<para>すでに説明したように、
	  バージョン 7.4 以降では、デフォルトで
	  <application>hald</application>
	  デーモンがキーボードを自動的に認識します。
	  キーボードレイアウトやモデルを正しく認識しない場合でも、
	  <application>GNOME</application>,
	  <application>KDE</application> もしくは
	  <application>Xfce</application>
	  のようなデスクトップ環境が、
	  キーボードの設定ツールを提供している可能性があります。
	  しかしながら、
	  &man.setxkbmap.1; ユーティリティや
	  <application>hald</application> の設定を利用することで、
	  キーボードのプロパティを直接設定できます。</para>
	  
	<para>たとえば、フランス語のレイアウトの PC 102
	  キーボードを使いたい場合には、
	  <application>hald</application> のキーボード設定ファイル
	  <filename>x11-input.fdi</filename> を作成し、<filename
	  class="directory">/usr/local/etc/hal/fdi/policy</filename>
	  ディレクトリに保存してください。
	  このファイルは以下を含んでいる必要があります。</para>

	<programlisting>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;deviceinfo version="0.2"&gt;
  &lt;device&gt;
    &lt;match key="info.capabilities" contains="input.keyboard"&gt;
	  &lt;merge key="input.x11_options.XkbModel" type="string"&gt;pc102&lt;/merge&gt;
	  &lt;merge key="input.x11_options.XkbLayout" type="string"&gt;fr&lt;/merge&gt;
    &lt;/match&gt;
  &lt;/device&gt;
&lt;/deviceinfo&gt;</programlisting>

	<para>このファイルがすでに存在する場合には、
	  キーボードの設定に関する部分をただ単にコピーし、
	  ファイルに追加してください。</para>

	<para><application>hald</application>
	  がこのファイルを読み込むように、
	  コンピュータを再起動してください。</para>

	<para>X 端末やスクリプトから以下のコマンドラインを実行することでも、
	  同様に設定できます。</para>

	<screen>&prompt.user; <userinput>setxkbmap -model pc102 -layout fr</userinput></screen>

	<para>
	  <filename>/usr/local/share/X11/xkb/rules/base.lst</filename>
	  ファイルは、利用可能なキーボード、レイアウトおよびオプションの一覧です。</para>
      </note>

      <indexterm><primary>X11 のチューニング</primary></indexterm>

      <para>次は <filename>xorg.conf.new</filename>
	を好みに合うように調整します。
	&man.emacs.1; や &man.ee.1;
	のようなテキストエディタでファイルを開いてください。
	まずモニタの周波数を加えます。
	これらは水平と垂直の同期周波数と表現されるのが普通です。
	これらの値は <filename>xorg.conf.new</filename> の
	<literal>"Monitor"</literal>
	セクションに次のように書き加えます。</para>

      <programlisting>
	Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync    30-107
        VertRefresh  48-120
	EndSection
      </programlisting>

      <para><literal>HorizSync</literal> と
	<literal>VertRefresh</literal>
	というキーワードが設定ファイル中にない場合があります。
	その場合には、
	<literal>HorizSync</literal>
	キーワードの後には水平走査周波数の、
	<literal>VertRefresh</literal>
	キーワードの後には垂直同期周波数の正しい値を加えてください。
	上の例では対象となるモニタの周波数が書かれています。</para>

      <para>X はモニタが対応していれば DPMS (Energy Star)
	機能を使うことができます。
	&man.xset.1; プログラムでタイムアウトをコントロールしたり、
	強制的にスタンバイ、サスペンドや電源オフにすることができます。
	モニタの DPMS 機能を有効にしたい場合は、
	<literal>"Monitor"</literal>
	セクションに次の行を加えてください。</para>

      <programlisting>Option       "DPMS"</programlisting>

      <indexterm>
	<primary><filename>xorg.conf</filename></primary>
      </indexterm>

      <para><filename>xorg.conf.new</filename>
	はエディタで開いたままにしておき、
	デフォルトの解像度と色数を好みで選びましょう。
	<literal>"Screen"</literal>
	セクションに以下のように書きます。</para>

      <programlisting>Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection</programlisting>

      <para><literal>DefaultDepth</literal> というキーワードは
	実行時のデフォルトの色数について記述するためのものです。
	&man.Xorg.1; のコマンドラインスイッチ <option>-depth</option>
	が使用された場合はそちらが優先されます。
	<literal>Modes</literal> というキーワードは、
	与えられた色数におけるデフォルトの解像度を記述しておくためのものです。
	ターゲットのシステムのグラフィックハードウェアによって定義されている、
	VESA スタンダードモードのみがサポートされていることに注意してください。
	上の例ではデフォルトの色数はピクセルあたり 24 ビットであり、
	この色数での解像度は 1024 ピクセル× 768 ピクセルです。</para>

      <para>最後に、設定ファイルを保存し、
	上の例にあるようにテストしてみてください。</para>

      <note>
	<para>トラブルシューティングの過程で手助けするツールのひとつに
	  X11 のログファイルがあります。これには、
	  X11 サーバが検知したデバイスそれぞれについての情報があります。
	  <application>&xorg;</application> のログファイル名は
	  <filename>/var/log/Xorg.0.log</filename>
	  という形式です。実際のログファイル名は
	  <filename>Xorg.0.log</filename> から
	  <filename>Xorg.8.log</filename> のように変わります。</para>
      </note>

      <para>すべてうまくいったなら、設定ファイルを &man.Xorg.1;
	が見つけることができる共通の場所に置きます。
	これは、通常は <filename>/etc/X11/xorg.conf</filename> や
	<filename>/usr/local/etc/X11/xorg.conf</filename> です。</para>

      <screen>&prompt.root; <userinput>cp xorg.conf.new /etc/X11/xorg.conf</userinput></screen>

      <para>これで X11 の設定は完了です。
	&man.startx.1; ユーティリティで
	<application>&xorg;</application> を起動できます。また、
	&man.xdm.1; を使って X11 サーバを起動することもできます。</para>
    </sect2>

    <sect2>
      <title>高度な設定</title>

      <sect3>
	<title>&intel; i810 グラフィックチップセットの設定</title>

	<indexterm><primary>Intel i810 graphic chipset</primary></indexterm>

	<para>&intel; i810 統合チップセットを設定するには、
	  X11 にカードを制御させるために
	  AGP プログラミングインタフェースである
	  <devicename>agpgart</devicename> が必要になります。
	  詳しくは、&man.agp.4;
	  ドライバのマニュアルページをご覧ください。</para>

	<para>このドライバを用いることで、
	  他のグラフィックカードと同様に設定を行うことができるようになります。
	  カーネルに &man.agp.4; ドライバが組み込まれていないシステムでは、
	  このモジュールを &man.kldload.8;
	  を使って読み込もうとしても動作しないことに注意してください。
	  このドライバは、
	  起動時にカーネル内に存在するようにカーネル内部に組み込むか、
	  <filename>/boot/loader.conf</filename>
	  を使わなければなりません。</para>
      </sect3>

      <sect3>
	<title>ワイドスクリーンフラットパネルの追加</title>

	<indexterm><primary>ワイドスクリーンフラットパネルコンフィグレーション</primary></indexterm>

	<para>この章では、設定に関する幾分高度な知識を必要とします。
	  これまでに述べた標準ツールを使って設定に失敗する場合は、
	  ログファイルを参照してください。
	  ログファイルには、
	  設定のために有用な情報が十分含まれています。
	  テキストエディタを使用する必要があるでしょう。</para>

	<para>現在のワイドスクリーン
	  (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ など) は、
	  16:10 や 10:9 形式、または
	  (問題を含む可能性のある) 他のアスペクト比に対応しています。
	  以下は、16:10 アスペクト比のスクリーン解像度の例です。</para>

	<itemizedlist>
	  <listitem><para>2560x1600</para></listitem>
	  <listitem><para>1920x1200</para></listitem>
	  <listitem><para>1680x1050</para></listitem>
	  <listitem><para>1440x900</para></listitem>
	  <listitem><para>1280x800</para></listitem>
	</itemizedlist>

	<para>これらの解像度のひとつを以下のように
	  <literal>"Screen" セクション</literal> の
	  <literal>Mode</literal> に追加してください。</para>

	<programlisting>Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth 24
SubSection "Display"
	Viewport  0 0
	Depth     24
	Modes     "1680x1050"
EndSubSection
EndSection</programlisting>

	<para><application>&xorg;</application> は、I2C/DDC
	  を通してワイドスクリーンの解像度に関する情報を取得できるので、
	  モニタの周波数や解像度の範囲を把握しています。</para>

	<para>もし、これらの <literal>ModeLines</literal>
	  についての情報がドライバに存在しないのであれば、
	  <application>&xorg;</application>
	  にヒントを与えなけれならないでしょう。
	  <literal>ModeLine</literal>
	  を手動で設定するのに十分な情報を
	  <filename>/var/log/Xorg.0.log</filename>
	  から得ることができます。
	  以下のような情報を探してください。</para>

	<programlisting>(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
(II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz</programlisting>

	<para>これは EDID と呼ばれる情報です。
	  この情報を用いて <literal>ModeLine</literal>
	  を作成するには、
	  正しい順番に数字を入力するだけです。 </para>

	<programlisting> ModeLine &lt;name&gt; &lt;clock&gt; &lt;4 horiz. timings&gt; &lt;4 vert. timings&gt;</programlisting>

	<para>この例では "Monitor" セクションの ModeLine は以下のようになります。</para>

	<programlisting>Section "Monitor"
Identifier      "Monitor1"
VendorName      "Bigname"
ModelName       "BestModel" 
ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089 
Option          "DPMS"
EndSection</programlisting>

	<para>以上の簡単な編集作業が終わったら、
	  新しいワイドスクリーンモニタ上で X が動作するでしょう。</para>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="x-fonts">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Murray</firstname>
	  <surname>Stokely</surname>
	  <contrib>寄稿: </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>X11 でのフォントの使用</title>

    <sect2 id="type1">
      <title>Type1 フォント</title>
      <para>X11 に付いてくるデフォルトのフォントは、
	通常のデスクトップパブリッシングアプリケーションにとっては理想的とは言えない程度のものです。
	文字を大きくするとジャギーになりプロフェッショナルとは言えないようなものになりますし、
	<application>&netscape;</application>
	での小さなフォントは頭が悪そうに見えます。
	しかし、世の中には質の高い Type1 (&postscript;)
	フォントがいくつかあり、
	X11 ではそれらを簡単に利用することができます。
	例えば、URW フォントコレクション
	(<filename role="package">x11-fonts/urwfonts</filename>)
	には高品質の Type1 フォント
	(<trademark class="registered">Times Roman</trademark>,
	<trademark class="registered">Helvetica</trademark>,
	<trademark class="registered">Palatino</trademark> など)
	が含まれています。freefont コレクション
	(<filename role="package">x11-fonts/freefonts</filename>)
	にはもっとたくさんのフォントが含まれていますが、
	それらは <application>Gimp</application>
	のようなグラフィックソフトウェアで使用するためのものであり、
	スクリーンフォントとしては十分ではありません。さらに、X11
	は簡単に &truetype; フォントを使うように設定することも可能です。
	詳しくは、&man.X.7; のマニュアルページか
	<link linkend="truetype">&truetype; フォントの節</link>
	を参照してください。</para>

      <para>上記の Type1 フォントコレクションを Ports Collection
	から入れる場合には次のコマンドを実行してください。</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/x11-fonts/urwfonts</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

      <para>freefont や他のコレクションでも同じようにします。
	X サーバがこれらのフォントを検出できるようにするには
	X サーバ設定ファイル (<filename>/etc/X11/xorg.conf</filename>)
	の適切な場所に次のような行を加えます。</para>

      <programlisting>FontPath "/usr/local/lib/X11/fonts/URW/"</programlisting>

      <para>別の方法としては、
	X のセッション中に次のようなコマンドラインを実行します。</para>

      <screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/URW</userinput>
&prompt.user; <userinput>xset fp rehash</userinput></screen>

      <para>これは動くのですが、X
	のセッションが終了すると消えてしまいます。
	消えないようにするには X の起動時に読み込まれるファイル
	(通常の <command>startx</command> セッションの場合は
	<filename>~/.xinitrc</filename>, <application>XDM</application>
	のようなグラフィカルなログインマネージャを通してログインする時は
	<filename>~/.xsession</filename>) に加えておきます。
	三番目の方法は新しい
	<filename>/usr/local/etc/fonts/local.conf</filename>
	ファイルを使うことです。
	これに関しては <link linkend="antialias">アンチエイリアス</link>
	節をご覧ください。</para>
    </sect2>

    <sect2 id="truetype">
      <title>&truetype; フォント</title>

      <indexterm><primary>TrueType フォント</primary></indexterm>
      <indexterm><primary>フォント</primary>
	<secondary>TrueType</secondary>
      </indexterm>

      <para><application>&xorg;</application> には、
	&truetype; フォントのレンダリング機能が組み込まれています。
	この機能を実現するために 2 つの異なるモジュールがあります。
	ここでは、freetype
	の方が他のフォントレンダリングバックエンドと整合性が高いので、
	このモジュールを使うことにします。
	freetype モジュールを使うためには
	<filename>/etc/X11/xorg.conf</filename> ファイルの
	<literal>"Module"</literal>
	セクションに以下の行を追加するだけです。</para>

      <programlisting>Load  "freetype"</programlisting>

      <para>さて、まずは &truetype; フォント用のディレクトリ
	(例えば <filename>/usr/local/lib/X11/fonts/TrueType</filename>)
	を作り、そこに &truetype; フォントをすべて放り込みましょう。
	&macintosh; の &truetype;
	フォントは、そのままでは使うことができませんので注意してください。
	X11 で使うには &unix;/&ms-dos;/&windows;
	用のフォーマットでなければなりません。
	ファイルを置いたら <application>ttmkfdir</application> を使って
	<filename>fonts.dir</filename> ファイルを作り、
	X のフォントレンダラが新しいファイルがイントールされたことを分かるようにしてください。
	<command>ttmkfdir</command> は FreeBSD Ports Collection の
	<filename role="package">x11-fonts/ttmkfdir</filename>
	からインストールできます。</para>

    <screen>&prompt.root; <userinput>cd /usr/local/lib/X11/fonts/TrueType</userinput>
&prompt.root; <userinput>ttmkfdir -o fonts.dir</userinput></screen>

      <para>次に &truetype;
	フォントのディレクトリをフォントパスに追加します。
	上の <link linkend="type1">Type1</link>
	フォントの場合と同じように、</para>

      <screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/TrueType</userinput>
&prompt.user; <userinput>xset fp rehash</userinput></screen>

      <para>とするか、もしくは <filename>xorg.conf</filename>
	ファイルに <literal>FontPath</literal> 行を追加します。</para>

      <para>これで終わりです。<application>&netscape;</application> や
	<application>Gimp</application>,
	<application>&staroffice;</application>
	といったすべての X アプリケーションから
	&truetype; フォントを使うことができます。
	(高解像度なディスプレイで見るウェブページ上のテキストみたいな)
	とても小さなフォントや
	(<application>&staroffice;</application> にあるような)
	非常に大きなフォントもかなり綺麗に見えるようになることでしょう。</para>
    </sect2>

    <sect2 id="antialias">
      <sect2info>
	<authorgroup>
	  <author>
	    <firstname>Joe Marcus</firstname>
	    <surname>Clarke</surname>
	    <contrib>更新 : </contrib>
	    <!-- May 2003 -->
	  </author>
	</authorgroup>
      </sect2info>

      <title>フォントのアンチエイリアス</title>

      <indexterm><primary>フォントのアンチエイリアス</primary></indexterm>
      <indexterm><primary>フォント</primary>
	<secondary>アンチエイリアス</secondary></indexterm>

      <para><filename>/usr/local/lib/X11/fonts/</filename> と
	<filename>~/.fonts/</filename> にあるすべての X11 のフォントが、Xft
	に対応しているアプリケーションで自動的にアンチエイリアス表示できるようになりました。
	<application>KDE</application>, <application>GNOME</application> および
	<application>Firefox</application>
	のような最新のアプリケーションは、Xft に対応しています。</para>

      <para>どのフォントがアンチエイリアスされるかを制御するため、
	もしくはアンチエイリアスの特性を設定するために、
	<filename>/usr/local/etc/fonts/local.conf</filename>
	ファイルを作成 (すでに存在しているのなら編集) します。
	多くの Xft フォントシステムの高度な機能をこのファイルを使って調整できます。
	この節ではいくつか簡単なところだけを紹介します。
	詳しくは、&man.fonts-conf.5; をご覧ください。</para>

      <indexterm><primary>XML</primary></indexterm>

      <para>このファイルは XML 形式でなければなりません。
	大文字小文字の区別に注意を払い、
	すべてのタグが正しく閉じられているか確認してください。
	ファイルは一般的な XML ヘッダで始まり、DOCTYPE 定義と
	<literal>&lt;fontconfig&gt;</literal>
	タグがその後にきます。</para>

      <programlisting>
        &lt;?xml version="1.0"?&gt;
        &lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
        &lt;fontconfig&gt;
      </programlisting>

      <para>すでに説明したように、
	<filename>/usr/local/lib/X11/fonts/</filename> と
	<filename>~/.fonts/</filename> にあるすべてのフォントは
	Xft 対応のアプリケーションで利用できます。
	これら 2 つ以外に別のディレクトリを追加したいのなら、
	<filename>/usr/local/etc/fonts/local.conf</filename>
	に以下のような行を追加します。</para>

      <programlisting>&lt;dir&gt;/path/to/my/fonts&lt;/dir&gt;</programlisting>

      <para>新しいフォント、
	そして特に新しいフォントディレクトリを追加したら、
	以下のコマンドを実行してフォントキャッシュを再構築してください。</para>

      <screen>&prompt.root; <userinput>fc-cache -f</userinput></screen>

      <para>アンチエイリアスをかけることによって境界が少しぼやけ、
	そのためにとても小さなテキストはさらに読みやすくなり、
	大きなフォントでは <quote>ギザギザ</quote> が消えるのです。
	しかし、普通のテキストにかけた場合には目が疲れてしまうこともあります。
	14 ポイント以下のサイズのフォントについて、
	アンチエイリアスをかけないようにするには次の行を加えます。</para>

      <programlisting>        &lt;match target="font"&gt;
            &lt;test name="size" compare="less"&gt;
                &lt;double&gt;14&lt;/double&gt;
            &lt;/test&gt;
            &lt;edit name="antialias" mode="assign"&gt;
                &lt;bool&gt;false&lt;/bool&gt;
            &lt;/edit&gt;
        &lt;/match&gt;
        &lt;match target="font"&gt;
            &lt;test name="pixelsize" compare="less" qual="any"&gt;
                &lt;double&gt;14&lt;/double&gt;
            &lt;/test&gt;
            &lt;edit mode="assign" name="antialias"&gt;
                &lt;bool&gt;false&lt;/bool&gt;
            &lt;/edit&gt;
        &lt;/match&gt;</programlisting>

      <indexterm><primary>フォント</primary>
	<secondary>スペーシング</secondary></indexterm>

      <para>いくつかの等幅フォントは、
	アンチエイリアスをかけるとスペーシングがうまくいかなくなる場合があります。
	特に <application>KDE</application> でその傾向があるようです。
	解決策の一つとして、そういったフォントのスペーシングを
	100 に設定する方法があります。
	そうするためには次の行を加えてください。</para>

      <programlisting>        &lt;match target="pattern" name="family"&gt;
            &lt;test qual="any" name="family"&gt;
                &lt;string&gt;fixed&lt;/string&gt;
            &lt;/test&gt;
            &lt;edit name="family" mode="assign"&gt;
                &lt;string&gt;mono&lt;/string&gt;
            &lt;/edit&gt;
        &lt;/match&gt;
        &lt;match target="pattern" name="family"&gt;
            &lt;test qual="any" name="family"&gt;
                &lt;string&gt;console&lt;/string&gt;
            &lt;/test&gt;
            &lt;edit name="family" mode="assign"&gt;
                &lt;string&gt;mono&lt;/string&gt;
            &lt;/edit&gt;
        &lt;/match&gt;</programlisting>

      <para>(これは固定サイズのフォントに <literal>"mono"</literal>
	という一般的な別名をつけます) そして以下を追加します。</para>

      <programlisting>        &lt;match target="pattern" name="family"&gt;
            &lt;test qual="any" name="family"&gt;
                &lt;string&gt;mono&lt;/string&gt;
            &lt;/test&gt;
            &lt;edit name="spacing" mode="assign"&gt;
                &lt;int&gt;100&lt;/int&gt;
            &lt;/edit&gt;
        &lt;/match&gt;</programlisting>

      <para>Helvetica の様なある種のフォントは、
	アンチエイリアスすると問題が起こるでしょう。
	たいてい、フォントが縦に半分に切られて表示されます。
	最悪の場合、アプリケーションがクラッシュします。
	これを回避するには、以下を <filename>local.conf</filename>
	に追加します。</para>

      <programlisting>        &lt;match target="pattern" name="family"&gt;
            &lt;test qual="any" name="family"&gt;
                &lt;string&gt;Helvetica&lt;/string&gt;
            &lt;/test&gt;
            &lt;edit name="family" mode="assign"&gt;
                &lt;string&gt;sans-serif&lt;/string&gt;
            &lt;/edit&gt;
        &lt;/match&gt;</programlisting>

      <para><filename>local.conf</filename> の編集を終えたら、
	ファイルの末尾が <literal>&lt;/fontconfig&gt;</literal>
	タグで終わるようにしてください。
	これを行わなければ、変更は無視されるでしょう。</para>

      <para>最後に、ユーザは自分だけの設定を各自の
	<filename>.fonts.conf</filename> ファイルに追加できます。
	これを行うためには、それぞれのユーザが単に
	<filename>~/.fonts.conf</filename> を作成するだけです。
	このファイルも XML 形式でなければなりません。</para>

      <indexterm><primary>LCD スクリーン</primary></indexterm>
      <indexterm><primary>フォント</primary>
	<secondary>LCD スクリーン</secondary></indexterm>

      <para>最後に一つ。LCD
	スクリーンではサブピクセルサンプリングが必要な場合があります。
	これは、基本的には (水平方向に分かれている) 赤、緑、
	青の各コンポーネントを別々に扱うことによって水平方向の解像度を良くするというもので、
	劇的な結果が得られます。
	これを有効にするには <filename>local.conf</filename>
	ファイルに次の行を加えます。</para>

      <programlisting>
        &lt;match target="font"&gt;
            &lt;test qual="all" name="rgba"&gt;
                &lt;const&gt;unknown&lt;/const&gt;
            &lt;/test&gt;
            &lt;edit name="rgba" mode="assign"&gt;
                &lt;const&gt;rgb&lt;/const&gt;
            &lt;/edit&gt;
        &lt;/match&gt;
      </programlisting>

      <note>
	<para>ディスプレイの種類にもよりますが、
	  <literal>rgb</literal> ではなく
	  <literal>bgr</literal> や <literal>vrgb</literal>、もしくは
	  <literal>vbgr</literal> の場合もあるので、
	  試してみて最も良いものを使ってください。</para>
      </note>
    </sect2>
  </sect1>

  <sect1 id="x-xdm">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Seth</firstname>
	  <surname>Kingsley</surname>
	  <contrib>寄稿: </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>X ディスプレイマネージャ</title>
    <sect2>
      <title>概要</title>

      <indexterm><primary>X ディスプレイマネージャ</primary></indexterm>
      <para>X ディスプレイマネージャ (<application>XDM</application>)
	は X Window System のオプショナルな一部分であり、
	ログインセッションの管理に用います。
	最低限の機能を実装した <quote>X 端末</quote> やデスクトップ、
	大規模なネットワークディスプレイサーバといった場面ではこれが有用です。
	X Window System はネットワークとプロトコルから独立しているため、
	ネットワークで繋がれた
	X のクライアントとサーバを動かすための設定はかなり幅が広くなります。
	<application>XDM</application>
	はどのディスプレイサーバに接続するかを選択でき、
	ログイン名とパスワードの組み合わせなど認証情報を入力できるグラフィカルなインタフェースを提供しています。</para>

      <para><application>XDM</application> がユーザに &man.getty.8;
	(詳しくは <xref linkend="term-config"> をご覧ください)
	と同じ機能を提供することを考えてみてください。
	つまり、ディスプレイ上でシステムへのログインができ、
	ユーザの代わりにセッションマネージャ
	(通常は X のウィンドウマネージャ) を起動することができるのです。
	それから <application>XDM</application> は、
	ユーザが作業を終えてディスプレイからログアウトする合図を送ってきてプログラムが終了するのを待ちます。
	この時点で、<application>XDM</application>
	は次にログインするユーザのためにログイン画面や
	chooser 画面を表示できます。</para>
    </sect2>

    <sect2>
      <title>XDM の使用</title>

      <para><application>XDM</application> を使用するには、
	<filename role="package">x11/xdm</filename>
	port をインストールしてください
	(最近の <application>&xorg;</application> のバージョンでは、
	デフォルトでインストールされません)。
	<application>XDM</application> のデーモンプログラムは
	<filename>/usr/local/bin/xdm</filename> にあります。
	このプログラムは <username>root</username>
	になればいつでも起動することができ、
	ローカルマシン上のディスプレイの管理を始めます。
	マシンをブートする際、いつも <application>XDM</application>
	を起動したい場合には、<filename>/etc/ttys</filename>
	にそのためのエントリを加えておくのが簡単です。
	このファイルのフォーマットや使用方法についての詳細は
	<xref linkend="term-etcttys"> を参照してください。
	デフォルトの <filename>/etc/ttys</filename>
	ファイルには仮想端末上で <application>XDM</application>
	デーモンを起動するための行:</para>

      <screen>ttyv8	"/usr/local/bin/xdm -nodaemon"	xterm	off secure</screen>

      <para>があります。
	このエントリはデフォルトでは無効になっており、有効にするには
	5 番目のカラムを <literal>off</literal> から
	<literal>on</literal> にし、<xref linkend="term-hup">
	の指示に従って &man.init.8; を再起動します。
	最初のカラムはこのプログラムが管理する端末の名前で、この場合
	<literal>ttyv8</literal> になります。
	つまり、<application>XDM</application> は
	9 番目の仮想端末で起動されるということです。</para>
    </sect2>

    <sect2>
      <title>XDM の設定</title>

      <para><application>XDM</application> の設定用ディレクトリは
	<filename>/usr/local/lib/X11/xdm</filename> です。
	このディレクトリには <application>XDM</application>
	の振る舞いや見た目を変更するために用いられるいくつかのファイルがあります。
	だいたいは以下のような感じです。</para>

      <informaltable frame="none" pgwide="1">
	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>ファイル</entry>
	      <entry>説明</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry><filename>Xaccess</filename></entry>
	      <entry>クライアント認証のルールセット</entry>
	    </row>

	    <row>
	      <entry><filename>Xresources</filename></entry>
	      <entry>デフォルトの X リソース</entry>
	    </row>

	    <row>
	      <entry><filename>Xservers</filename></entry>
	      <entry>管理すべきリモートやローカルのディスプレイのリスト</entry>
	    </row>

	    <row>
	      <entry><filename>Xsession</filename></entry>
	      <entry>デフォルトのログイン時のセッションスクリプト</entry>
	    </row>

	    <row>
	      <entry><filename>Xsetup_</filename>*</entry>
	      <entry>ログインインタフェースの前にアプリケーションを起動するためのスクリプト</entry>
	    </row>

	    <row>
	      <entry><filename>xdm-config</filename></entry>
	      <entry>このマシンで動いているすべてのディスプレイのグローバルな設定</entry>
	    </row>

	    <row>
	      <entry><filename>xdm-errors</filename></entry>
	      <entry>サーバプログラムによって生成されるエラー</entry>
	    </row>

	    <row>
	      <entry><filename>xdm-pid</filename></entry>
	      <entry>現在動いている XDM のプロセス ID</entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>

      <para>このディレクトリにはまた、<application>XDM</application>
	の動作中にデスクトップをセットアップするために用いられるスクリプトやプログラムがいくつかあります。
	それぞれのファイルの目的を簡単に解説しましょう。
	正確な文法や使い方は &man.xdm.1; に記述されています。</para>

      <para>デフォルトの設定では、単純な四角のログインウィンドウがあり、
	そこにはマシンのホスト名が大きなフォントで表示され、
	<quote>Login:</quote> と <quote>Password:</quote>
	のプロンプトがその下に表示されています。
	<application>XDM</application>
	スクリーンの見ためや使い勝手を変えるにはここから始めるのがいいでしょう。</para>

      <sect3>
	<title>Xaccess</title>

	<para><application>XDM</application>
	  がコントロールするディスプレイに接続するためのプロトコルは
	  X Display Manager Connection Protocol (XDMCP) と呼ばれます。
	  このファイルにはリモートのマシンからの
	  XDMCP 接続をコントロールするためのルールセットが書かれます。
	  これは、<filename>xdm-config</filename>
	  を変更してリモートからのコネクションを待ち受けるようにしない限り無視されます。
	  デフォルトでは、どのクライアントからの接続も拒否します。</para>
      </sect3>

      <sect3>
	<title>Xresources</title>
	<para>これはディスプレイの chooser とログインスクリーン用の
	  application-defaults ファイルです。
	  このファイルでログインプログラムの見た目を変更することができます。
	  フォーマットは X11 のドキュメントで記述されている
	  app-defaults ファイルのものと同じです。</para>
      </sect3>

      <sect3>
	<title>Xservers</title>
	<para>これは、chooser
	  が選択肢として提供するリモートのディスプレイの一覧です。</para>
      </sect3>

      <sect3>
	<title>Xsession</title>
	<para><application>XDM</application>
	  でログインした後に実行されるデフォルトのセッションスクリプトです。
	  通常、各ユーザは <filename>~/.xsession</filename>
	  というカスタマイズしたセッションスクリプトを持っており、
	  こちらが優先されます。</para>
      </sect3>

      <sect3>
	<title>Xsetup_*</title>
	<para>これらは chooser
	  やログインインタフェースが表示される前に自動的に実行されます。
	  それぞれのディスプレイに対して、<filename>Xsetup_</filename>
	  に続けてローカルのディスプレイ番号を付けた
	  (たとえば <filename>Xsetup_0</filename>)
	  名前のついたスクリプトがあります。
	  典型的な使い方は <command>xconsole</command>
	  のようなバックグラウンドで動かすプログラムを一つか二つ起動することです。</para>
      </sect3>

      <sect3>
	<title>xdm-config</title>
	<para>app-defaults の書式で書かれた、
	  このインストレーションで管理されるすべてのディスプレイに適用される設定を保持しています。</para>
      </sect3>

      <sect3>
	<title>xdm-errors</title>
	<para>このファイルには <application>XDM</application>
	  が起動しようとしている X サーバからの出力が書き出されます。
	  <application>XDM</application>
	  が起動しようとしているディスプレイがなんらかの理由でハングした場合、
	  このファイルのエラーメッセージを見てください。
	  そういったメッセージは各ユーザの
	  <filename>~/.xsession-errors</filename>
	  にもセッション毎に書き出されます。</para>
      </sect3>
    </sect2>

    <sect2>
      <title>ネットワークディスプレイサーバの起動</title>

      <para>あるディスプレイサーバに他のクライアントが接続することができるようにするために、
	アクセスコントロールのルールを編集し、
	コネクションリスナを有効にする必要があります。
	デフォルトでは保守的な設定になっています。
	<application>XDM</application>
	がそういったコネクションを待ち受けるようにするためには
	<filename>xdm-config</filename>
	にある次の行をコメントアウトします。</para>

      <screen>! 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</screen>

      <para>そして、<application>XDM</application> を再起動します。
	app-defaults ファイルにおけるコメントは <quote>!</quote>
	であっていつものような <quote>#</quote>
	ではないことに注意してください。
	アクセス制限はもっと厳しくしてもよいかもしれません。
	<filename>Xaccess</filename>
	にある例を参考にしたり、詳細についてオンラインマニュアル
	&man.xdm.1; を参照してください。</para>
    </sect2>

    <sect2>
      <title>XDM の代わりになるもの</title>

      <para>デフォルトの <application>XDM</application>
	に代わるものがいくつかあります。
	一つは <application>kdm</application>
	(<application>KDE</application> に付属しています)
	はその一つであり、この章の後ろで解説します。
	<application>kdm</application> ディスプレイマネージャは、
	ログイン時にウィンドウマネージャを選ぶことができるのに加え、
	見た目もかなり綺麗にしてくれます。</para>
    </sect2>
  </sect1>

  <sect1 id="x11-wm">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Valentino</firstname>
	  <surname>Vaschetto</surname>
	  <contrib>寄稿: </contrib>
	</author>
	<!-- June 2001 -->
      </authorgroup>
    </sect1info>

    <title>デスクトップ環境</title>

    <para>このセクションでは、FreeBSD 上の X
      で利用可能ないくつかのデスクトップ環境について解説します。
      <quote>デスクトップ環境</quote> とは、
      単なるウィンドウマネージャから <application>KDE</application>
      や <application>GNOME</application>
      といったような完全なデスクトップアプリケーションスイートまでカバーします。</para>

    <sect2 id="x11-wm-gnome">
      <title>GNOME</title>

      <sect3 id="x11-wm-gnome-about">
	<title>GNOME について</title>

	<indexterm><primary>GNOME</primary></indexterm>
	<para><application>GNOME</application>
	  はユーザフレンドリなデスクトップ環境で、
	  ユーザはコンピュータを簡単に使ったり設定したりできるようになります。
	  <application>GNOME</application> にはパネル
	  (アプリケーションを起動したり状態を表示したりするもの)、
	  デスクトップ (データやアプリケーションが置かれる場所)、
	  標準的なデスクトップツールやアプリケーションのセット、
	  そしてアプリケーションが互いにうまくやり取りできるような仕組みが含まれています。
	  他の OS や環境に慣れている人でも
	  <application>GNOME</application>
	  の提供するグラフィック環境であれば心地よく感じるでしょう。
	  FreeBSD 上の <application>GNOME</application>
	  に関するもっと詳しい情報は、
	  <ulink url="http://www.FreeBSD.org/gnome">FreeBSD GNOME Project</ulink>
	  のウェブサイトで見ることができます。
	  ウェブサイトには、<application>GNOME</application>
	  のインストール、設定、管理に関する非常に分かりやすい FAQ
	  も用意されています。</para>
      </sect3>

      <sect3 id="x11-wm-gnome-install">
	<title>GNOME のインストール</title>

	<para>package や Ports Collection
	  を利用してソフトウェアを簡単にインストールできます。</para>

	<para><application>GNOME</application> package
	  をネットワークからインストールするには、
	  以下のようにするだけです。</para>

	<screen>&prompt.root; <userinput>pkg_add -r gnome2</userinput></screen>

	<para><application>GNOME</application> をソースから構築する場合、
	  次のように ports ツリーを使いましょう。</para>

	<screen>&prompt.root; <userinput>cd /usr/ports/x11/gnome2</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

        <para><application>GNOME</application> を適切に動作させるには、
          <filename>/proc</filename> ファイルシステムをマウントする必要があります。
          以下を <filename>/etc/fstab</filename> に追加して、起動中に 
          &man.procfs.5; をマウントするように設定してください。</para>

        <programlisting>proc           /proc       procfs  rw  0   0</programlisting>

	<para><application>GNOME</application> がインストールできたら、
	  デフォルトのウィンドウマネージャの代わりに
	  <application>GNOME</application> を起動するように
	  X サーバに指示しなければなりません。</para>

	<para><application>GNOME</application>
	  を起動する最も簡単な方法は、GNOME ディスプレイマネージャ
	  <application>GDM</application> を使うことです。
	  <application>GDM</application> は、
	  <application>GNOME</application> 
	  デスクトップの一部としてインストールされますが、
	  デフォルトでは無効になっています。
	  有効にするには、以下の行を <filename>/etc/rc.conf</filename>
	  に追加してください。</para>

        <programlisting>gdm_enable="YES"</programlisting>

	<para>再起動すると、<application>GDM</application>
	  が自動的に起動します。</para>

	<para><application>GNOME</application> のすべてのサービスを、
	  <application>GDM</application> とともに起動するようにしておくと良いでしょう。
	  このように設定するには、以下の行を <filename>/etc/rc.conf</filename>
	  ファイルに追加してください。</para>

	<programlisting>gnome_enable="YES"</programlisting>

	<para><application>GNOME</application> は
	  <filename>.xinitrc</filename>
	  という名前のファイルを適切に設定することで、
	  コマンドラインから起動することもできます。
	  自分の <filename>.xinitrc</filename>
	  が既にある場合には、ウィンドウマネージャを起動する行を
	  <application>/usr/local/bin/gnome-session</application>
	  を起動するように変更するだけです。
	  特にこのファイルを用意していない場合には、
	  次のようにすれば十分でしょう。</para>

	<screen>&prompt.user; <userinput>echo "/usr/local/bin/gnome-session" &gt; ~/.xinitrc</userinput></screen>

	<para>次に、<command>startx</command> と入力すれば
	  <application>GNOME</application>
	  デスクトップ環境が起動します。</para>

	<note>
	  <para>もし <application>XDM</application>
	    のような古いディスプレイマネージャを使っているなら、
	    この方法ではうまくいきません。その代わり、実行可能な
	    <filename>.xsession</filename> というファイルを作成し、
	    同じコマンドを起動するようにします。
	    そのためには、このファイルを編集してウィンドウマネージャを
	    <application>/usr/local/bin/gnome-session</application>
	    で置き換えます。</para>
	</note>

	<screen>&prompt.user; <userinput>echo "#!/bin/sh" &gt; ~/.xsession</userinput>
&prompt.user; <userinput>echo "/usr/local/bin/gnome-session" &gt;&gt; ~/.xsession</userinput>
&prompt.user; <userinput>chmod +x ~/.xsession</userinput></screen>

	<para>もう一つの方法は、
	  ログイン時にウィンドウマネージャを選択できるようにディスプレイマネージャを設定することです。
	  <link linkend="x11-wm-kde-details">KDE
	  の詳細</link>についてのセクションで
	  <application>KDE</application> のディスプレイマネージャである
	  <application>kdm</application>
	  を使ってどのようにすればいいのかを解説しています。</para>
      </sect3>
    </sect2>

    <sect2 id="x11-wm-kde">
      <title>KDE</title>

      <indexterm><primary>KDE</primary></indexterm>
      <sect3 id="x11-wm-kde-about">
	<title>KDE について</title>

	<para><application>KDE</application>
	  は最近の簡単に使えるデスクトップ環境です。
	  <application>KDE</application>
	  によりユーザは以下のようなメリットを亨受します。</para>

	<itemizedlist>
	  <listitem>
	    <para>美しい現代風のデスクトップ</para>
	  </listitem>

	  <listitem>
	    <para>ネットワーク透過なデスクトップ</para>
	  </listitem>

	  <listitem>
	    <para><application>KDE</application>
	      デスクトップやそのアプリケーションを使う際に、
	      ヘルプへのアクセスを便利で統一されたものにする統合されたヘルプシステム</para>
	  </listitem>

	  <listitem>
	    <para>すべての <application>KDE</application>
	      アプリケーションで統一された見ためや使い勝手</para>
	  </listitem>

	  <listitem>
	    <para>標準化されたメニュー、ツールバー、
	      キーバインディング、カラースキームなど</para>
	  </listitem>

	  <listitem>
	    <para>国際化: <application>KDE</application> は
	      40 を越える言語で利用可能</para>
	  </listitem>

	  <listitem>
	    <para>一元的で、首尾一貫した、ダイアログベースのデスクトップ設定</para>
	  </listitem>

	  <listitem>
	    <para>膨大な数の <application>KDE</application>
	      アプリケーション</para>
	  </listitem>
	</itemizedlist>

	<para><application>KDE</application> には
	  <application>Konqueror</application>
	  と呼ばれるウェブブラウザも付属しており、これは &unix;
	  システム上の他のウェブブラウザの強力な競争相手です。
	  <application>KDE</application> の詳細については
	  <ulink url="http://www.kde.org/">KDE の
	  ウェブサイト</ulink> をご覧ください。
	  <application>KDE</application> に関する
	  FreeBSD 特有の情報とリソースについては、
	  <ulink url="http://freebsd.kde.org/">KDE on FreeBSD
	  チーム</ulink> のウェブサイトをご覧ください。</para>

	<para>FreeBSD で利用できる <application>KDE</application>
	  には 2 つのバージョンがあります。
	  バージョン 3 は、長い間広く使われ、安定しています。
	  バージョン 4 は、次世代のバージョンで、Ports Collection から利用できます。
	  これらを共存する形でインストールすることもできます。</para>
      </sect3>

      <sect3 id="x11-wm-kde-install">
	<title>KDE のインストール</title>

	<para><application>GNOME</application>
	  や他のデスクトップ環境とまったく同じように、
	  package や Ports Collection から簡単にインストールできます。</para>

	<para><application>KDE3</application> package
	  をネットワーク越しにインストールするには次のようにします。</para>

	<screen>&prompt.root; <userinput>pkg_add -r kde</userinput></screen>

	<para><application>KDE4</application> package
	  をネットワーク越しにインストールするには次のようにします。</para>

        <screen>&prompt.root; <userinput>pkg_add -r kde4</userinput></screen>

	<para>&man.pkg.add.1;
	  は自動的にアプリケーションの最新版を取得します。</para>

	<para><application>KDE3</application>
	  をソースから構築するには、次のように ports ツリーを使いましょう。</para>

	<screen>&prompt.root; <userinput>cd /usr/ports/x11/kde3</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

        <para><application>KDE4</application>
	  をソースから構築するには、次のように ports ツリーを使いましょう。</para>

        <screen>&prompt.root; <userinput>cd /usr/ports/x11/kde4</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

	<para><application>KDE</application> がインストールできたら
	  X サーバに、デフォルトのウィンドウマネージャの代わりにこのアプリケーションを立ち上げるように教えます。
	  <filename>.xinitrc</filename>
	  ファイルを次のように編集しましょう。</para>

	<para><application>KDE3</application> では、以下のように入力してください。</para>
        
	<screen>&prompt.user; <userinput>echo "exec startkde" &gt; ~/.xinitrc</userinput></screen>

	<para><application>KDE4</application> では、以下のように入力してください。</para>
        
	<screen>&prompt.user; <userinput>echo "exec /usr/local/kde4/bin/startkde" &gt; ~/.xinitrc</userinput></screen>

	<para>さぁ、これで <command>startx</command> でいつ
	  X Window System を立ち上げても
	  <application>KDE</application>
	  がデスクトップになります。</para>

	<para><application>XDM</application>
	  のようなディスプレイマネージャを使っている場合、
	  設定は少し異なります。代わりに
	  <filename>.xsession</filename> ファイルを編集しましょう。
	  <application>kdm</application>
	  用の説明はこの章の後のほうにあります。</para>
      </sect3>
    </sect2>

    <sect2 id="x11-wm-kde-details">
      <title>KDE の詳細について</title>

      <para>さぁ、<application>KDE</application>
	のインストールができました。
	ほとんどのことはヘルプページを見たりいろんなメニューをつつけばわかるでしょう。
	&windows; や &mac; のユーザにも簡単なはずです。</para>

      <para><application>KDE</application>
	の最も良いリファレンスはオンラインドキュメントです。
	<application>KDE</application> には独自のウェブブラウザ
	<application>Konqueror</application> が付属していますし、
	膨大な数の便利なアプリケーションや詳しいドキュメントも用意されています。
	このセクションの残りではなんとなく使っているだけでは理解し難い技術的なところを解説します。</para>

      <sect3 id="x11-wm-kde-kdm">
	<title>KDE ディスプレイマネージャ</title>

	<indexterm><primary>KDE</primary>
	  <secondary>ディスプレイマネージャ</secondary></indexterm>

	<para>マルチユーザシステムの管理者であれば、
	  ユーザを迎えるにあたってグラフィカルなログイン画面が欲しいと思うかもしれません。
	  前の章で述べたように
	  <link linkend="x-xdm">XDM</link> はそのために使えますが、
	  <application>KDE</application>
	  にはその代わりになる <application>kdm</application>
	  が付いています。
	  見た目がより魅力的で、ログイン時のオプションもたくさんあります。
	  特に (メニューを使って) ログイン後に使うデスクトップ環境
	  (<application>KDE</application> や
	  <application>GNOME</application> など)
	  を簡単に選ぶことができます。</para>

	<para><application>kdm</application>
	  を有効にするには、ファイルを編集する必要がありますが、
	  編集するファイルは、<application>KDE</application>
	  のバージョンに依存します。</para>

	<para><application>KDE3</application> では、
	  <filename>/etc/ttys</filename> の項目
	  <literal>ttyv8</literal> を以下のように変更してください。</para>

	 <programlisting>ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure</programlisting>

	<para><application>KDE4</application> では、
	  <filename>/etc/rc.conf</filename> に以下の行を追加してください。</para>

	<programlisting>local_startup="${local_startup} /usr/local/kde4/etc/rc.d"
kdm4_enable="YES"</programlisting>
      </sect3>
    </sect2>

    <sect2 id="x11-wm-xfce">
      <title>Xfce</title>
      <sect3 id="x11-wm-xfce-about">
	<title>Xfce について</title>

	<para><application>Xfce</application> は
	  <application>GNOME</application> で使われている
	  GTK+ ツールキットをベースにしたデスクトップ環境ですが、
	  ずっと軽いので、
	  シンプルで効率的でありながら使いやすく設定が簡単なデスクトップ環境を求める人に向いています。
	  見ためは商用 &unix; システムが採用している
	  <application>CDE</application>
	  にかなり似ています。<application>Xfce</application>
	  の機能をいくつか以下に挙げます。</para>

	<itemizedlist>
	  <listitem>
	    <para>シンプルで使いやすいデスクトップ</para>
	  </listitem>

	  <listitem>
	    <para>マウスのドラッグアンドドロップなどですべての設定が可能</para>
	  </listitem>

	  <listitem>
	    <para><application>CDE</application>
	      に似たメインパネルとメニューやアプレット、
	      アプリケーションランチャ</para>
	  </listitem>

	  <listitem>
	    <para>統合されたウィンドウマネージャ、ファイルマネージャ、
	      サウンドマネージャと <application>GNOME</application>
	      準拠のモジュールなど</para>
	  </listitem>

	  <listitem>
	    <para>(GTK+ なので) テーマをサポート</para>
	  </listitem>

	  <listitem>
	    <para>速くて軽くて効率的: 古いマシンや遅いマシン、
	      メモリの限られたマシンに向いています</para>
	  </listitem>
	</itemizedlist>

	<para><application>Xfce</application> に関する詳しい情報は
	  <ulink url="http://www.xfce.org/">Xfce のウェブサイト</ulink>
	  で得られます。</para>
      </sect3>

      <sect3 id="x11-wm-xfce-install">
	<title>Xfce のインストール</title>

	<para>(この文章を書いている時点では)
	  <application>Xfce</application>
	  のバイナリパッケージが用意されています。
	  次のように実行するだけでインストールできます。</para>

	<screen>&prompt.root; <userinput>pkg_add -r xfce4</userinput></screen>

	<para>また、Ports Collection
	  を利用してソースからインストールすることも可能です。</para>

	<screen>&prompt.root; <userinput>cd /usr/ports/x11-wm/xfce4</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

	<para>インストール後、次回 X を起動した時に <application>Xfce</application>
	  が立ち上がるように設定します。
	  次のようにしてください。</para>

	<screen>&prompt.user; <userinput>echo "/usr/local/bin/startxfce4" &gt; ~/.xinitrc</userinput></screen>

	<para>X を次に起動すると <application>Xfce</application>
	  が立ち上がります。
	  <application>XDM</application>
	  のようなディスプレイマネージャを使っている場合には、
	  <link linkend="x11-wm-gnome">GNOME</link>
	  のセクションに書いてあるように
	  <filename>.xsession</filename> ファイルを作成し、
	  <filename>/usr/local/bin/startxfce4</filename>
	  を起動するように追加します。
	  または <link linkend="x11-wm-kde-kdm">kdm</link>
	  のセクションにあるように、
	  ログイン時にディスプレイマネージャからデスクトップ環境を選択できるように設定してください。</para>
      </sect3>
    </sect2>
  </sect1>

</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->