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

     Original revision: 1.82
     $FreeBSD$
-->

<chapter id="x11">
  <title>X Window System</title>

  <sect1>
    <title>この章では</title>

    <para>FreeBSD では、ユーザに強力なグラフィカルインタフェイスを提供するためにXFree86を採用しています。
      XFree86 は X Window System のオープンソースな実装です。この章では FreeBSD における XFree86
      のインストールと設定について解説します。XFree86 についての情報や、それがサポートするビデオハードウェアについては
      <ulink url="http://www.XFree86.org/">XFree86</ulink> の Web サイトをご覧ください。</para>

    <para>この章を読めば以下のことがわかります。</para>
    <itemizedlist>
      <listitem>
        <para>X Window System の様々なコンポーネントと、それらが互いにどのように連携しているか。</para></listitem>
      <listitem>
        <para>XFree86 のインストールと設定について</para></listitem>
      <listitem>
        <para>様々なウィンドウマネージャのインストール方法</para></listitem>
      <listitem>
        <para>XFree86 での TrueType フォントの使い方</para></listitem>
      <listitem>
        <para>GUI ログイン (XDM) のセットアップ方法</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 や Mac OS といった他の 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.1; をご覧ください。</para>
    </sect2>

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

      <para>X は最初からネットワークを意識してデザインされており、<quote>クライアント - サーバ</quote>モデルを採用しています。
	X では、<quote>X サーバ</quote>はキーボードやモニター、マウスが接続されたコンピュータ上で動きます。このサーバはディスプレイの表示を管理したり、キーボード、マウスなどからの入力を処理したりします。各 X アプリケーション (<application>XTerm</application> や <application>Netscape</application> など) は <quote>クライアント</quote>になります。クライアントは<quote>この座標にウィンドウを描いてください</quote>といったメッセージをサーバへ送り、サーバは<quote>ユーザが OK ボタンを押しました</quote>といったようなメッセージを送り返します。</para>

      <para>家庭や小さなオフィスのような環境で、1 台しかコンピューターがないという場合には、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 の Mac OS で動かすことも可能ですし、そのようなソフトウェアもフリーのものから商用のまでいろいろとあります。</para>

      <para>FreeBSD に付いてくる X サーバは <application>XFree86</application> と呼ばれるもので、FreeBSD のライセンスに似たライセンスに従ってフリーで配布されています。FreeBSD 用の商用 X サーバも入手可能です。</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>その代わりに、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コレクションの <filename>x11-wm</filename> というカテゴリーからインストールすることが可能です。

      <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 の Mac OS はともに非常に厳密なポリシーをウィジェットに課しています。アプリケーション開発者は共通のルックアンドフィールに確実に従うことを想定されているわけです。X では、グラフィカルなスタイルやウィジェットのセットが特定のものに合わせたりすることに対してそれほど意識していませんでした。</para>

      <para>すなわち、X アプリケーションに共通のルックアンドフィールを期待してはいけません。いくつかのポピュラーなウィジェットセットやその亜種があります。MIT のオリジナルの Athena ウィジェットや <application>Motif</application> (Microsoft Windows をモデルにした、斜めになったエッジやグレイの陰影のウィジェットセットを持っている)、<application>OpenLook</application> などです。</para>

      <para>比較的新しい X アプリケーションのほとんどが、<application>KDE</application> で使われている Qt や <application>GNOME</application> プロジェクトで使われている <application>GTK</application> のようにモダンな見た目を持ったウィジェットセットを使っています。この点で言えば、UNIX のルックアンドフィールは収斂されてきており、初心者がより簡単に使えるようになってきています。
    </sect2>
  </sect1>
  
  <sect1 id="x-install">
    <title>XFree86 のインストール</title>
    <para>XFree86 をインストールする前にどのバージョンを動かすかを決めてください。<application>XFree86 3.x</application> は XFree86 におけるメンテナンスブランチです。これは非常に安定しており、非常にたくさんの数のグラフィックカードをサポートしているのですが、もう新しい機能は追加されません。<application>XFree86 4.X</application> はシステムを完全に見直して設計したものであり、フォント自体のもっと良いサポートやアンチエイリアスなどといった多くの新しい機能も追加されています。残念ながら、この新しいアーキテクチャーではビデオドライバーの書き直しが必要なため、3.X でサポートされていたいくつかの古いカードはまだサポートされていません。</para>

    <para>FreeBSD のセットアッププログラムを使えば、OS のインストール時に XFree86 3.3.6 をインストールして設定することができます (<xref linkend="x-server">に書かれています)。<application>XFree86 4.x</application> を使いたい場合、まずベースとなる FreeBSD をインストールしてから XFree86 のインストールを行うことになります。例えば、<application>XFree86 4.X</application> を ports コレクションからビルドしてインストールする場合には次のようにします。</para>

    <screen>&prompt.root; <userinput>cd /usr/ports/x11/XFree86-4</userinput>
      &prompt.root; <userinput>make all install clean</userinput></screen>

    <para>他には <command>pkg_add</command> ツールを用いたり、<ulink url="http://www.XFree86.org/">XFree86 の Webサイト</ulink>で直接提供されているものを利用して <application>XFree86 4.X</application> のバイナリパッケージをインストールするという方法もあります。</para>

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

    <!-- Easiest way is from sysinstall for XFree86 3.X -->

  </sect1>

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

    
    <indexterm><primary>XFree86 4.X</primary></indexterm>
    <indexterm><primary>XFree86</primary></indexterm>

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

      <para><application>XFree86 4.X</application>の設定を始める前に,
	次の情報が必要となります。</para>

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

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

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

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

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

    </sect2>

    <sect2>
      <title>XFree86 4.Xの設定</title>

      <para><application>XFree86 4.X</application> の設定は複数のステップの処理に分けられます。
	まずは <application>XFree86</application> に <option>-configure</option> オプションを付けて初期設定ファイルを作りましょう。スーパーユーザになって次のようにしてください。</para>

      <screen>&prompt.root; XFree86 -configure</screen>

      <para>これにより、現在のワーキングディレクトリに <filename>XF86Config.new</filename>
	という <application>XFree86</application> の設定ファイルのスケルトンが生成されます。
	<application>XFree86</application> プログラムはシステム上のグラフィックハードウェアを検出し,
	そのハードウェア用の適切なドライバーを読み込む設定ファイルを作ります。</para>

      <para>次のステップは、作成した設定ファイルで <application>XFree86</application> が動くことを確認することです。
	そのためには以下のようにします。</para>

      <screen>&prompt.root; XFree86 -xf86config XF86Config.new</screen>

      <para>黒とグレーのグリッドと X のマウスポインターが現われればその設定は成功です。
	テストから抜け出すためには単に次のキーを同時に押します。
	<keycombo action="simul">
	  <keycap>Ctrl</keycap>
	  <keycap>Alt</keycap>
	  <keycap>Backspace</keycap>
	</keycombo></para>

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

      <para>次は <filename>XF86Config.new</filename> を好みに合うように調整します。
	&man.emacs.1; や &man.ee.1; のようなテキストエディターでファイルを開いてください。
	まずモニターの周波数を加えます。これらは水平と垂直の同期周波数と表現されるのが普通です。
	これらの値は <filename>XF86Config.new</filename> の "Monitor" のセクションに次のように加えます。</para>
      <programlisting>
	Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync    30-107
        VertRefresh  48-120
	EndSection
      </programlisting>

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

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

      <programlisting>Option       "DPMS"</programlisting>
 
      <indexterm>
        <primary><command>XF86Config</command></primary>
      </indexterm>
      
      <para><filename>XF86Config.new</filename> はエディターで開いたままにしておき,
	デフォルトの解像度と色数を好みで選びましょう。
	<literal>Screen</literal> セクションに以下のように書きます。</para>
      
      <programlisting>
	Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
	Depth     24
	Modes     "1024x768"
        EndSubSection
	EndSection
      </programlisting>

      <para><varname>DefaultDepth</varname> というキーワードはデフォルトで動く色数について記述するためのものです。
	&man.XFree86.1; のコマンドラインスイッチ <command>-bpp</command> が使用された場合はこちらが優先されます。
	<varname>Modes</varname> というキーワードは与えられた色数におけるデフォルトの解像度を記述しておくためのものです。
	上の例ではデフォルトの色数はピクセルあたり24ビットであり、この色数での解像度は1024ピクセル×768ピクセルです。</para>

      <para>1024x768の解像度で動かすためには <varname>DefaultDepth</varname> というキーワードに 24 という値を与えて書き加えおき,
	<varname>"Display"</varname> サブセクションに求める <varname>Depth</varname> と <varname>Modes</varname> のキーワードを書いておきます。
	ターゲットのシステムのフラフィックハードウェアによって定義されているように、VESAスタンダードモードのみがサポートされていることに注意してください。</para>

      <para>最後に、設定ファイルを保存し、上の例にあるようにテストしてみてください。全てうまくいったなら、&man.XFree86.1;
	が見つけることができる共通の場所に設定ファイルを置きます。
	これは、通常は <filename>/etc/X11/XF86Config</filename> や <filename>/usr/X11R6/etc/X11/XF86Config</filename> です。</para>

      <screen>&prompt.root; cp XF86Config.new /etc/X11/XF86Config</screen>

      <para>設定ファイルを共通の場所に置いたら、設定は完了です。
	&man.startx.1; で <application>XFree86 4.X</application> を起動するために
	<filename role="package">x11/wrapper</filename> ポートをインストールします。
	また、<application>XFree86 4.X</application> を &man.xdm.1; で立ち上げることも可能です。</para>

    </sect2>

    <sect2>
      <title>高度な設定</title>
      
      <sect3>
	<title>Intel i810 グラフィックチップセットの設定</title>

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

	<para>Intel i810 統合チップセットを設定には、<application>XFree86</application>にカードを制御させるためにAGP プログラミングインタフェイスである <devicename>agpgart</devicename> が必要になります。
	  <devicename>agpgart</devicename> を利用するには、&man.kldload.8; を使って <filename>agp.ko</filename>
	  というカーネルローダブルモジュールをカーネルにロードしておく必要があります。
	  これは、<filename>/boot/loader.conf</filename> に次のように書いておけば &man.loader.8;
	  がブート時に自動的にやってくれます。</para>

	<programlisting>agp_load="YES"</programlisting>

	<para>次に、プログラミングインタフェイス用にデバイスノードを作る必要があります。
	  AGP のデバイスノードを作るには、<filename>/dev</filename> で &man.MAKEDEV.8;
	  を次のように起動します。</para>

	<screen>&prompt.root; cd /dev
	  &prompt.root; sh MAKEDEV agpgart</screen>

	<para>これで他のグラフィックカードと同様に設定を行うことができるようになります。</para>

	<para>もし XFree86 4.1.0 (もしくはそれ以降) を使っており,
	  <literal>fbPictureInit</literal> といったようなシンボルが見つからないというメッセージが現われるなら,
	  XFree86 設定ファイルで <literal>Driver "i810"</literal> の後に次のような行を入れてみてください。</para>
	<programlisting>Option "NoDDC"</programlisting>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="x-fonts">
    <sect1info>
      <authorgroup>
        <author>
          <firstname>Murray</firstname>
          <surname>Stokely</surname>
          <contrib>Contributed by </contrib>
        </author>
      </authorgroup>
    </sect1info>
    <title>XFree86 でのフォントの使用</title>

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

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

      <screen>&prompt.root; <userinput>cd /usr/ports/x11-fonts/urwfonts</userinput>
	&prompt.root; <userinput>make install clean</userinput></screen>
      
      <para>freefont や他のコレクションでも同じようにします。
	X サーバにこれらのフォントがあることを教えるには
	(<application>XFree86</application> バージョン 3 の場合は <filename>/etc/</filename>,
	バージョン 4 では <filename>/etc/X11/</filename> にある) <filename>XF86Config</filename>
	の適切な場所に次のような行を加えます。</para>
      
      <programlisting>FontPath "/usr/X11R6/lib/X11/fonts/URW/"</programlisting>

      <para>別の方法としては、X のセッション中に次のようなコマンドラインを実行します。</para>
      
      <screen>&prompt.user; <userinput>xset fp+ /usr/X11R6/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>XftConfig</filename> ファイルを使うことです。
	これに関しては <link linkend="antialias">アンチエイリアス</link>のセクションを参照してください。
      </para>
    </sect2>

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

      <para><application>XFree86 4.X</application> には TrueType フォントのレンダリング機能が組み込まれています。
	この機能を実現するために二つの異なるモジュールがあります。
	ここでは、"freetype" のほうがより他のフォントレンダリングバックエンドと似ているため,
	このモジュールを使うことにします。
	freetype モジュールを使うためには <filename>/etc/X11/XF86Config</filename>
	ファイルに以下の行を追加するだけです。</para>

      <programlisting>Load  "freetype"</programlisting>

      <para><application>XFree86 3.3.X</application> の場合,
	TrueType フォントサーバが別に必要となります。
	<application>Xfstt</application> がよく使われるものです。
	<application>Xfstt</application> とインストールするのは簡単で,
	<filename role="package">x11-servers/Xfstt</filename> ポートを利用してください。</para>

      <para>さて、まずは TrueType フォント用のディレクトリ
	(例えば <filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>)
	を作り、そこに TrueType フォントを全て放り込みましょう。
	Macintosh の TrueType フォントは、そのままでは使うことができませんので注意してください。
	<application>XFree86</application> で使うには Unix/DOS/Windows
	用のフォーマットでなければなりません。
	ファイルを置いたら <application>ttmkfdir</application> を使って
	<filename>fonts.dir</filename> ファイルを作ってください。
	このファイルにより、X は新しいファイルがイントールされたことを理解します。
	<command>ttmkfdir</command> は FreeBSD Ports コレクション,
	<filename role="package">x11-fonts/ttmkfdir</filename>、からインストールできます。</para>

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

      <para>次に TrueType フォントのディレクトリをフォントパスに追加します。
	上の <link linkend="type1">Type1</link> フォントの場合と同じように,
	<screen>&prompt.user; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/TrueType</userinput>
	  &prompt.user; <userinput>xset fp rehash</userinput></screen>
	とするか、もしくは <filename>XF86Config</filename> ファイルに
	<option>FontPath</option> 行を追加するのです。</para>
      
      <para>これで終わりです。<application>Netscape</application>や
	<application>Gimp</application>、<application>StarOffice</application>
	といった全ての X アプリケーションから TrueType フォントを使うことができます。
	(高解像度なディスプレイで見る Web ページ上のテキストみたいな)
	とても小さなフォントや (<application>StarOffice</application> にあるような)
	非常に大きなフォントもかなり綺麗に見えるようになることでしょう。</para>
    </sect2>

    <sect2 id="antialias">
      <title>フォントのアンチエイリアス</title>

      <para><application>XFree86</application> では 4.0.2
	以降でフォントのアンチエイリアスをサポートしています。
	今のところ、ほとんど全てのソフトがこの新しい機能を使うメリットを亨受するようにはなっていません。
	しかし、Qt (<application>KDE</application> デスクトップ用のツールキット)
	はサポートしていますので,
	<application>XFree86 4.0.2</application> 以降と Qt 2.3 以降及び
	<application>KDE</application> を使う場合には全ての
	KDE/Qt アプリケーションでアンチエイリアスなフォントを使うことができます。</para>

      <para>アンチエイリアスを使うように設定するには,
	<filename>/usr/X11R6/lib/X11/XftConfig</filename> ファイルを作ります
	(既にある場合には編集してください)。
	このファイルを使えばいくつかの先進的な機能を使うことができるのですが,
	このセクションでは最も簡単なところだけを解説します。</para>

      <para>まず、X サーバに対してアンチエイリアスをかけるべきフォントを指定します。
	それぞれのフォントディレクトリに対して次のような行を加えます。</para>
      
      <programlisting>dir "/usr/X11R6/lib/X11/Type1"</programlisting>
      
      <para>アンチエイリアスをかけたい他のフォントのディレクトリ
	(URW や truetype など) についても同じようにします。
	アンチエイリアスはスケーラブルなフォント (基本的には Type1 と TrueType)
	にのみ有効ですので、ビットマップフォントのディレクトリは加えないようにしてください。
	ここに含めたディレクトリは <filename>XF86Config</filename> ではコメントアウトします。</para>

      <para>アンチエイリアスをかけることによって境界が少しぼやけ,
	そのためにとても小さなテキストはさらに読みやすくなり,
	大きなフォントでは<quote>ギザギザ</quote>が消えるのです。
	しかし、普通のテキストにかけた場合には目が疲れることになります。
	9から13ポイントのサイズのフォントについて、アンチエイリアスをかけないようにするには次の行を加えます。</para>
      
      <programlisting>match
	any size > 8
	any size < 14
	edit
	antialias = false;</programlisting>
      
      <para>いくつかの等幅フォントは,
	アンチエイリアスをかけるとスペーシングがうまくいかなくなる場合があります。
	特に <application>KDE</application> でその傾向があるようです。
	解決策の一つとして、そういったフォントのスペーシングを100に設定する方法があります。
	そうするためには次の行を加えてください。</para>
      
      <programlisting>match any family == "fixed"      edit family =+ "mono";
	match any family == "console"    edit family =+ "mono";</programlisting>
      
      <para>(これによりfixedというフォントに他の "mono" という名前のエイリアスを付けます) そして次の行も加えてください。</para>
      
      <programlisting>match any family == "mono" edit spacing = 100;</programlisting>
      
      <para>等幅フォントが必要な時にはつねに <literal>Lucidux</literal>
	を使うように (このフォントは実際見目もよく、スペーシングの問題もありません)
	するためには最後の行を次のように変更します
	(最後の行は異なるものに同じファミリー名を付けています)。</para>

      <programlisting>match any family == "mono"       edit family += "LuciduxMono";
	match any family == "Lucidux Mono"      edit family += "LuciduxMono";
	match any family == "LuciduxMono"       edit family =+ "Lucidux Mono";</programlisting> 

      <para>最後に、このファイルを自分の <filename>.xftconfig</filename>
	として保存し、次のコマンドを追加します。</para>
      <programlisting>includeif  "~/.xftconfig"</programlisting>

      <para>最後に一つ。LCD スクリーンではサブピクセルサンプリングが必要な場合があります。
	これは、基本的には (水平方向に分かれている) 赤、緑,
	青の各コンポーネントを別々に扱うことによって水平方向の解像度を良くするというもので,
	そうすることによって劇的な結果が得られます。
	これを有効にするには <filename>XftConfig</filename> ファイルに次の行を加えます
	(ディスプレイの種類にもよりますが最後は ``rgb'' ではなく
	``bgr''や ``vrgb''、``vbgr'' の場合もあるので、試してみて最も良いものを使ってください)。</para>

      <programlisting>match edit rgba=rgb;</programlisting>
      
      <para>アンチエイリアスは、次に X サーバを立ち上げた時から有効になります。
	しかし、上でも述べたようにその恩恵を受けるにはプログラム側での対処も必要です。
	今のところ Qt は対応しているため、<application>KDE</application>
	環境全体でアンチエイリアスのかかったフォントを用いることができます
	(<application>KDE</application> についての詳しいことは
	<xref linkend="x11-wm-kde2-antialias"> をご覧ください)。
	gtk+ を同じようにするパッチもありますので、そのパッチを当てた gtk+
	を使ってコンパイルし直せば GNOME 環境や Mozilla もまたアンチエイリアスなフォントを使うことができます。
	実際には <filename role="package">x11/gdkxft</filename> という port があり,
	リコンパイルしなくてもアンチエイリアスなフォントを使うことができます。
	詳しくは <xref linkend="x11-wm-gnome-antialias"> をご覧ください。</para>
      
      <para>アンチエイリアスは、FreeBSD や <application>XFree86</application>
	ではまだ新しい機能ですが、その設定はもっと簡単になるでしょうし,
	すぐにもっとたくさんのアプリケーションがサポートするようになるでしょう。</para>
    </sect2>
  </sect1>

  <sect1 id="x-xdm">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Seth</firstname>
	  <surname>Kingsley</surname>
	  <contrib>Contributed by </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>X ディスプレイマネージャ</title>
    <sect2>
      <title>概要</title>
      <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>/usr/X11R6/bin/xdm</filename> にあります。
	このプログラムは <username>root</username> になればいつでも起動することができ,
	ローカルマシン上のディスプレイの管理を始めます。
	マシンをブートする際、いつも <application>XDM</application>
	を起動したい場合には、<filename>/etc/ttys</filename>
	にそのためのエントリを加えておくのが簡単です。
	このファイルのフォーマットや使用方法についての詳細は <xref linkend="term-etcttys">
	を参照してください。デフォルトの <filename>/etc/ttys</filename>
	ファイルには仮想端末上で <application>XDM</application> のデーモンプログラムを起動するための行:

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

	があります。このエントリーはデフォルトでは無効になっており,
	有効にするには 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/X11R6/lib/X11/xdm</filename> です。
	このディレクトリには <application>XDM</application>
	の振る舞いや見た目を変更するために用いられるいくつかのファイルがあります。
	だいたいは以下のような感じです。</para>

      <informaltable frame="none">
	<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 ファイルです。
	  このファイルでログインプログラムの見た目を変更することができます。
	  フォーマットは <application>XFree86</application> のドキュメントで記述されている
	  app-defaults ファイルのものと同じです。</para>
      </sect3>

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

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

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

	<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>

	そして、<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>Contributed by </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>

        <para><application>GNOME</application> はユーザフレンドリーなデスクトップ環境で,
	  ユーザはコンピューターを簡単に使ったり設定したりできるようになります。
	  <application>GNOME</application> にはパネル (アプリケーションを起動したり状態を表示したりするもの)
	  、デスクトップ (データやアプリケーションが置かれる場所),
	  標準的なデスクトップツールやアプリケーションのセット,
	  そしてアプリケーションが互いにうまくやり取りできるような仕組みが含まれています。
	  他の OS や環境に慣れている人でも <application>GNOME</application>
	  の提供するグラフィック環境であれば心地よく感じるでしょう。</para>
      </sect3>

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

	<para><application>GNOME</application> をインストールする最も簡単な方法は,
	  第 2 章で解説した FreeBSD のインストールメニューの<quote>デスクトップ環境の設定</quote>を通して行うことです。
	  また、package や ports を利用しても簡単にインストールできます。</para>

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

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

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

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

        <para><application>GNOME</application>がインストールできたら、デフォルトのウィンドウマネージャの代わりに
	  <application>GNOME</application> を起動するように X サーバに教えます。
	  自分の <filename>.xinitrc</filename> が既にある場合には、ウィンドウマネージャを起動するところの行を
	  <application>/usr/X11R6/bin/gnome-session</application> を起動するように変更するだけです。
	  特にこのファイルを用意していない場合には次のようにすれば十分でしょう。</para>
	
        <screen>&prompt.user; <userinput>echo "/usr/X11R6/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/X11R6/bin/gnome-session</application> で置き換えます。</para>
	</note>

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

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

      <sect3 id="x11-wm-gnome-antialias">
        <title>GNOME でアンチエイリアスなフォントの使用</title>

	<para>XFree86 デスクトップでは、フォントのアンチエイリアスは
	  KDE 環境ではじめて登場し標準のインストールでサポートされていますが,
	  GNOME 環境のような gtk アプリケーションでも可能です。
	  最も素直なやり方は恐らく <filename role="package">x11/gdkxft</filename> port にある
	  <application>libgdkxft</application>ライブラリ を使うことです。
	  この port をインストールしたら
	  <filename>/usr/X11R6/share/doc/gdkxft/README</filename>
	  を注意深く読んでください。</para>

	<para>あとは gtk アプリケーションにフォントのレンダリング関数を標準の
	  <filename>libgdk.so</filename> よりも前に <filename>libgdkxft.so</filename>
	  から探すようにさせるだけです。
	  これは、環境変数が正しい位置を指すようにするだけでできます。
	  Bourne シェル (<application>/bin/sh</application>) 系のシェルの場合,
	  (<application>The Gimp</application> を起動するなら) 次のようにタイプします。</para>

	<screen>&prompt.user; <userinput>LD_PRELOAD=/usr/X11R6/lib/libgdkxft.so gimp</userinput></screen>

	<para>csh 系のシェルであれば次のようにしてください。</para>

	<screen>
	  &prompt.user; <userinput>setenv LD_PRELOAD /usr/X11R6/lib/libgdkxft.so</userinput> 
	  &prompt.user; <userinput>gimp</userinput>
	</screen>

	<para>もしくは,</para>

	<programlisting>
	  LD_PRELOAD=/usr/X11R6/lib/libgdkxft.so
	  export LD_PRELOAD
	</programlisting>

	<para>というコマンドを、X をどのように立ち上げるかに依って
	  <filename>.xinitrc</filename> や <filename>.xsession</filename>,
	  もしくは <filename>/usr/X11R6/lib/X11/xdm/Xsession</filename> に書いておきます。
	  ただし、こうすると GTK の Linux バイナリを起動する時にトラブるかもしれません。</para>
      </sect3>
    </sect2>

    <sect2 id="x11-wm-kde2">
      <title>KDE2</title>

      <sect3 id="x11-wm-kde2-about">
        <title>KDE2 について</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> はその <quote>KParts</quote>
	  テクノロジーをベースにしたオフィススイートを持っており,
	  それにはスプレッドシート、プレゼンテーションアプリケーション、オーガナイザー,
	  ニュースクライアントなどが含まれています。
	  <application>KDE</application> にはまた <application>Konqueror</application>
	  と呼ばれる Web ブラウザーも付属しており、これは Unix システム上の他の
	  Web ブラウザーの強力な競争相手です。
	  <application>KDE</application> の詳細については
	  <ulink url="http://www.kde.org/">KDE の Webサイト</ulink>をご覧ください。</para>
      </sect3>

      <sect3 id="x11-wm-kde2-install">
        <title>KDE2 のインストール</title>
	
	<para><application>GNOME</application> や他のデスクトップ環境と全く同じように,
	  <application>KDE</application> をインストールする最も簡単な方法は第 2 章にある
	  FreeBSD のインストールメニューでの<quote>デスクトップ設定</quote>を利用することです。
	  またまた同じことですが、package や ports コレクションからインストールするのも簡単です。</para>

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

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

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

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

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

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

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

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

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

      <para>さぁ、<application>KDE2</application> のインストールができました。
	ほとんどのことはヘルプページを見たりいろんなメニューをつつけばわかるでしょう。
	Windows や Mac のユーザにも簡単なはずです。</para>
      
      <para><application>KDE2</application> の最も良いリファレンスはオンラインドキュメントです。
	<application>KDE</application> には独自の Web ブラウザー <application>Konqueror</application>
	が付属してますし、膨大な数の便利なアプリケーションや詳しいドキュメントもあります。
	このセクションの残りではなんとなく使っているだけでは理解し難い技術的なところを解説します。</para>

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

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

	<para>まず最初に <username>root</username> で <application>KDE2</application>
	  のコントロールパネル <command>kcontrol</command> を起動しましょう。
	  一般には X 環境全体を <username>root</username> で動かすのは安全ではありませんので,
	  ウィンドウマネージャは普通のユーザで起動しておいて (<filename>xterm</filename>
	  や <application>KDE</application> の <filename>konsole</filename> のような)
	  ターミナルウィンドウを開き、<userinput>su</userinput> コマンドで <username>root</username>
	  になり (そのユーザは <groupname>wheel</groupname> グループに入ってなければなりません)
	  <userinput>kcontrol</userinput> とタイプします。</para>

	<para>左側にある<guibutton>システム</guibutton> と書かれたアイコンをクリックし,
	  <guibutton>ログインマネージャ</guibutton> をクリックします。
	  右側には様々な設定オプションがあり、これらについては <application>KDE</application>
	  のマニュアルに細かく解説されています。右側にある <guibutton>セッション</guibutton> をクリックしてください。
	  <guibutton>新規追加</guibutton> をクリックして様々なウィンドウマネージャやデスクトップ環境を加えます。
	  これらはただのラベルですので <application>startkde</application> や
	  <application>gnome-session</application> ではなく <application>KDE</application>
	  や <application>GNOME</application> とできます。
	  <literal>failsafe</literal> というラベルも入れてください。</para>

	<para>他のメニューでも遊んでみてください。それらはだいたい見た目に関するもので,
	  見ればわかります。終わったら下のほうにある
	  <application>適用</application> ボタンをクリックしてコントロールセンターを終了します。</para>

        <para>(<application>KDE</application> や <application>GNOME</application>
	  といった) ラベルが何かを <application>kdm</application> が確実に理解してくれるように,
	  <link linkend="x-xdm">xdm</link> で使われているファイルを編集します。
	  <note><para><application>KDE 2.2</application> では、これは変更され
	      <application>kdm</application> は独自の設定ファイルを持ちます。
	      詳しくは <application>KDE 2.2</application> のドキュメントを参照してください。</para>
	  </note>
	 ターミナルウィンドウで <username>root</username> で
	  <filename>/usr/X11R6/lib/X11/xdm/Xsession</filename> ファイルを編集します。
	  中ほどに次のような行があるはずです。</para>
	
	<screen>case $# in
	  1)
	  case $1 in
	  failsafe)
	  exec xterm -geometry 80x24-0-0
	  ;;
	  esac
	  esac</screen>
        <para>このセクションにもう少し行を追加する必要があります。
	  <quote>KDE2</quote> や <quote>GNOME</quote> というラベルが付いてると仮定すると,
	  以下の行を追加してください。</para>
	<screen>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</screen>

        <para><application>KDE</application> を尊重してログイン時のデスクトップのバックグラウンドを変える場合には
	  <filename>/usr/X11R6/lib/X11/xdm/Xsetup_0</filename> に次の行を加えます。</para>
        <screen>/usr/local/bin/kdmdesktop</screen>
	
        <para>最後に、次のブート時で立ち上がるように
	  <filename>/etc/ttys</filename> に
	  <application>kdm</application> を書きます。
	  上の <link linkend="x-xdm">xdm</link> のセクションの解説で
	  <command>/usr/X11R6/bin/xdm</command> となっている部分を
	  <command>/usr/local/bin/kdm</command> とすればいいだけです。</para>
      </sect3>

      <sect3 id="x11-wm-kde2-antialias">
        <title>アンチエイリアスフォント</title>

        <para>4.0.2 以降、<application>XFree86</application> ではその "RENDER"
	  拡張によってアンチエイリアスがサポートされています。
	  (<application>KDE</application> で利用されているツールキットである) Qt では
	  2.3 以降でこの拡張がサポートされています。
	  その設定は X11 フォントでのアンチエイリアスに関して <xref linkend="antialias">
	  で解説されています。従って最新のソフトウェアであれば <application>KDE2</application>
	  デスクトップ上でアンチエイリアスを利用することが可能なのです。
	  KDE2 のメニューから 設定 -> ルックアンドフィール -> フォント と辿り,
	  <quote>フォントとアイコンをアンチエイリアス表示</quote> をクリックしてください。
	  <application>KDE</application> の一部になっていない Qt アプリケーションの場合,
	  QT_XFT という環境変数をプログラムを起動する前に設定する必要があります。</para>
      </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 の Web サイト</ulink>から得られます。</para>
      </sect3>
      <sect3 id="x11-wm-xfce-install">
	<title>XFCE のインストール</title>
	
	<para>(この文章を書いている時点で) <application>xfce</application>
	  のバイナリーパッケージがあります。インストールするにはただ次のようにタイプするだけです</para>

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

        <para>また、ports コレクションを利用してソースから作ることも可能です</para>

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

        <para>次に X が起動した時に <application>XFCE</application> が起動されるように設定します。
	  次のようにしてください。</para>

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

        <para>次に X が起動する時 <application>XFCE</application> のデスクトップが立ち上がります。
	  上と同様に、<filename>xdm</filename> のようなディスプレイマネージャを使っている場合には
	  <link linkend="x11-wm-gnome">GNOME</link> のセクションに書いてあるのと同じように
	  <filename>.xsession</filename> ファイルを作り、<filename>/usr/X11R6/bin/startxfce</filename>
	  を起動するようにします。
	  もしくは、<link linkend="x11-wm-kde2-kdm">kdm</link>
	  のセクションにあるようにディスプレイマネージャから <application>XFCE</application>
	  を選ぶことができるように設定します。</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:
-->
