# X リソース

あらゆる X アプリケーションには、調節可能なリソースがたくさんあります。このプログラムも例外ではありません。しかしながら、私は標準的習慣に従っていないので、普通のプログラムとはまるきり異なります。申しわけなく思います (少しだけですが)。

X リソースを使用するには、.Xdefaults ファイルにリソースを記述する行を書き並べてから、“$ `xrdb ~/.Xdefaults`”を実行します。例えば:

>     Gdraw.ScreenWidthInches: 14.7
>       Gdraw.GGadget.Popup.Font: 10pt helvetica
>       Gdraw.Background: white
>       fontforge.FontView.FontFamily: Helvetica, GillSans

リソースが“`Gdraw.`”または“`fontforge.`”で始まるときは、このプログラムはその内容を調べます。

`fontforge.FontView.FontFamily`
  フォントビューで、ユーザが編集する各文字の上に表示されるサンプル字形に使用されるフォントファミリー名のリスト。
`fontforge.FontView.SerifFamily`
  フォントビューで、ユーザが編集する各文字の上に表示されるサンプル字形のうち、範囲 U+1D400-U+1D7FF に含まれるスタイル指定つきの異体字のために用いられるフォントファミリー名のリスト。セリフ体のフォントで表示する必要がある文字のための指定です。
`fontforge.FontView.ScriptFamily`
  フォントビューで、ユーザが編集する各文字の上に表示されるサンプル字形のうち、範囲 U+1D400-U+1D7FF に含まれるスタイル指定つきの異体字のために用いられるフォントファミリー名のリスト。スクリプト体のフォントで表示する必要がある文字のための指定です。
`fontforge.FontView.FrakturFamily`
  フォントビューで、ユーザが編集する各文字の上に表示されるサンプル字形のうち、範囲 U+1D400-U+1D7FF に含まれるスタイル指定つきの異体字のために用いられるフォントファミリー名のリスト。フラクトゥールのフォントで表示する必要がある文字のための指定です。
`fontforge.FontView.DoubleStruckFamily`
  フォントビューで、ユーザが編集する各文字の上に表示されるサンプル字形のうち、範囲 U+1D400-U+1D7FF に含まれるスタイル指定つきの異体字のために用いられるフォントファミリー名のリスト。二重線による白抜き文字のフォントで表示する必要がある文字のための指定です。
`fontforge.FontView.SansFamily`
  フォントビューで、ユーザが編集する各文字の上に表示されるサンプル字形のうち、範囲 U+1D400-U+1D7FF に含まれるスタイル指定つきの異体字のために用いられるフォントファミリー名のリスト。サンセリフ体のフォントで表示する必要がある文字のための指定です。
`fontforge.FontView.MonoFamily`
  フォントビューで、ユーザが編集する各文字の上に表示されるサンプル字形のうち、範囲 U+1D400-U+1D7FF に含まれるスタイル指定つきの異体字のために用いられるフォントファミリー名のリスト。等幅フォントで表示する必要がある文字のための指定です。
`fontforge.CharView.InfoFamily`
  アウトラインおよびビットマップの文字ビューで、通知メッセージのために用いられるフォントファミリー名のリスト。
`fontforge.CharView.PointColor`
  アウトライン文字ビューで、曲線上の点・角の点および曲線の開始点を表示するのに用いる色を設定します。
`fontforge.CharView.FirstPointColor`
  輪郭上の最初の点の色を設定します。
`fontforge.CharView.SelectedPointColor`
  アウトライン文字ビューで、現在選択中の点を表示するのに用いる色を設定します。
`fontforge.CharView.SelectedPointWidth`
  アウトライン文字ビューで、現在選択中の点を表示するときの線の太さを設定します。
`fontforge.CharView.ExtremePointColor`
  座標値が最大・最小となる位置を表す点の色を設定します。
  変曲点にあたる場所を示す色を設定します。
`fontforge.CharView.NextCPColor`
  「次の」制御点を表示するのに用いる色を設定します。
`fontforge.CharView.PrevCPColor`
  「前の」制御点を表示するのに用いる色を設定します。
`fontforge.CharView.SelectedCPColor`
  現在選択中の制御点を表示するのに用いる色を設定します。
`fontforge.CharView.CoordinateLineColor`
  座標軸を表示するのに用いる色を設定します。
`fontforge.CharView.WidthColor`
  送り幅を表す線を表示するのに用いる色を設定します。
`fontforge.CharView.WidthSelColor`
  送り幅が表す線が選択中のとき、それを表示するのに用いる色を設定します。
`fontforge.CharView.GridFitWidthColor`
  送り幅に対していちどグリッド合わせを行った後の線を表示するのに用いる色を設定します (`表示(V)`→`グリッド合わせを表示(W)...` が有効な場合)
`fontforge.CharView.LigatureCaretColor`
  合字のキャレット位置を表す線を表示するのに用いる色を設定します。
`fontforge.CharView.RasterColor`
  ラスタライズしたビットマップの各ピクセルを表示するのに用いる色を設定します (`表示(V)`→`グリッド合わせを表示(W)...` または `ヒント(I)`→`デバッグ(D)...` が有効な場合)
`fontforge.CharView.RasterNewColor`
  ラスタライズしたビットマップのうち、新しく塗りつぶされた各ピクセルを表示するのに用いる色を設定します (`ヒント(I)`→`デバッグ(D)...` が有効な場合)
`fontforge.CharView.RasterOldColor`
  ラスタライズしたビットマップのうち、塗りつぶさないように変更された各ピクセルを表示するのに用いる色を設定します (`ヒント(I)`→`デバッグ(D)...` が有効な場合)
`fontforge.CharView.RasterGridColor`
  ピクセルのグリッドを表示するのに用いる色を設定します (`表示(V)`→`グリッド合わせを表示(W)...` または `ヒント(I)`→`デバッグ(D)...` が有効な場合)
`fontforge.CharView.RasterDarkColor`
  アンチエイリアス表示のデバッグを行うとき、最も暗いピクセルに使用する色を設定します。その他のピクセルの色はこの色と背景色の間で補間されます。
`fontforge.CharView.ItalicCoordColor`
  イタリック体のフォントに合わせて横書き用メトリックを表す各種の線が傾いているとき、それらを表示するのに用いる色を設定します。
`fontforge.CharView.MetricsLabelColor`
  メトリックを表す線につけるラベルに用いる文字色を設定します。
`fontforge.CharView.HintLabelColor`
  ヒントを表す線 (および BlueValue の線) につけるラベルに用いる文字色を設定します。
`fontforge.CharView.BlueValuesStippledCol`
  BlueValues と OtherBlues の領域を塗りつぶす色を設定します。
`fontforge.CharView.FamilyBlueStippledColor`
  FamilyBlueValues と FamilyOtherBlues の領域を塗りつぶす色を設定します。
`fontforge.CharView.MDHintColor`
  最小距離ヒントを表示するのに用いる色を設定します。
`fontforge.CharView.DHintColor`
  斜行ヒントを表示するのに用いる色を設定します。
`fontforge.CharView.HHintColor`
  水平ステムヒントを表示するのに用いる色を設定します。
`fontforge.CharView.VHintColor`
  垂直ステムヒントを表示するのに用いる色を設定します。
`fontforge.CharView.ConflictHintColor`
  ヒント同士が相互に矛盾しているときに、それらのヒントを表示するのに用いる色を設定します。
`fontforge.CharView.HHintActiveColor`
  水平ステムヒントが `ヒントを確認(R)` ダイアログで有効になっているときに、そのヒントを表示するのに用いる色を設定します。
`fontforge.CharView.VHintActiveColor`
  垂直ステムヒントが `ヒントを確認(R)` ダイアログで有効になっているときに、そのヒントを表示するのに用いる色を設定します。
`fontforge.CharView.HFlexHintColor`
  水平 flex ヒントの周りの暈を表示するのに用いる色を設定します。
`fontforge.CharView.VFlexHintColor`
  垂直 flex ヒントの周りの暈を表示するのに用いる色を設定します。
`fontforge.CharView.AnchorColor`
  アンカーポイントを表示するのに用いる色を設定します。
`fontforge.CharView.TemplateOutlineColor`
  テンプレートのアウトラインを表示するのに用いる色を設定します (現在使われていません)
`fontforge.CharView.OldOutlineColor`
  (反転・回転・拡大/縮小などの) 変形ツールを用いてスプラインの集まりを変形している途中で、オリジナルのスプラインを表示する色を設定します。
`fontforge.CharView.TransformOriginColor`
  現在の変換の原点を表示するのに用いる色を設定します。
`fontforge.CharView.GuideOutlineColor`
  ガイドレイヤに含まれるアウトラインを表示するのに用いる色を設定します。
`fontforge.CharView.GridFitOutlineColor`
  グリッド合わせを適用済みのアウトラインを表示するのに用いる色を設定します (これは背面レイヤに置かれるので、おそらく BackgroundOutlineColor と同じにするべきでしょう)
`fontforge.CharView.BackgroundOutlineColor`
  背面レイヤのアウトラインを表示するのに用いる色を設定します。
`fontforge.CharView.ForegroundOutlineColor`
  前面レイヤのアウトラインを表示するのに用いる色を設定します。
`fontforge.CharView.BackgroundImageColor`
  背面レイヤに置いた画像を表示するのに用いる色を設定します。
`fontforge.CharView.FillColor`
  文字の塗りつぶし表示に用いる色を設定します。
`fontforge.CharView.TraceColor`
  フリーハンドツールの描線の表示に用いる色を設定します。
`fontforge.DVRaster.Background`
  デバッガのラスタウィンドウ内の背景色を設定します。
`Gdraw.ScreenWidthCentimeters`
  1 個の実数値 (センチメートル単位) です。
  X は一般的には画面の物理幅を知りません (知っているのは論理幅、つまり幅のピクセル数です)。Gdraw の内部はピクセルではなくポイントに基づいているので、X のスクリーン幅の知識に基づいたときには小さすぎたり大きすぎたりするフォントを選んでしまう事があります。
`Gdraw.ScreenWidthInches`
  1 個の実数値 (インチ単位) です。
  上と同じですが、インチ単位で計る点が異なります。
`Gdraw.ScreenWidthPixels`
  1 個の整数値 (ピクセル単位) です。
  X が仮想スクリーンを作成したときには、Gdraw はスクリーン上に存在する実際のピクセル数を知ることができません。この場合も、ポイント数の計算結果が狂った値となるでしょう。
`Gdraw.ScreenHeightPixels`
  1 個の整数値 (ピクセル単位) です。
  X が仮想スクリーンを作成したときには、Gdraw はスクリーン上に存在する実際のピクセル数を知ることができません。この値はポイント数の計算には使用されません。
`Gdraw.Depth`
  1 個の整数値 (1, 8, 16, 32 のどれか) です。
  これを使うことにより、デフォルトとは異なる色深度を使用することができます。すべてのサーバがすべての色深度をサポートしているわけではありません。指定された深度と一致するビジュアルが見つからないときには、FontForge はデフォルトの色深度を使用します。
`Gdraw.VisualClass`
  文字列 (“StaticGray”,“GrayScale”,“StaticColor”,“PsuedoColor”,“TrueColor”,“DirectColor”のどれか) です。
  FontForge は指定されたクラスに属するビジュアルを検索します (Depth 引数も指定されている場合は、色深度も一致するものを検索します)。
`Gdraw.Colormap`
  文字列 (“Current”,“Copy”,“Private" のどれか) です。
  8 ビットスクリーン上で FontForge がカラーマップをどう扱うかをこの値で設定することができます。
  - Current ― FontForge は現在のカラーマップに存在する色を割り当てようと試みます。
  - Copy ― FontForge は、割り当て可能な色を割り当ててから、現在のカラーマップをプライベートなコピーに複製します。これにより、FontForge がより多くの範囲の色にアクセスすることができ、(共有カラーマップが変更されないかぎり) FontForge のカラーマップは画面上の他の色と一致することになります。
  - Private ― FontForge はプライベートなカラーマップを割り当て、必要な色を単純に割り当てていきます。これはほぼ確実に共有カラーマップと一致しないでしょう。
`Gdraw.DoDithering`
  1 個の整数値 (0 か 1) です。
  この値を設定すれば、8 ビットスクリーン上での画像のディザリングを行わないようにすることができます。
`Gdraw.MultiClickTime`
  1 個の整数値 (ミリ秒単位) です。
  ダブルクリック (トリプルクリックなども) と見なされるために許される 2 個のクリックの時間差の最大値です。
`Gdraw.MultiClickWiggle`
  1 個の整数値 (ピクセル単位) です。
  2 個のクリックの間にマウスカーソルが動いてもまだダブルクリックと見なされる距離の最大値です。
`Gdraw.TwoButtonFixup`
  1 個の真偽値です。
  Windows のキーボードでは、マウスボタン 2 (中ボタン) をシミュレートするのときに、そのフラグとなる修飾キーを使用します。そのキーが押しながらマウスボタンを押したり放したりしたときは、あたかもボタン 2 を押したり放したりしたかのようにふるまいます。
`Gdraw.DontOpenXDevices`
  1 個の真偽値です。
  FontForge がワコムのグラフィクスタブレットのデバイスを開こうとした時に X が BadDevice エラーを返すという苦情をいろいろな人から受けました。私はこれを再現できておらず、私のシステム上ではうまく開けるのですが、問題が生じる環境でも、このリソースを使用すれば FontForge がタブレットを使おうと試みないように指定することができます。
`Gdraw.MacOSXCmd`
  1 個の真偽値です。
  Mac OS X のユーザはおそらく、メニューの制御に (Control キーではなく) Command (Apple, クローバーの葉) キーを使用しようと考えるでしょう。これが設定されていると、Command キーを内部的に Control キーに変換して扱います。
`Gdraw.Keyboard`
  ibm | mac | sun | ppc | 0 | 1 | 2 | 3
  キーボードのタイプを指定することができます。現在のところこれが関係するのはメニューを生成するときだけです。(異なる OS の制御下の) 異なるキーボードでは、修飾キーのある位置が異なりますので、どのキーボードを使っているかを FontForge が知っていれば、より適切なラベルをもつホットキー表示を行うことができます。
  - ibm | 0
    Control と Alt キーを使用します。
  - mac | 1
    Command と Option キーを使用します (Mac OS/X, Mac キーボード)
  - ppc | 3
    Control と Command キーを使用します (Suse PPC Linxu, Mac キーボード)
  - sun | 2
    Control と Meta キーを使用します。
`Gdraw.SelectionNotifyTimeout`
  1 個の整数 (秒単位) です。
  Gdraw は、1 回の選択に対してリクエストを作成した後、この値で指定した秒数だけ待ちます (例えば、貼りつけを行うとき)。この時間だけ待っても反応がないときには、失敗を通知します。
`Gdraw.Background`
  1 個の色です。
  Gdraw はウィンドウのデフォルトの背景色としてこれを使用します。
`Gdraw.Foreground`
  1 個の色です。
  Gdraw はウィンドウのデフォルトの前景色としてこれを使用します。
`Gdraw.GGadget.Popup.Foreground`
  1 個の色です。
  Gdraw はポップアップ (ツールチップ) ウィンドウの前景色を指定します。
`Gdraw.GGadget.Popup.Background`
  Gdraw はポップアップウィンドウのデフォルトの背景色を指定します。
`Gdraw.GGadget.Popup.Delay`
  1 個の整数 (ミリ秒単位) です。
  ポップアップウィンドウが起動するまでにカーソルを動かさずに置いておく必要なる時間の長さを指定します。
`Gdraw.GGadget.Popup.LifeTime`
  1 個の整数 (ミリ秒単位) です。
  メッセージが表示されている時間の長さを指定します。
`Gdraw.GGadget.Popup.Font`
  1 個のフォントです。
  ポップアップメッセージで使うフォントを指定します。
`Gdraw.GGadget...`
  ボックスに囲まれたすべての ggadget です。以下の情報はすべてのボックスに指定することができます。
  `...Box.BorderType`
    “none”,“box”,“raised”,“lowered”,“engraved”,“embossed”,“double”のどれかです。
    これらの説明については、CSS のマニュアルを参照してください。
  `...Box.BorderShape`
    “rect”,“roundrect”,“ellipse”,“diamond”のどれかです。
    ボックスの基本的な形を記述します (ある種の ggadete は長方形でなければなりません)。
  `...Box.BorderWidth`
    1 個の整数 (ポイント単位)。
    ボックスの境界線の太さをポイント単位 (ピクセル単位ではありません) で指定します。
  `...Box.Padding`
    1 個の整数 (ポイント単位)。
    ボックスの内側と境界線との間のパディングを指定します。
  `...Box.Radius`
    1 個の整数 (ポイント単位)。
    “roundrect”指定時の角の半径を指定します。その他の場合は無視されます。
  `...Box.BorderInner`
    1 個の真偽値 (true, on または 1, false, off または 0) です。
    境界線の内側に黒い線を引くかどうかを指定します。
  `...Box.BorderOuter`
    1 個の真偽値 (true, on または 1, false, off または 0) です。
    境界線の外側に黒い線を引くかどうかを指定します。
  `...Box.ActiveInner`
    1 個の真偽値 (true, on または 1, false, off または 0) です。
    ガジェットが有効なときに境界線の内側に黄色い線を引くかどうかを指定します (まだ、すべてのガジェットがこれをサポートしているわけではありません)。
  `...Box.DoDepressedBackground`
    1 個の真偽値 (true, on または 1, false, off または 0) です。
    ボタンが押されているときの背景色を変更します。
  `...Box.BorderBrightest`
    1 個の色 です。
    境界線の最も明るい縁 (通常は左の縁) の色を指定します
  `...Box.BorderBrighter`
    1 個の色 です。
    境界線の 2 番目に明るい縁 (通常は上の縁) の色を指定します
  `...Box.BorderDarkest`
    1 個の色 です。
    境界線の最も暗い縁 (通常は右の縁) の色を指定します
  `...Box.BorderDarker`
    1 個の色 です。
    境界線の 2 番目に暗い縁 (通常は下の縁) の色を指定します
  `...Box.NormalBackground`
    1 個の色 です。
    (使用不可能になっておらず、押下されていない) 通常の背景に用いる色です。
  `...Box.NormalForeground`
    1 個の色 です。
    (使用不可能になっていない) 通常の前景に用いる色です。
  `...Box.DisabledBackground`
    1 個の色 です。
    使用不可能になっている背景に用いる色です。
  `...Box.DisabledForeground`
    1 個の色 です。
    使用不可能になっている前景に用いる色です。
  `...Box.ActiveBorder`
    1 個の色 です。
    ActiveInner の境界に用いる色です。
  `...Box.PressedBackground`
    1 個の色 です。
    押下された背景に用いる色です。
  `...Font`
    1 個のフォントです。
    Gdraw ガジェットのデフォルトフォントを指定します。
`Gdraw.GButton...
Gdraw.GLabel...
Gdraw.GRadio...
Gdraw.GCheckBox...
Gdraw.GTextField...
Gdraw.GList...
Gdraw.GScrollBar...
Gdraw.GScrollBarThumb...
Gdraw.GGroup...
Gdraw.GLine...
Gdraw.GMenu...
Gdraw.GMenuBar...
Gdraw.GTabSet...`
  上と同様です。
  ボックス、フォント、色などを、この特定のタイプの Gdraw ガジェットに対して指定します。
`Gdraw.GScrollBar.Width`
  1 個の整数 (ポイント単位) です。
  スクロールバーの幅をポイント単位で指定します (水平スクロールバーでは、高さの指定になります)。
`Gdraw.GMenu.Grab`
  1 個の真偽値です。
  メニューがポインタを占有するかどうかを制御します。これを停止するとデバッグがやりやすくなります。デフォルトでは、占有を行います。
`Gdraw.GWidget.BrokenPalettes`
  1 個の真偽値です。
  多くのウィンドウマネージャでは、パレットコードは動作しません (それらはメニューからフォーカスを横取りしたり、メインウィンドウを正しく記憶していなかったりします…)。動作しないコードを停止させるには、このリソースを使用してください。結果は最適ではありませんが、機能するでしょう (これは現在、FontForge には無関係です)。
...

色
  色は以下のいずれかによって指定することができます:
  - rgb(r%,g%,b%)
    ここで r, g, b は 0% から 100% の間の実数値です。
  - r g b
    ここで r, g, b は 0 から 255 までの整数値です。
  - #rgb
    ここで r, g, b は 0 から 15 (0xf) までの 1 桁の 16 進数です。
  - #rrggbb
    ここで rr, gg, bb は 0x00 から 0xff までの 16 進数です。
  - #rrrrggggbbbb
    ここで rrrr, gggg, bbbb は 0x0000 から 0xffff までの 16 進数です。
  - またはネット上で使用可能な色名 (red, green, blue, cyan, magenta, yellow, white, black, maroon, olive, navy, purple, lime, aqua, teal, fuchsia, silver) のうちの 1 つ。
フォント
  フォントは以下のようにして指定可能です: <太さ> <傾き> <ポイントサイズ> <ファミリー名>
  (順序がちょっと変なことは承知の上ですが、これは CSS で使われているのと同じです)。
  - <太さ> は以下のいずれかです:
    - 指定なし ― フォントはボールド体ではない
    - bold ― フォントはボールド体である
    - 1 個の数値 ― (0 〜999), そのフォントがどの程度太くあるべきかの何らかの考えを示す整数値。200 なら細字フォント、400 は通常フォント、700 がボールド体のフォントで、999 なら超極太フォントとなるでしょう。
  - <傾き> は以下のいずれかです:
    - 指定なし ― フォントはイタリック体ではない
    - italic ― フォントはイタリック体である
    - oblique ― フォントはオブリーク体 (italic)である
  - <ポイントサイズ> は以下のいずれかです:
    - 指定なし ― デフォルトのポイントサイズが選ばれます。
    - 数値と、その後の“pt”― ポイントサイズを指定します。

  例

  - bold 14pt helvetica
    14 ポイントの Helvetica Bold
  - italic 10pt times
    10 ポイントの Times Italic

## キーボードとマウス

FontForge は、キーボードには Control キーと、Meta キーの何らかの等価物があることを仮定しています。FontForge は 3 ボタンマウスで最もよく操作することができます。

今日のほとんどすべてのキーボードには、必要な修飾キーがありますが、どのキーが使用されるかはキーボードと OS に依存します (例えば、XDarwin と Suse Linux は、Mac キーボードで極めて異なる修飾キーを使っています)。通常は、これはメニュー (とニモニック) でしか意味をもちません。FontForge はコンパイルされた環境からキーボードを推測します。しかし、X ではこれは常に適切なわけではありません。そのために上で説明した“`Gdraw.Keyboard`”リソースを使ってそれを変更できるようになっています (現在のところ、この設定はメニュー内のホットキー表示のラベルを制御するに留まっています)。

マウスについてはより問題は深刻です。PC では我々は通常 2 ボタンマウスを使い、Mac では 1 ボタンマウスを使います。PC 上で実行される多くの Linux では、マウスボタンを左右のボタンを同時に押すことによりシミュレートできるオプションがあります。FontForge では、どちらかのマウスボタンを押すときに、同時に Super キー (通常は、Windows の旗印が表示されているキーがそれにあたります) を押すことによってもシミュレートすることができます。

Mac では 3 ボタンマウスをシミュレートするよい方法が見つかりません……。

― 前 ― 目次 ― 次 ―