X Window System (X11)は、UNIX系のグラフィカルユーザインタフェースで、事実上の標準となっています。Xはネットワークベースであり、あるホスト上で起動されたアプリケーションを、任意のネットワーク(LAN やインターネット)を介して接続されている他のホスト上で表示できるようにします。この章ではX Window System環境のセットアップと最適化について説明し、SUSE® Linux Enterprise Desktopでのフォント使用の背景情報を提供します。
デフォルトでは、X Windowシステムは「Setting Up Graphics Card and Monitor」 (第5章 Setting Up Hardware Components with YaST, ↑導入ガイド)に説明されているSaX2インタフェースを使って設定されます。代わりに設定ファイルを編集して、手動設定することもできます。
![]() | X環境設定ファイルに不適切な設定を行うとハードウェアが損傷する可能性があります |
|---|---|
X Window Systemの設定は慎重に行う必要があります。設定が完了するまでは、X Window Systemを起動しないでください。システムが正しく設定されていないと、ハードウェアが復元不能な損傷を受ける可能性があります(特に固定周波数モニタの場合)。本書およびSUSE Linux Enterprise Desktopの作成者は、このような原因による損傷や損害に対していかなる責任も負いません。この情報は慎重に調査されたものですが、ここで説明する方法がすべて正しく、ハードウェアが損傷を受けないという保証はありません。 | |
コマンドsax2で/etc/X11/xorg.confファイルが作成されます。これはX Window Systemの基本設定ファイルです。このファイルには、グラフィックカード、マウス、およびモニタに関する設定がすべて含まれています。
![]() | X -configureの使用 |
|---|---|
SUSE Linux Enterprise DesktopのSaX2で失敗した場合は、X -configureを使ってXセットアップの設定を行ってください。セットアップにバイナリのみの専有ドライバが使用される場合、X -configureは動作しません。 | |
ここでは、設定ファイル/etc/X11/xorg.confの構造について説明します。xorg.confは複数のセクションで構成され、各セクションは設定の特定の側面を取り扱います。各セクションは、キーワードSection <designation>で始まってキーワードEndSectionで終わります。すべてのセクションで、以下の表記規則を使用します。
Section "designation" entry 1 entry 2 entry n EndSection
使用可能なセクションのタイプのリストは表14.1「/etc/X11/xorg.confのセクション」にあります。
表14.1 /etc/X11/xorg.confのセクション¶
ここでは、Monitor、Device、およびScreenについて詳しく説明します。他のセクションの詳細については、X.Orgおよびxorg.confのマニュアルページを参照してください。
xorg.confには、複数の異なるMonitorおよびDeviceセクションを記述できます。複数のScreenセクションを記述することも可能です。ServerLayoutセクションでは、このセクションのうち使用するものを判定します。
Screenセクションでは、MonitorセクションとDeviceセクションを組み合わせて、どの解像度とカラー設定を使用するかを決定します。Screenセクションは例14.1「ファイル/etc/X11/xorg.confのScreenセクション」のようになります。
例14.1 ファイル/etc/X11/xorg.confのScreenセクション¶
Section "Screen"DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1152x864" "1024x768" "800x600"
Virtual 1152x864
EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection SubSection "Display" Depth 32 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" EndSubSection Device "Device[0]" Identifier "Screen[0]"
Monitor "Monitor[0]" EndSection
Deviceセクションでは、特定のグラフィックカードを記述します。名前が異なっていれば、キーワードIdentifierを使用してxorg.conf内で必要な数だけデバイスエントリを指定できます。複数のグラフィックカードをインストールしている場合、セクションには順番に番号が付けられます。最初のセクションはDevice[0]、2 番目のセクションはDevice[1]となります。次のファイルは、Matrox Millennium PCIグラフィックカードが搭載されているコンピュータのDeviceセクションから抜粋したものです(SaX2が設定)。
Section "Device" BoardName "MGA2064W" BusID "0:19:0"Driver "mga"
Identifier "Device[0]" VendorName "Matrox" Option "sw_cursor" EndSection
Xサーバやドライバの動作は、その他のオプションを使用して変更することもできます。その一例がDeviceセクションで設定するオプションsw_cursorです。このオプションは、ハードウェアのマウスカーソルを無効にし、ソフトウェアを使用してマウスカーソルを示します。ドライバモジュールによっては、さまざまなオプションを使用できます。各オプションは、ディレクトリ/usr/share/doc/package内のドライバモジュールの記述ファイル内にあります。通常、有効なオプションについてはマニュアルページ(man package_namexorg.conf、man 4 、およびman <ドライバモジュール>4 )でも確認できます。
chips
グラフィックカードに複数のビデオコネクタがある場合、この1枚のカードの異なるデバイスを単一ビューとして設定できます。SaX2を使用してグラフィックインタフェースをこのように設定します。
Deviceセクションと同様に、MonitorセクションとModesセクションでもモニタを1つずつ記述します。設定ファイル/etc/X11/xorg.confでは、Monitorセクションを必要な数だけ指定できます。Monitorセクションはそれぞれ、UseModes行があるModesセクションを参照します。MonitorセクションにModesセクションがない場合、Xサーバは該当する値を一般的な同期の値から計算します。サーバレイアウトセクションでは、どのMonitorセクションが関係するかを指定します。
熟練者以外は、モニタ定義を設定しないでください。modelineは、Monitorセクションで重要な役割を果たします。modelineでは、関連解像度の水平と垂直のタイミングを設定します。モニタ特性、特に許容周波数は、Monitorセクションに格納されます。標準VESAモードは、ユーティリィティcvtにより生成できます。詳細については、マニュアルページcvt man cvtを参照してください。
![]() | |
モニタおよびグラフィックカード機能の詳細な知識がない場合は、modelineを変更しないでください。モニタに重大な損傷が生じることがあります。 | |
独自のモニタ記述を作成する場合は、/usr/share/X11/doc内のドキュメントを熟読する必要があります。PDFおよびHTMLページを参照するために、パッケージxorg-x11-docをインストールします。
modelineの手動指定が必要になることはほとんどありません。最新のマルチシンクモニタを使用している場合、許容周波数と最適解像度は、SaX2 設定のセクションで説明したように、原則としてXサーバがDDCを介してモニタから直接読み込みます。何らかの原因で直接読み込めない場合は、Xサーバに付属するVESAモードの1つを使用してください。このモードは、実際にはグラフィックカードとモニタの大半の組み合わせに機能します。
SUSE Linux Enterprise Desktopで追加のフォントをインストールするのは簡単です。フォントを、X 11フォントパスにある任意のディレクトリにコピーするだけです(14.2.1項 「X11コアフォント」を参照)。フォントの使用を有効にするには、インストールディレクトリが/etc/fonts/fonts.confに設定されているディレクトリのサブディレクトリでなければなりません(14.2.2項 「Xft」を参照)。または、このファイルを/etc/fonts/suse-font-dirs.confに入れなければなりません。
以下は、/etc/fonts/fonts.confから抜粋したものです。このファイルは、大半の設定に適合する標準設定ファイルです。また、インクルード済みのディレクトリ/etc/fonts/conf.dを定義します。このディレクトリには、すべてのファイルまたは2桁の数字で始まるシンボリックリンクがfontconfigによりロードされます。この機能の詳細な説明は、/etc/fonts/conf.d/READMEを参照してください。
<!-- Font directory list --> <dir>/usr/share/fonts</dir> <dir>/usr/X11R6/lib/X11/fonts</dir> <dir>/opt/kde3/share/fonts</dir> <dir>/usr/local/share/fonts</dir> <dir>~/.fonts</dir>
/etc/fonts/suse-font-dirs.confが自動的に生成されて、LibreOffice、Java、またはAdobe Readerなどのアプリケーション(ほとんどの場合サードパーティ製)に付属のフォントを取り込みます。エントリの例を次に示します。
<dir>/usr/lib/Adobe/Reader9/Resource/Font</dir> <dir>/usr/lib/Adobe/Reader9/Resource/Font/PFM</dir>
システム全体に追加フォントをインストールするには、フォントファイルを/usr/share/fonts/truetypeなどの適切なディレクトリに手動コピーしてください(rootとして)。また、この作業は、KDEコントロールセンターでKDEフォントインストーラを使用して行うこともできます。結果は同じです。
フォントを実際にコピーする代わりに、シンボリックリンクを作成することもできます。たとえば、マウントされているWindowsパーティション上にライセンスを取得しているフォントがあり、それらのフォントを使用したい場合は、シンボリックリンクを作成します。次に、SuSEconfig--module fontsコマンドを実行します。
SuSEconfig--module fontsコマンドは、フォントを設定するスクリプト、/usr/sbin/fonts-configを実行します。このスクリプトの詳細については、マニュアルページ(man fonts-config)を参照してください。
手順は、ビットマップフォント、TrueTypeフォントとOpenTypeフォント、およびType1 (PostScript)フォントの場合と同様です。これらのタイプのフォントはすべて、任意のディレクトリにインストールできます。
X.Orgには、従来のと、新たに設計されたシステムの2種類のまったく異なるフォントシステムが含まれています。以降のセクションでは、これらの2つのシステムについて簡単に説明します。
今日、X11コアフォントシステムは、ビットマップフォントだけでなく、Type1フォント、TrueTypeとOpenTypeフォントなどのスケーラブルフォントもサポートしています。スケーラブルフォントは、アンチエイリアスとサブピクセルレンダリングなしでサポートされており、多数の言語用のグリフを持つ大きいスケーラブルフォントのロードには時間がかかります。Unicodeフォントもサポートされていますが、使用すると時間がかかり、より多くのメモリが必要になります。
X11コアフォントシステムには、その他にも固有の弱点がいくつかあります。時代遅れになっており、これ以上拡張することはできません。下位互換性のために保持されていますが、可能なときはいつでも、新しいXftおよびfontconfigシステムを使用してください。
Xサーバは、操作のためにどのようなフォントが使用可能で、そのフォントがシステム内のどこにあるかを認識する必要があります。この情報は、有効なすべてのシステムフォントディレクトリへのパスを含むFontPath変数で処理されます。これらの各ディレクトリでは、ファイルfonts.dirにそのディレクトリ内で使用可能なフォントのリストがあります。FontPathは、起動時にXサーバにより生成されます。設定ファイル/etc/X11/xorg.confの各FontPath エントリ内で、有効なファイルfonts.dirが検索されます。これらのエントリは、Filesセクションにあります。実際のFontPathを表示するには、xset qを使用します。このパスは、xsetを使用して実行時に変更することもできます。パスを追加するには、xset+fp <path>を使用します。不要なパスを削除するには、xset-fp <path>を使用します。
Xサーバがすでにアクティブである場合、マウントされたディレクトリに新たにインストールされたフォントは、コマンドxsetfp rehashで使用可能にできます。このコマンドは、SuSEconfig--module fontsによって実行されます。コマンドxsetが実行中のXサーバにアクセスする必要がある場合、これは、SuSEconfig--module fontsが実行中のXサーバにアクセスできるシェルから起動されている場合にのみ可能です。これを実行する簡単な方法は、suとrootパスワードを入力して、root パーミッションを取得することです。suによってXサーバを起動したユーザのアクセス許可がrootシェルに転送されます。フォントが正しくインストールされ、X11コアフォントシステムを介して使用可能かどうか検査するには、コマンドxlsfontsを使用して、すべての使用可能なフォントのリストを表示します。
デフォルトでは、SUSE Linux Enterprise DesktopはUTF-8ロケールを使用します。そのため、Unicodeフォントを使用するようにします(xlsfontsの出力中でiso10646-1で終了するフォント名)。使用可能なすべてのUnicodeフォントは、xlsfonts| grep iso10646-1コマンドでリストを表示できます。SUSE Linux Enterprise Desktopで使用可能なほとんどすべてのUnicodeフォントには、少なくともヨーロッパ言語に必要なグリフが含まれています(以前はiso-8859-*としてエンコードされていました)。
最初から、Xftのプログラムは、アンチエイリアスを含むスケーラブルフォントが適切にサポートされるようにしています。Xftが使用された場合、フォントは、X11コアフォントシステムにおけるXサーバではなく、そのフォントを使用するアプリケーションによってレンダリングされます。このようにすると、それぞれのアプリケーションは実際のフォントファイルにアクセスでき、グリフのレンダリング方法を完全に制御できます。これが、多数の言語においてテキストを正しく表示するための基本となっています。フォントファイルに直接アクセスできることは、印刷のためにフォントを組み込んで、画面出力と同じ印刷出力を得るのに役立ちます。
SUSE Linux Enterprise Desktopでは、2種類のデスクトップ環境(KDEとGNOME、Mozilla)、Mozilla、および他の多くのアプリケーションが、すでにXftをデフォルトで使用しています。そのため、Xftはすでに、古いX11コアフォントシステムよりも多くのアプリケーションで使用されています。
Xftは、fontconfigライブラリを使ってフォントを検索し、フォントのレンダリング方法を制御します。fontconfigのプロパティは、グローバルな設定ファイル/etc/fonts/fonts.confによって制御されます。特別設定は、/etc/fonts/local.confおよびユーザ固有の設定ファイル~/.fonts.confに追加する必要があります。これらのfontconfig設定ファイルはどちらも、以下の行で始まっていなればなりません。
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>
さらに、以下の行で終っていなければなりません。
</fontconfig>
フォントを検索するためのディレクトリを追加するには、以下のような行を付加します。
<dir>/usr/local/share/fonts/</dir>
ただし、これは通常、必要ありません。デフォルトで、ユーザ固有のディレクトリ~/.fontsは、すでに/etc/fonts/fonts.confに入っています。その結果、追加のフォントをインストールするには、それらのフォントを ~/.fontsにコピーするだけです。
また、フォントの見栄えを制御する規則を導入することもできます。例えば、次のように入力して、すべてのフォントについてアンチエイリアスを無効にします。
<match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>
あるいは次のように入力します。
<match target="font"> <test name="family"> <string>Luxi Mono</string> <string>Luxi Sans</string> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>
この場合、特定のフォントのアンチエイリアスが無効になります。
デフォルトで、ほとんどのアプリケーションは、フォント名のsans-serif (または等価のsans)、serif、あるいはmonospaceを使用します。これらは、実際のフォントではなく、言語設定に応じて適切なフォントに解決されるエイリアスにすぎません。
ユーザは、規則を~/.fonts.confファイルに追加して、それらのエイリアスを簡単に好みのフォントに変換できます。
<alias> <family>sans-serif</family> <prefer> <family>FreeSans</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>FreeSerif</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>FreeMono</family> </prefer> </alias>
ほとんどすべてのアプリケーションで、これらのエイリアスがデフォルトで使用されるので、システム全体が影響を受けます。そのため、個々のアプリケーションでフォント設定を変更しなくても、ほとんどどこででも好みのフォントを簡単に使用できます。
fc-listを使用して、どのフォントがインストールされており、使用可能になっているか調べます。たとえば、fc-listコマンドを実行すると、すべてのフォントのリストが表示されます。使用可能なスケーラブルフォント(:scalable=true)のうち、どのフォントがHebrew (:lang=he)に必要なすべてのグリフ、それらのフォント名(family)、それらのスタイル(style)、それらの幅(weight)、およびフォントを含むファイルの名前を含んでいるか調べるには、次のコマンドを入力します。
fc-list ":lang=he:scalable=true" family style weight
上記のコマンドの出力は、以下のようになります。
Lucida Sans:style=Demibold:weight=200 DejaVu Sans:style=Bold Oblique:weight=200 Lucida Sans Typewriter:style=Bold:weight=200 DejaVu Sans:style=Oblique:weight=80 Lucida Sans Typewriter:style=Regular:weight=80 DejaVu Sans:style=Book:weight=80 DejaVu Sans:style=Bold:weight=200 Lucida Sans:style=Regular:weight=80
fc-listで調べることができる重要なパラメータ:
表14.2 fc-listのパラメータ¶
|
パラメータ |
意味と有効な値 |
|---|---|
|
|
フォントファミリの名前。たとえば、 |
|
|
フォントメーカ。たとえば、 |
|
|
フォントスタイル。たとえば、 |
|
|
フォントがサポートする言語。たとえば、ドイツ語には |
|
|
フォント幅。たとえば、通常では |
|
|
スラント。通常、なしでは |
|
|
フォントを含むファイルの名前。 |
|
|
アウトラインフォントでは |
|
|
スケーラブルフォントでは |
|
|
ビットマップフォントでは |
|
|
ピクセル単位でのフォントサイズ。fc-listとの関連で、このオプションはビットマップフォントでのみ有効。 |
X11に関する詳細情報を入手するには、xorg-x11-docおよびhowtoenhパッケージをインストールしてください。X11開発の詳細情報は、プロジェクトのホームページhttp://www.x.orgで参照できます。
パッケージxorg-x11-driver-videoで配布されるドライバの大半については、マニュアルページに詳細が記載されてます。たとえば、nvドライバを使用する場合は、man 4 nvでドライバの詳細を参照できます。
サードパーティーのドライバ情報は、/usr/share/doc/packages/<package_name>に記載されています。たとえば、x11-video-nvidiaG01の場合、パッケージのインストール後は、/usr/share/doc/packages/x11-video-nvidiaG01でマニュアルを参照できます。