Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ twm(1) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

X(1)

Xserver(1)

xdm(1)

xrdb(1)

TWM(1)  —  NEWS-OS Programmer’s Manual

名称

twm - X Window System のタブウィンドウマネージャ

形式

twm [-display dpy] [-s] [-f initfile] [-v]

解説

twm プログラムは X Window System のウィンドウマネージャです。 twm では、タイトルバー、 ウィンドウの形状の管理、 各種のアイコン管理、ユーザ定義のマクロ機能、 クリックタイプおよびポインタ形式のキーボードフォーカス、 およびユーザによるキーやマウスボタンへの 機能の割り当て (バインディング) などの機能があります。

通常このプログラムはユーザのセッションマネージャまたはスタートアップスクリプトによって開始されます。 セッションマネージャを使わずに xdm(1) または xinit(1) から開始すると、ふつう twm は 最後のクライアントとしてフォアグラウンドで実行されます。 この方法で実行すると、 twm から出たときに、 セッションを終了させます。 (ログアウト)

デフォルトでは、 アプリケーションウィンドウは、上部にタイトルバー、 周囲に専用のボーダを持つ、“フレーム”に囲まれています。 タイトルバーには、ウィンドウ名、 キーボード入力を受け付けているときにハイライトされる矩形領域、 “タイトルボタン”と呼ばれる機能ボックスが左右に表示されます。

タイトルボタン上のマウスボタン1 (xmodmap で変更されない限り、 左端のボタン) を押すと、 ボタンに関する機能を呼ぶことになります。 デフォルト設定のときには、 左側のタイトルボタン (小さな X のように見えます) をクリック (押してからすぐに離す) するとウィンドウがアイコン化されます。 逆に、アイコンあるいは アイコンマネージャのエントリをクリックすることで、元のウィンドウに戻ります。
 (変数 ShowIconManager および関数 f.showiconmgr を参照)

ウィンドウのサイズを変えるときには、 右側のタイトルボタン (四角形が重なったように見える) を押し、 ポインタを動かして (ドラッグして) ウィンドウの外枠が望む大きさに なったところで離します。 同様にして、ウィンドウを移動するときには、 タイトルバーまたは反転している部分を押しながら望む位置に移動させ、 離します。 タイトルまたは反転部分をクリックすることでウィンドウはその位置で前面に出ます。

新しくウィンドウを生成するとき、 twm はサイズや位置の情報について、ユーザのリクエスト (通常、コマンドラインの引数 -geometry あるいは個々のアプリケーション用のリソースによる) を優先します 。 ユーザのリクエストがない場合は、 ウィンドウのデフォルトサイズの外枠、 タイトルバー、 3×3のマス目にウィンドウを分ける線が表示され、ポインタに連動します。 ボタン1をクリックすると、ウィンドウは デフォルトサイズでその位置に置かれます。。 ボタン2 (通常では真ん中のマウスボタン) を押しながら 外枠をドラッグする (引っ張る) と、 ウィンドウの位置はそのままで、 前述したように大きさを変更できます。 ボタン3 (通常では右端のマウスボタン) をクリックすると、 ウィンドウの位置はそのままで、 スクリーンの下辺までいっぱいに広げることができます。

オプション

Twm では、 以下のオプションをコマンドラインに使用できます。

−display dpy
X サーバを指定します。

−s デフォルトスクリーン (−display オプションまたは DISPLAY 環境変数で指定される) だけが扱われることを示します。 デフォルトの場合、 twm はディスプレイ上の全てのスクリーンを扱います。

−f filename
スタートアップファイルを指定します。 デフォルトの場合、 twm はユーザのホームディレクトリの .twmrc.num (num は スクリーン番号) あるいは .twmrc を 探します。

−v 予期せぬ X Error イベントを受信した場合に、 常にエラーメッセージを印刷するよう、twm に指示します。 このオプションはアプリケーションプログラムのデバッグ作業の際には有効ですが、 通常使用時には勧められません。

カスタマイゼーション

以下のスタートアップファイルを設定することで、 twm のさまざまな働きや特徴をコントロールできます。
 (twm 起動時に扱われるスクリーン毎の順序で探されます)

$HOME/.twmrc.screennumber
screennumber は前述のスクリーン番号
 (たとえば DISPLAY環境変数の host:displaynum.screennum の最後の数字) を表す小さな正の番号 (たとえば 0 や 1 など) で、 ディスプレイのスクリーンを指定するのに使われます。 これによって、ディスプレイに対して、 いろいろなタイプのスクリーンをいくつも指定できます。

$HOME/.twmrc
各ユーザのスタートアップファイルの名称。

/usr/lib/X11/twm/system.twmrc
上記2つのファイルのどちらもない場合、 twm はデフォルトとしてこのファイルを見ます。 これは通常、初心者ユーザのために、便利なメニューや扱い易い構成を提供する目的で、システム管理者によって作成されます。

スタートアップファイルがない場合、 twm は上記の組み込みのデフォルト値を使用します。 ビットマップファイルを探すときに twm が使用するリソースは、 ディレクトリをコロンで区切ったリストである bitmapFilePath のみです。
 (詳しくは、Athena Widgets マニュアルおよび xrdb(1) を参照)

Twm のスタートアップファイルは論理的に、 変数 (Variables)、バインディング (Bindings)、 メニュー (Menus) の3つの記述に分けられます。 変数部は最初になければならず、 フォント、色、カーソル、ボーダ幅、アイコンとウィンドウの配置、 反転動作、オートレイズ (ウィンドウが自動的に前面に出る機能)、 タイトルバーのレイアウト、変形、 アイコンマネージャの使用などについて記述されます。 2番目には通常バインディング部があり、 ウィンドウ、アイコン、タイトル、およびフレーム上で キーボードあるいはマウスボタンが押されたときに呼ばれる機能が記述されます。 メニュー部では、 ユーザ定義のメニュー (呼び出したい関数あるいは実行したいコマンドを保持する) を提供します。

変数名およびキーワードは大文字小文字を区別しません (case-insensitive) 。 文字列は必ずダブルクォーテーションマークで囲まれ (例: "blue")、大文字小文字は区別されます (case-sensitive) 。文字列中以外の場所にポンドサイン (#) があると、 その行のそれ以降の部分はコメントとして扱われます。

変数

twm のユーザインターフェース部分の特徴の多くは、 ユーザのスタートアップファイルで設定される変数によってコントロールできます。 いくつかのオプションは、単にそのキーワードがあるかないかによって有効あるいは無効になります。 その他のオプションではキーワード、数値、文字列、 あるいはそれらのリストが必要です。

リストは大括弧 { } によって囲まれ、ふつう空白または改行によって分けられます。 以下に例を示します。

AutoRaise { "emacs" "XTerm" "Xmh" }

or

AutoRaise
{
"emacs"
"XTerm"
"Xmh"
}

ウィンドウを表す文字列のリストを保持する変数が 検索された場合 (例えば上の例で、オートレイズされる ウィンドウを決める場合など) 、 文字列がウィンドウ名 (WM_NAME ウィンドウ属性によって与えられる) リソース名またはクラス名 (WM_CLASS ウィンドウ属性によって与えられる) に 対して case-sensitive なプリフィックスであれば、 そのウィンドウは該当するものとされます。 上の例であれば、 “emacs”という名前のウィンドウは、 xterm (クラスが“XTerm”である) あるいは xmh ウィンドウ (クラスが “Xmh”である)などと同様に、 オートレイズ機能が有効になります。

ファイル名 (後述の Pixmaps、Cursors、および IconDirectory を参照) として解釈される文字列引数は、 最初の文字がチルド記号 (~) であれば、 ユーザディレクトリ (環境変数 HOME で指定される) となります。 最初の文字がコロン (:) であれば、 その名前は、次のようなデフォルトのタイトルバーシンボルを生成するための 内部ビットマップを参照するものと 見なされます — :xlogo または :iconify
 (両者ともアイコン化ボタンに使われる X を表す) 、:resize
 (サイズ変更のボタンに使われる重なった四角形) :question
 (存在しないビットマップファイルに使用されるクエスチョンマーク) 。

以下の変数は twm のスタートアップファイルの 先頭部分で指定されます。 win-list は、 ウィンドウ名プリフィックス文字列のリストを表します。 カギ括弧 [ ] 内に示した引数はオプションです。

AutoRaise { win-list }
win-list で指定したウィンドウ内にポインタが入ったときに、 そのウィンドウが 自動的に表に出るように指定します (オートレイズ)。 この動作は 関数 f.autoraise を使えば、 個々のウィンドウごとに相互に有効、 無効を設定できます。

AutoRelativeResize
この変数はウィンドウのサイズを変更する際
 (ポインタボタン2で最初にサイズを決める場合 あるいはサイズ変更の場合) に、 ポインタがウィンドウの端に掛からなくてもリサイズするよう指示します。 ポインタが移動した量に比例して、近くのエッジまたはコーナーが自動的に移動し、 ウィンドウがリサイズされます。 スクリーンの端を越えてのサイズ変更も可能です。 ポインタがウィンドウの中心にある場合、 あるいはタイトルボタンを押してサイズ変更しようとした場合、 twm はポインタがウィンドウの端を越えるのを待ちます (障害を防ぐ為に) 。 このオプションは、ウィンドウサイズを変更するのにマウスで押して、 引いて、離すといった方法を好むユーザに最適です。

BorderColor string [{ wincolorlist }]
アイコン化していない全てのウィンドウのデフォルトのボーダ色を 指定します。この指定ができるのは、 Color あるいは Monochrome リストの中だけです。 また、オプションの wincolorlist でウィンドウとカラー名の ペアのリストを指示することにより、 特定のタイプのウィンドウに対して個別にボーダ色を指定することができます。 例えば、以下のように指定します。

BorderColor "gray50"
{
"XTerm"    "red"
"xmh"       "green"
}

デフォルトの色は "black" です。

BorderTileBackground string [{ wincolorlist }]
反転していないボーダに使われるグレイパターンの デフォルトのバックグラウンド色を指定します (NoHighlight が設定 されていない場合のみ) 。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの wincolorlist でウィンドウ毎に色を指定できます。 デフォルトの色は "white" です。

BorderTileForeground string [{ wincolorlist }]
反転していないボーダに使われるグレイパターンの デフォルトのバックグラウンド色を指定します (NoHighlight が設定 されていない場合のみ) 。 Color あるいは Monochrome リストの中でのみ指定できます。 デフォルトの色は "black" です。

BorderWidth pixels
ClientBorderWidth が指定されていない場合の、 全てのクライアントウィンドウのフレームを取り囲むボーダの幅を ピクセル値で指定します。 この値は twm (アイコンマネージャなど) で生成されるウィンドウの ボーダサイズを設定するのにも使用されます。 デフォルト値は2です。

ButtonIndent pixels
全ての辺に対してタイトルボタンがインデントする量を指定します。 正の値であれば、 ボタンが目立つようにウィンドウテキストおよび反転部分より小さくなります。 この変数および TitleButtonBorderWidth 変数を0にすると、 タイトルボタンはできる限り大きくなります。 デフォルト値は1です。

ClientBorderWidth
この変数が指定されると、 ウィンドウフレームのボーダ幅は、BorderWidth の値 ではなく、ウィンドウの初期設定値になります。

Color { colors-list }
デフォルトのディスプレイで単なる白黒以上の表示ができる場合、 この変数でカラー割り当てリストを作成することができます。 colors-list は次のカラー変数およびそれらの値によってされます: DefaultBackground、 DefaultForeground、MenuBackground、 MenuForeground、MenuTitleBackground、 MenuTitleForeground、および MenuShadowColor。 以下の変数では、ウィンドウとカラー名のペアリストを与えることで、 ウィンドウごとの色指定が可能です
 (詳細は BorderColor を参照) : BorderColor、 IconManagerHighlight、 BorderTitleBackground、 BorderTitleForeground、 TitleBackground、 TitleForeground、 IconBackground、 IconForeground、 IconBorderColor、 IconManagerBackground、および IconManagerForeground。 例えば、以下の様に指定されます。

Color
{
MenuBackground     "gray50"
MenuForeground     "blue"
BorderColor        "red" { "XTerm" "yellow" }
TitleForeground    "yellow"
TitleBackground    "blue"
}

同一の初期化ファイルがカラーおよびモノクロディスプレイの どちらでも使えるように、 以上のカラー変数全てを Monochrome 変数に対して 指定することもあります。

ConstrainedMoveTime milliseconds
強制的な移動操作を始めるのに必要なマウスボタンのクリック 時間の間隔を指定します。 f.moveを呼び出す際に、ここで指定した時間内でダブルクリックすると、 ウィンドウは水平方向または垂直方向どちらかにしか移動できません。 この値を0に設定すると、 強制移動は不可能になります。 デフォルト値は 400ミリ秒です。

Cursors { cursor-list }
twm がさまざまなポインタカーソルを利用するために使う グリフ (イメージ) を指定します。 それぞれのカーソルは cursor フォントまたは2つのビットマップファイルで 定義することができます。 カーソルフォントの形は次の様に直接指定できます。

cursorname"string"

cursorname は後述のカーソル名のうちの1つです。 string は、ファイル /usr/include/X11/cursorfont.h の中の グリフ名です (プリフィックス“XC_”を除く) 。 カーソルをビットマップで定義する場合は、 以下の形式を代わりに用います。

cursorname"image"   "mask"

文字列 image および mask は、 グリフイメージおよびマスクを bitmap(1) 形式で記述した ファイルの名称を指定します。 ビットマップファイルはアイコンビットマップファイルと同様の形式です。 例としてデフォルトのカーソル定義を以下に示します。

Cursors
{
Frame     "top_left_arrow"
Title     "top_left_arrow"
Icon      "top_left_arrow"
IconMgr   "top_left_arrow"
Move      "fleur"
Resize    "fleur"
Menu      "sb_left_arrow"
Button    "hand2"
Wait      "watch"
Select    "dot"
Destroy   "pirate"
}

DecorateTransients
トランジェントウィンドウ (WM_TRANSIENT_FOR 属性を持っている) にタイトルバーが現れることを示します。 デフォルトでは、トランジェントウィンドウは再生成されません。

DefaultBackground string
サイズ変更およびインフォメーションウィンドウの バックグラウンドの色を指定します。デフォルトは "white" です。

DefaultForeground string
サイズ変更およびインフォメーションウィンドウの フォアグラウンドの色を指定します。デフォルトは "black" です。

DontIconifyByUnmapping { win-list }
IconifyByUnmapping が設定されている場合、ウィンドウをアイコン化 しても、ウィンドウが非表示 (アンマップ) にされるだけで、 アイコンは表示 (マップ) されませんが、 この変数で指定したウィンドウは、アイコンが表示されます。 一部のウィンドウをアイコンによって操作し、 他のウィンドウはアイコンマネージャで操作したいような場合に、 よく使われます。

DontMoveOff
ウィンドウがスクリーンの外へ移動できないことを示します。 f.forcemove 関数によって、 この変数を無効にできます。

DontSqueezeTitle [{ win-list }]
後述する SqueezeTitle とは逆に、 タイトルバーがその最小サイズに圧縮されないことを示します。 オプションのウィンドウリストを与えると、 それらのウィンドウだけが圧縮されません。

ForceIcons
Icons 変数で指定されたアイコンピックスマップが クライアント提供のピックスマップを無効にすることを示します。

FramePadding pixels
タイトルバーの装飾 (ボタンおよびテキスト) とウィンドウフレームの距離を 指定します。 デフォルトは2ピクセルです。

IconBackground string [{ win-list }]
アイコンのバックグラウンドの色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list に ウィンドウ名と色のリストを与えることで、 ウィンドウごとに色を指定できます。 win-list についての詳細は、 BorderColor 変数を参照してください。 デフォルトは "white" です。

IconBorderColor string [{ win-list }]
アイコンウィンドウで使われるボーダの色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list に ウィンドウ名と色のリストを与えることで、 ウィンドウごとに色を指定できます。 win-list についての詳細は、 BorderColor 変数を参照してください。 デフォルトは "black" です。

IconBorderWidth pixels
アイコンウィンドウを取り囲むボーダ幅をピクセル値で指定します。 デフォルトは2です。

IconDirectory string
bitmapFilePath リソースのどのディレクトリにも ビットマップファイルが見つからない場合に、 検索すべきディレクトリを指定します。

IconFont string
アイコン内でアイコン名を表示する際に使うフォントを指定します。 デフォルトは "variable" です。

IconForeground string [{ win-list }]
アイコンを表示する際使用するフォアグラウンドの色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list に ウィンドウ名と色のリストを与えることで、 ウィンドウごとに色を指定できます。 win-list についての詳細は、 BorderColor 変数を参照してください。 デフォルトは "black" です。

IconifyByUnmapping [{ win-list }]
ウィンドウをアイコン化すると、そのウィンドウを非表示にしますが、 その際アイコンは表示しないことを示します。 この場合、ユーザがウィンドウを再表示するには、アイコンマネージャ、 f.warpto 関数、 または TwmWindows メニューを用いることになります。 オプションの win-list を指定した場合、 指定されたウィンドウだけが、 アイコン化してもアイコンが表示されないことになります。 このオプションと IconManagerDontShow オプションの両方が 設定されたウィンドウは、 ユーザスタートアップファイルで TwmWindows メニューに 登録されていない限り、アクセスできなくなります。

IconManagerBackground string [{ win-list }]
アイコンマネージャエントリに使われるバックグラウンドの色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list に ウィンドウ名と色のリストを与えることで、 ウィンドウごとに色を指定できます。 win-list についての詳細は、 BorderColor 変数を参照してください。 デフォルトは "white" です。

IconManagerDontShow [{ win-list }]
この変数を指定すると、アイコンマネージャにウィンドウが表示されません。 オプションの win-list が指定された場合、 指定されたウィンドウだけが表示されません。 この変数は、めったにアイコン化されないウィンドウ
 (xclock や xload のような) が アイコンマネージャ内にスペースを取るのを防ぐのに使われます。

IconManagerFont string
アイコンマネージャエントリを表示する際に使われるフォントを指定します。 デフォルトは "variable" です。

IconManagerForeground string [{ win-list }]
アイコンマネージャエントリを表示する際に使われる フォアグラウンドの色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list に ウィンドウ名と色のリストを与えることで、 ウィンドウごとに色を指定できます。 win-list についての詳細は、 BorderColor 変数を参照してください。 デフォルトは "black" です。

IconManagerGeometry string [ columns ]
アイコンウィンドウマネージャのジオメトリ (位置と大きさ) を指定します。 引数string には、 アイコンマネージャの初期の最大サイズを、標準ジオメトリ形式で指定します。 アイコンマネージャウィンドウは columns 個に分割され、 アイコンマネージャのエントリ数に従ってスケールされます。 カラムからあふれたエントリは、次の行に折り返されます。 デフォルトのカラム数は1です。

IconManagerHighlight string [{ win-list }]
現在フォーカスを持っているアイコンマネージャエントリを ハイライトする際のボーダ色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list に ウィンドウ名と色のリストを与えることで、 ウィンドウごとに色を指定できます。 win-list についての詳細は、 BorderColor 変数を参照してください。 デフォルトは "black" です。

IconManagers { iconmgr-list }
生成するアイコンマネージャのリストを指定します。 iconmgr-list の各項目は、次の形式になります。

"winname" ["iconname"]"geometry" columns

winname はそのアイコンマネージャにエントリされるウィンドウの 名前です。 iconname はそのアイコンマネージャウィンドウのアイコン名です。 geometry は標準ジオメトリ記述、 columns には IconManagerGeometry で説明したように、 そのアイコンマネージャのカラム数が設定されます。 例を挙げます。

IconManagers
{
"XTerm"    "=300x5+800+5"5
"myhost"   "=400x5+100+5"2
}

この例では、名前またはクラスが“XTerm”である クライアントは“XTerm”アイコンマネージャにエントリが作成されます。 クライアントの名前が“myhost”であったなら、 “myhost”アイコンマネージャにエントリが作成されます。

IconManagerShow { win-list }
アイコンマネージャ内に表れるウィンドウのリストを指定します。 変数 IconManagerDontShow と一緒に指定されると、 このリストで指定したウィンドウだけがアイコンマネージャに表示されます。

IconRegion geomstring vgrav hgrav gridwidth gridheight
クライアントによってアイコンの位置が特に指定されていない場合に、 アイコンを配置させるルートウィンドウ上の領域を指定します。 geomstring は、標準ジオメトリ形式の文字列です。 複数の IconRegion 行が指定された場合、 最初の領域がいっぱいになると、 アイコンは次のアイコン領域に置かれます。 引数 vgrav は North または South のどちらかになり、 アイコンがアイコン領域の上の方から置かれてゆくのか、 下の方から置かれるのかをコントロールします。 同様に、引数 hgrav は East または West となり、 左から置かれるか右から置かれるかをコントロールします。 アイコンは、幅 gridwidth ピクセル、高さ gridheight ピクセル の大きさのセルでできたグリッドの中に並べられます。

Icons { win-list }
ウィンドウ名とビットマップファイル名のリストを指定します。 ここで指定したビットマップファイルが、そのウィンドウのアイコンとして 用いられます。 例を挙げます。

Icons
{
"XTerm"    "xterm.icon"
"xfd"      "xfd_icon"
}

“XTerm”に該当し、アイコン化の際にアイコンが表示されるウィンドウは、 “xterm.icon”ファイルのアイコンビットマップを使おうとします。 ForceIcons が指定された場合、 クライアントが自身のアイコンピックスマップを要求しても、 このビットマップが使用されます。

InterpolateMenuColors
色指定されたメニュー項目の間のメニュー項目の色を補間します。 例を挙げます。

Menu "mymenu"
{
"Title"("black":"red")f.title
"Title"    ("black":"red")        f.title
"entry1"                          f.nop
"entry2"                          f.nop
"entry3"   ("white":"green")      f.nop
"entry4"                          f.nop
"entry5"   ("red":"white")        f.nop
}

“entry1”および“entry2”のフォアグラウンド色は 黒と白の間で補間され、バックグラウンド色は赤と緑の間で補間されます。 同様にして、 “entry4”のフォアグラウンド色は赤と白の中間色となり、 バックグラウンドの色は緑と白の中間色になります。

MakeTitle { win-list }
この変数で指定したウィンドウにはタイトルバーが表示されます。 NoTitle がセットされている場合に、特定のウィンドウにタイトルを 表示させるのに使われます。

MaxWindowSize string
ウィンドウの最大サイズを表す幅および高さを持ったジオメトリを指定します。 特にこれはスクリーンのサイズに対してウィンドウを制限するために使います。 デフォルトは "30000x30000" です。

MenuBackground string
メニューのバックグラウンドの色を指定、 Color あるいは Monochrome リストの中でのみ指定できます。 デフォルトは "white" です。

MenuFont string
メニューを表示する際に使うフォントを指定します。 デフォルトは "variable" です。

MenuForeground string
メニューのフォアグラウンドの色を指定、 Color あるいは Monochrome リストの中でのみ指定できます。 デフォルトは "black" です。

MenuShadowColor string
プルダウンメニューの後ろの影の色を指定、 Color あるいは Monochrome リストの中でのみ指定できます。 デフォルトは "black" です。

MenuTitleBackground string
メニューの f.title 項目のバックグラウンドの色を指定、 Color あるいは Monochrome リストの中でのみ指定できます。 デフォルトは "white" です。

MenuTitleForeground string
メニューの f.title 項目のフォアグラウンドの色を指定、 Color あるいは Monochrome リストの中でのみ指定できます。 デフォルトは "black" です。

Monochrome { colors }
スクリーンのデプスが1の場合に、 生成する色割り当てのリストを指定します。 Colors の説明を参照。

MoveDelta pixels
f.move 関数が動作する前に移動すべきポインタのピクセル量を指定します。 関数f.deltastopも参照のこと。 デフォルトのピクセル数は0です。

NoBackingStore
メニューの再描画を最小限にするためのバッキングストアを、 メニューがリクエストしないように指定します。 これはバッキングストアを行うよりも、再描画した方が速いようなサーバで使われます。

NoCaseSensitive
アイコンマネージャで、アイコン名をソートする際に大文字と小文字の区別を 無視することを示します。 このオプションはアイコン名の頭文字を大文字にするアプリケーションで使われます。

NoDefaults
twm がデフォルトのタイトルボタンおよびバインディングを 提供しないことを示します。 このオプションは、スタートアップファイルが完全に新しいバインディング および定義を記述している場合でなければ使えません。

NoGrabServer
メニューをポップアップしたとき、あるいは不透明なウィンドウを移動したときに、 twm がサーバをグラブしないことを示します。

NoHighlight [{ win-list }]
ポインタの位置に追従してボーダがハイライトするのを抑制します。 オプションの win-list が与えられた場合、 指定したウィンドウのみハイライトが禁止されます。 ボーダはハイライト表示の場合、現在の BorderColor で描かれます。 ハイライト表示でない場合は、 現在の BorderTileForeground 色および BorderTileBackground 色を 用いてグレイパターンで描かれます。

NoIconManagers
アイコンマネージャが生成されないことを示します。

NoMenuShadows
メニューに影が付かないことを示します。 これは遅いサーバにおいて、メニューが読みにくくなるという犠牲と引き換えに メニューの描画をスピードアップさせるために使われます。

NoRaiseOnDeiconify
ウィンドウのアイコン化を解除したときに、レイズされない (ウィンドウを 前面に出さない) ようにします。

NoRaiseOnMove
ウィンドウが移動時にレイズされないことを示します。 これは、ウィンドウが互いに下側に隠れたまま移動できるようにするものです。

NoRaiseOnResize
サイズ変更の際にウィンドウがレイズされないようにします。 これは、ウィンドウが互いに下側に隠れたままサイズ変更できるようにするものです。

NoRaiseOnWarp
f.warpto 関数によってポインタがウィンドウに移動する際、 そのウィンドウがレイズされないようにします。 このオプションが設定され、 閉じられたウィンドウにポインタが入った場合、 希望先のウィンドウに行かずにそのまま止ってしまうことになります。
 (f.warpring によって、予期せぬ事態になります。)

NoSaveUnders
メニュー選択後のウィンドウの再描画を最小限にするための セーブアンダーを、メニューがリクエストしないように指定します。 これはセーブアンダーを行うよりも、再描画した方が速いような ディスプレイで使われます。

NoStackMode [{ win-list }]
スタックの順序を換えるクライアントウィンドウのリクエストを無視します。 オプションの win-list が与えられた場合、 指定したウィンドウのリクエストだけが無視されます。 これは、アプリケーションが自分自身を強引にウィンドウスタックの前面に 出そうとするのを阻止するのに使われます。

NoTitle [{ win-list }]
ウィンドウがタイトルバーを持たないことを示します。 オプションの win-list が与えられた場合、 指定されたウィンドウだけがタイトルバーを持ちません。 MakeTitle と組合せて、 特定のウィンドウに強制的にタイトルバーを持たせるのに用います。

NoTitleFocus
ウィンドウにカーソルが入ったときに twm がキーボード入力フォーカスを 設定しないよう指示します。 通常、twm はフォーカスを設定するので、 タイトルバーおよびアイコンマネージャからの フォーカスイベントおよびキーイベントは、アプリケーションに伝えられます。 ポインタを素速く移動させても twm の反応が遅い場合、 入力は新しいウィンドウでなく元々のウィンドウに対して行われる可能性があります。 このオプションは、“入力時差”を防ぎ、 フォーカスイベントに何か問題があるような古いアプリケーションを 利用するのに有効です。

NoTitleHighlight [{ win-list }]
現在入力フォーカスされているウィンドウであることを示すタイトルバーの ハイライト領域を表示しないようにします。 オプションの win-list により、 ハイライト領域を持たないウィンドウを指定することができます。 SqueezeTitle オプションと組合せて使用することで、 タイトルバーに要するスクリーンの領域を大幅に減らすことができます。

OpaqueMove
この変数を指定すると、 f.move 関数によって、ウィンドウの外枠ではなく、ウィンドウそのものを 実際に移動するようになります。 このため、移動先でウィンドウがどう見えるか、ユーザはすぐに確認できます。 普通、このオプションは表示が高速なディスプレイ上で使用されます
 (特に、NoGrabServer が設定されている場合)。

Pixmaps { pixmaps }
さまざまなイメージの形を定義するピックスマップのリストを指定します。 各エントリは、まず設定するピックスマップを示すキーワード、 次にビットマップファイルの名前を表す文字列が続きます。 次のピックスマップが指定されたとします。

Pixmaps
{
TitleHighlight"gray1"
}

TitleHighlight に対するデフォルトは、 点描パターンが用いられます。

RandomPlacement
ウィンドウに特にジオメトリが指定されていない場合に、 ユーザが外枠を動かして位置決めする代わりに、 疑似乱数によって適当な位置にウィンドウを置くようにします。

ResizeFont string
ウィンドウのサイズ変更の際に寸法ウィンドウで使われるフォントを指定します。 デフォルトは "fixed" です。

RestartPreviousState
どのウィンドウをアイコン化し、どのウィンドウを表示したままにするかを 調べるのに、クライアントウィンドウの WM_STATE 属性を使用するよう、 twm に指示します。 1つ前に使われていたウィンドウマネージャが終了する前の スクリーンの状態を、再現させるのに使われます。

ShowIconManager
twm のスタートアップ時に、 アイコンマネージャが表示されることを示します。 アイコンマネージャは、f.showiconmgr 関数を使って、 いつでも呼び出すことができます。

SortIconManager
アイコンマネージャへの登録の際、 新しいウィンドウを単に最後に追加するというのではなく、 アルファベット順に整理することを示します。

SqueezeTitle [{ squeeze-list }]
ウィンドウの上部いっぱいにタイトルバーを広げないで、 タイトルバーに必要以上のスペースを取らせないように、 SHAPE 拡張を使うよう twm に指示します。 オプションの squeeze-list により、 圧縮されたタイトルバーを、ウィンドウ上部のどの位置に表示するか、 コントロールできます。 各エントリは次のような形式をしています。

"name"justificationnumdenom

name はウィンドウ名です。 justification は left、center または right の いずれかです。 num および denom は、タイトルバーがジャスティファイされた 位置からの相対位置を表す比です。 その比は、num (分子) が正の値であれば左から右、 負の値であれば右から左に測られます。 文母が0であれば、 分子はピクセル値を示すことになります。 結果として、 便宜上、比 0/0 は center での 1/2 および right での -1/1 と 同じことになります。例を示します。

SqueezeTitle
{
"XTerm"    left   00
"xterm1"   left   13
"xterm2"   left   23
"oclock"   center00
"emacs"    right  00
}

特定のタイトルを圧縮しないようにするには、 DontSqueezeTitle を使います。

StartIconified [{ win-list }]
クライアントウィンドウがアイコン化された状態を初期状態とし、 ユーザが明示的にアイコン化を解除するまでは、 そのままであることを示します。 オプションの win-list が与えられた場合、 指定されたウィンドウだけがアイコン化状態で始められます。 これは、-iconic コマンドオプションまたはリソースを サポートしないプログラムに有効です。

TitleBackground string [{ win-list }]
タイトルバーで使われるバックグラウンドの色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list により、 ウィンドウごとに色を指定できます。 デフォルトは "white" です。

TitleButtonBorderWidth pixels
タイトルボタンを取り囲むボーダの幅をピクセル値で指定します。 0を指定した場合、ボーダがなくなり、可能な限り多くのスペースを タイトルボタンに割り当てることができます。 デフォルトは1です。

TitleFont string
タイトルバーにウィンドウ名を表示する際のフォントを指定します。 デフォルトは "variable" です。

TitleForeground string [{ win-list }]
タイトルバーで使われるフォアグラウンドの色を指定します。 Color あるいは Monochrome リストの中でのみ指定できます。 オプションの win-list にウィンドウ名と色のリストを与えることで、 ウィンドウごとに色を指定できます。 デフォルトは "black" です。

TitlePadding pixels
タイトルバー内のさまざまなボタン、テキスト、 ハイライト領域の間の距離を指定します。 デフォルトは8ピクセルです。

UnknownIcon string
デフォルトのアイコンとして使用されるビットマップファイルの ファイル名を指定します。 このビットマップは、アイコンのビットマップを提供せず、 Icons リストにもないようなすべてのクライアントの アイコンとして使われます。

UsePPosition string
ユーザが位置を指定しない場合に、 プログラムがリクエストした位置 (WM_NORMAL_HINTS 属性 の PPosition フラグで与えられる) を twm が尊重するかどうか、 を指定します。 引数 string は、次の3つの値のどれかになります。 "off" (デフォルト) は、プログラムが指定する位置を twm が 無視することを示します。 "on" は、その指定された位置を使うことを示します。 そして、"non-zero" は、その指定された位置が (0,0) でなければ、 使うことを示します。 最後のオプションは、従来のツールキットのバグを想定したものです。

WarpCursor [{ win-list }]
ウィンドウのアイコン化が解除されたときに、 ポインタがそのウィンドウに移動することを示します。 オプションの win-list が与えられると、 指定されたウィンドウに対してだけポインタは移動します。

WindowRing { win-list }
関数 f.warpring は、この変数で指定したウィンドウのリストの 中を回ります。

WarpUnmapped
関数 f.warpto によって、 ウィンドウのアイコン化が解除されることを示します。 特にこれは、特定のウィンドウ (xmh のような) がどこにあっても ポップできるような、キーバインディングを作るのに使われます。 デフォルトは f.warpto がアイコン化されたウィンドウを無視するように なっています。

XorValue number
移動やサイズ変更の際、ウィンドウの外枠を描くのに使う値を指定します。 この値は、ユーザのいくかの典型的なスクリーンの内容と排他的論理和を とったときに、ちゃんと識別できる結果を返せるものであるべきです。 この変数を1に設定すれば、 デフォルトのカラーマップ中の似通った色どうしでも、違いがあるなら、 たいていは良い結果が得られます。 デフォルトでは twm は、 グラフィックスのカラーマップの反対側の色を使って外枠を描こうとします。

Zoom [ count ]
アイコン化されるとき、あるいは解除されるとき、いずれの場合にも、 ウィンドウの動きを表現する外枠が表示されることを示します。 オプションの引数 count は、描かれる外枠の数を示します。 デフォルトは8です。

以下の変数に関しては、 フォント割り当ての後で設定しなければなりません。 従って普通は、変数部の最後か、バインディング部の最初に置くのが最適です。

DefaultFunction function
機能が割り当てられていないキーイベントあるいはボタンイベントを受信したときに 実行される関数を指定します。 f.nop、f.beep、 あるいはウィンドウ操作を行うメニューによく用いられます。

WindowFunction function
TwmWindows メニューからウィンドウが選ばれたときに 実行する関数を指定します。 この変数を設定すると、ウィンドウのアイコン化が解除され、前面に出ます。

バインディング

変数が設定された後では、タイトルボタン、キー、 およびマウスボタンに機能を割り当てることができます。 タイトルボタンは左または右側から追加され、指定した順序に従って タイトルバーの中に左から右へ現われます。 キーボタンおよびマウスボタンのバインディングは 任意の順番でかまいません。 タイトルボタンの記述では、ボタンボックスの中で使われるピックスマップの名前と、 そこでマウスが押されたときに呼び出される機能を指定しなければなりません。

LeftTitleButton "bitmapname"= function

または

RightTitleButton "bitmapname"= function

bitmapname は、コロン (:) で始まる適当な名前 (前述) を 用いて、 組み込みのビットマップ (TitleFont に合わせて スケールされる) を参照できます。

キーおよびマウスの記述では、 押されるべきモディファイア、 スクリーン上のポインタの位置、 およびそのとき呼び出される機能を指定しなければなりません。 キーは適当な keysym 名を含んだ文字列として、 ボタンは Button1〜Button5 の予約語で指定します。

"FP1"= modlist : context : function
Button1= modlist : context : function

modlist は、モディファイア名 shift、control、 lock、meta、mod1、mod2、mod3、mod4、 mod5 (それぞれ s、c、l、m、m1、 m2、m3、m4、m5 と省略できます) の任意の 組合せを縦棒 (|) で区切ったものです。 同様に、 context は window、title、icon、root、 frame、iconmgr、またはこれらの頭文字 (iconmgr の 場合は m)、または all を縦棒で区切って 任意に組み合わせたものです。 また、function は、後述の f.予約語 のいずれかです。 例えば、デフォルトのスタートアップファイルでは、次のバインディングが 記述されています。

Button1=: root             : f.menu "TwmWindows"
Button1= m: window | icon: f.function "move-or-lower"
Button2= m: window | icon: f.iconify
Button3= m: window | icon: f.function "move-or-raise"
Button1=: title            : f.function "move-or-raise"
Button2=: title            : f.raiselower
Button1=: icon             : f.function "move-or-iconify"
Button2=: icon             : f.iconify
Button1=: iconmgr         : f.iconify
Button2=: iconmgr         : f.iconify

キーボードからウィンドウを操作したいような場合、 例えば次のように定義するとよいでしょう。

"F1"     =      : all: f.iconify
"F2"     =      : all: f.raiselower
"F3"     =      : all: f.warpring "next"
"F4"     =      : all: f.warpto "xmh"
"F5"     =      : all: f.warpto "emacs"
"F6"     =      : all: f.colormap "next"
"F7"     =      : all: f.colormap "default"
"F20"    =      : all: f.warptoscreen "next"
"Left"   = m    : all: f.backiconmgr
"Right"  = m | s: all: f.forwiconmgr
"Up"     = m    : all: f.upiconmgr
"Down"   = m | s: all: f.downiconmgr

twm では、タイトルバー、メニュー、キー割り当てのセットから 使える便利な機能の他にも、たくさんのウィンドウ操作のプリミティブが 用意されています。 デフォルトが用意されているものは少ないので (NoDefaults が 指定されていないかぎり)、 ほとんどのユーザは、自分がよく行う操作を キーやマウスボタンに割り当てたいと思うでしょう。 そのために twm では、各プリミティブの名称、 より高いレベルのプリミティブを構成するためのユーザ定義関数、 および関数を対話的に選ぶためのメニューを提供しています。

ユーザ定義の関数は、以下の例のように、 f.function をコールしたときに参照される名前、 および実行する他の関数のリストを持っています。

Function "move-or-lower"   { f.move f.deltastop f.lower }
Function "move-or-raise"   { f.move f.deltastop f.raise }
Function "move-or-iconify" { f.move f.deltastop f.iconify }
Function "restore-colormap"{ f.colormap "default" f.lower }

f.function で使われる関数名は、関数の記述にあるのとまったく同じもの でなければなりません。

後述のように、選択されたウィンドウを操作する関数が、 ルートメニューから呼び出される場合、 カーソルが Select カーソルに変わり、 次にマウスボタンで選択したウィンドウに対して機能します。

! stringこれは f.exec string の省略形です。

f.autoraise
選択されたウィンドウの中にポインタが入った場合に、 そのウィンドウを前面に出すかどうかを切り替えます (トグル動作)。 変数 AutoRaise を参照。

f.backiconmgr
カレントのアイコンマネージャ上のポインタを、一つ前のカラムに移動します。 必要に応じて、前の行に戻ります。

f.beepキーボードのベルを鳴らします。

f.bottomzoom
関数 f.fullzoom に似ていますが、 スクリーンの下半分いっぱいにウィンドウを拡げます。

f.circledown
他のウィンドウを前面に出すために、最前面のウィンドウを一番奥に引っ込めます。

f.circleup
他のウィンドウに覆い隠された一番奥のウィンドウを前面に出します。

f.colormap string
ポインタがウィンドウ内にあるときに twm が表示する カラーマップ (ウィンドウ上の WM_COLORMAP_WINDOWS 属性から得られる) を 回転します。 引数 string には "next"、"prev"、 "default" のいずれかを指定します。

f.deiconify
指定したウィンドウのアイコン化を解除します。 ウィンドウがアイコン化されてなければ、何もしません。

f.deleteクライアントアプリケーションが WM_PROTOCOLS 属性を とおして WM_DELETE_WINDOW メッセージを要求していた場合、 指定したウィンドウにこのメッセージを送ります。 アプリケーションは、指定されたウィンドウを除去することで、 このメッセージに応えることになります。 ウィンドウが WM_DELETE_WINDOW メッセージを要求していなければ、 キーボードのベルが鳴り、 他の方法をとるようにユーザに知らせます。

f.deltastop
ポインタが MoveDelta ピクセル以上移動した場合に、 ユーザ定義の関数を中断するように指示します。、 本章の初めにある Function "move-or-raise" の定義例を参照して下さい。

f.destroy
選択されたウィンドウを生成したクライアントへのディスプレイの接続を切るよう、 X サーバに指示します。 暴走したクライアントを消すための最後の手段として使うべきです。

f.downiconmgr
カレントのアイコンマネージャ上のポインタを次の行に移動させます。 必要に応じて同じカラムの先頭に移動します。

f.exec string
引数 string を /bin/sh へ渡し、実行させます。マルチスクリーンモードでは、 string にディスプレイ引数を含めずに新しい X クライアントを起動すると、 そのクライアントはこの関数が呼び出されたスクリーンの上に現われます。

f.focus指定したウィンドウに対するサーバのキーボードフォーカスを切り替えます。 必要に応じて、フォーカスルールをポインタ駆動式から変更します。 指定ウィンドウがすでにフォーカスされていれば、f.unfocusを実行します。

f.forcemove
変数 DontMoveOff を無視することを除けば、f.move と同様です。

f.forwiconmgr
カレントのアイコンマネージャ上のポインタを次のカラムへ移動します。 必要に応じて次の行の先頭に移動します。

f.fullzoom
指定したウィンドウのサイズをディスプレイいっぱいに拡げます。 ウィンドウがすでにいっぱいに拡げられていれば、 元のサイズに戻します。

f.function string
引数 string で指定した名前のユーザ定義関数を実行します。

f.hbzoom
f.bottomzoom と同じです。

f.hideiconmgr
アイコンマネージャを非表示にします。

f.horizoom
選択されたウィンドウがディスプレイの幅いっぱいに拡大される点以外は、 関数f.zoom と同様です。

f.htzoom
f.topzoom と同じです。

f.hzoomf.horizoom と同じです。

f.iconify
選択したウィンドウをアイコン化する、 あるいはアイコンをウィンドウにする関数です。

f.identify
選択したウィンドウのジオメトリと名前を表示します。 表示を消すには、ウィンドウ内でマウスボタンをクリックするかキーを押します。

f.lefticonmgr
f.backiconmgr と同様ですが、左端で止まり、前の行に戻りません。

f.leftzoom
f.bottomzoom と同様ですが、 選択したウィンドウをディスプレイの左半分だけに拡げます。

f.lower選択したウィンドウを一番奥に引っ込めます。

f.menu string
引数 string で指定されたメニューを呼び出します。 f.menu を再帰的に呼び出すと、階層メニューが実現できます。

f.moveこの関数は、 マウスボタンが離されるまで、選択したウィンドウ の外枠 (変数 OpaqueMove が設定されている場合はそのウィンドウ自体) を ドラッグします。 ConstrainedMoveTime で与えられた数ミリ秒以内にダブルクリックすると、 ポインタはウィンドウの中心に移動し、 ポインタがグリッド上のどの線と交わったかによって、縦または横に移動が 限定されます。 移動を中止する場合には、 最初に押したボタンを離す前に別のボタンを押します。

f.nexticonmgr
カレントのあるいはそれに続くスクリーン上のウィンドウを持つ、 次のアイコンマネージャへポインタを移動します。

f.nopこの関数は何も行いません。 変数 DefaultFunction あるいは WindowFunction と共に使われたり、 メニューに空白行を挿入するのに使われます。

f.previconmgr
カレントのあるいはそれより前のスクリーン上のウィンドウを持つ、 前のアイコンマネージャへポインタを移動します。

f.quitウィンドウのボーダを消去し、終了します。 もし twm が、xdm から起動された最初のクライアントであれば、 サーバをリセットすることになります。

f.raiseこの関数は、 指定ウィンドウを表に出します。

f.raiselower
指定したウィンドウが他のウィンドウの後ろにあれば、 そのウィンドウを最前面に出します。 そうでなければ、そのウィンドウを最後部に引っ込めます。

f.refresh
全てのウィンドウを再描画させます。

f.resize指定ウィンドウの外枠を表示させます。 ポインタがボーダに掛かると (AutoRelativeResize が設定してある場合は 掛からなくても)、ボタンを離すまで、 外枠が輪ゴムのようになり、ポインタに従って大きさが変わります。 サイズ変更を中止するには、最初のボタンを離す前に別のボタンを押します。

f.restart
twmを kill し、再スタートします。

f.righticonmgr
f.nexticonmgr と同様ですが、右端で止まり、次の行に折り返しません。

f.rightzoom
関数f.bottomzoom と同様ですが、 選択したウィンドウをディスプレイの右半分だけに拡げます。

f.saveyourself
指定したウィンドウが、その WM_PROTOCOLS 属性の 中で WM_SAVEYOURSELF メッセージを要求していた場合、 そのウィンドウにこのメッセージを送ります。 このメッセージを受け取ったクライアントは、 そのウィンドウに関する全ての状態をチェックし、 ICCCM の仕様に基づいて WM_PROTOCOLS 属性を更新する必要があります。 指定したウィンドウがこのメッセージを要求していなければ、 キーボードのベルが鳴ります。

f.showiconmgr
カレントのアイコンマネージャを表示します。

f.sorticonmgr
カレントのアイコンマネージャのエントリをアルファベット順にソートします。 変数 SortIconManager を参照してください。

f.titleこの関数は、選択不能なメニュー項目を中央揃えで表示させるために、 メニュー定義の中で使われます。 それ以外の場所では使用できません。

f.topzoom
関数f.bottomzoom と同様ですが、 選択したウィンドウをディスプレイの上半分だけに拡げます。

f.unfocus
フォーカスルールをポインタ駆動式に戻します。 フォーカスされていたウィンドウが不要になった場合に用いられます。

f.upiconmgr
カレントのアイコンマネージャ上のポインタを前の行に移動します。 必要に応じて同じカラムの最後の行に移動します。

f.vlzoom
この関数は f.leftzoom と同じです。

f.vrzoom
この関数 はf.rightzoom と同じです。

f.warpring string
変数 WindowRing で指定されたうちの次、 または前 (引数 string が "next" なら次、 "prev" なら前) のウィンドウへポインタを移動させます。

f.warpto string
名前またはクラスが string に該当するウィンドウへ、 ポインタを移動させます。 ウィンドウがアイコン化されている場合、 変数 WarpUnmapped が設定されていれば、アイコン化を解除し、 設定されていなければ、無視します。

f.warptoiconmgr string
引数 string で指定されるアイコンマネージャの、 ポインタを持つウィンドウに対応した、アイコンマネージャのエントリへ、 ポインタを移動します。 引数が空 ("") なら、カレントのアイコンマネージャが選ばれます。

f.warptoscreen string
引数 string で指定されるスクリーンへ、ポインタを移動させます。 引数 String には、数字 ("0"、"1" など)、 または単語として "next" (管理していないスクリーンを除き、 現在のスクリーン+1を示す)、 "back" (管理していないスクリーンを除き、現在のスクリーン−1を示す)、 "prev" (直前のスクリーンを示す) が指定できます。

f.winrefresh
選択したウィンドウだけがリフレッシュされること以外は、 関数 f.refresh と同様です。

f.zoom指定したウィンドウの、高さだけが変更されること以外は、 関数 f.fullzoom と同様です。

メニュー

関数は、ポップアップ (マウスボタンにバインドされている場合) あるいは プルダウン (タイトルボタンに割り当てられている場合) メニューを使って、 グループに分けたり、対話的に選択したりすることができます。 各メニューの記述は、f.menu で参照されるメニュー名、 デフォルトのフォアグラウンドとバックグラウンドの色 (オプション指定)、 項目名と起動される関数のリストで構成され、 さらにオプションで個々の項目ごとに、 フォアグラウンドとバックグラウンドの色を指定できます。

Menu "menuname" [ ("deffore":"defback") ]
{
string1[ ("fore1":"backn")]function1
string2[ ("fore2":"backn")]function2
.
.
.
stringN[ ("foreN":"backN")]functionN
}

menuname は大文字と小文字を区別します。 オプションの引数 deffore および defback は、 カラーディスプレイ上でメニュー項目をハイライトする際の、 ファオグラウンドおよびバックグラウンドの色を指定します。 各メニュー項目の string では、 メニュー中に表示されるテキストを指定します。 オプションの引数 fore および back は、 ポインタが項目の外にある場合の、 メニュー表示色のフォアグラウンドとバックグラウンドを指定します。 これらの色はカラーディスプレイに限られます。 デフォルトでは、変数 MenuForeground および MenuBackground で 指定した色が使われます。 メニュー項目の function は、ユーザ定義の関数や、他のメニューを含む、 任意の関数のいずれかです。

TwmWindows という特別なメニューには、 すべてのクライアントおよび twm が管理するウィンドウの 名前が保持されています。 この項目のうちどれかを選択すると、 そのウィンドウ上で WindowFunction が実行されます。 もし WindowFunction が設定されていなければ、 そのウィンドウはアイコン化を解除され、レイズされます。

アイコン

Twm は、アイコン化されたウィンドウを操作する方法を、 いくつか提供しています。 共通の pixmap-and-text スタイルを、手作業でレイアウトしたり、 変数 IconRegion の設定に従って自動的にレイアウトしたりできます。 さらに、アイコン名を格子状に配置するアイコンマネージャによって、 スクリーンのスペースを有効に利用でき、 キーボードの操作でウィンドウ間を行き来することもできます。

クライアント提供のアイコンウィンドウやアイコンピックスマップのダイナミック設定のどちらもサポートされません。
 (アイコン名の変更が自動的に更新されます)

アイコンマネージャとは、現在ディスプレイ上にある、指定した、 あるいは全てのウィンドウの名前を保持しているウィンドウのことです。 またウィンドウ名の他にも、ウィンドウがアイコン化された場合には、 デフォルトのアイコン化シンボルを用いた小さなボタンが、ウィンドウ名の 左側に表示されます。 デフォルトでは、アイコンマネージャのエントリをクリックすると、 f.iconify が実行されます。 アイコンマネージャの動作を変更するには、 マウスボタンおよびキーボードのバインディングを 指定する際に f.iconmgr を使います。

ポインタをアイコンマネージャに移動させることでも、 キーボードフォーカスを指定ウィンドウに切り替えることができます
 (フォーカスを明確に設定するか、 それに相当するイベントを送信することで、 NoTitleFocus が設定されます)。 f.upiconmgr、f.downiconmgr、f.lefticonmgr、 および f.righticonmgr 関数を使うと、 キーボードから直接、ウィンドウ間の入力フォーカスを変更できます。

バグ

ウィンドウリストの代わりに、 リソースマネージャを使うべきでした。 変数 IconRegion はリストを引数に取らなければなりません。 ウィンドウの移動を縦あるいは横方向に限定しようとして あまり速くダブルクリックすると、ポインタが動かないのに ウィンドウが移動することがあります。

IconifyByUnmapping が設定されているとき、 DontIconifyByUnmapping の中にリストされているウィンドウが、 IconManagerDontShow の中にはリストされていない場合、 f.menu "TwmWindows" あるいは f.warpto に対して 何もバインドされていない状態でアイコン化されると、その ウィンドウは失われます。

関連ファイル

 $HOME/.twmrc.<screen number>
 $HOME/.twmrc
 /usr/lib/X11/twm/system.twmrc

環境変数

DISPLAY
X サーバがどのディスプレイを使うかを決めます。 f.exec を通じて設定することもでき、この場合は 指定したスクリーンにプログラムを出現させることができます。

HOMEチルド (~) で始まるファイルのプリフィックスとして用いられ、 twm のスタートアップファイルを探すのに使われます。

関連事項

X(1), Xserver(1), xdm(1), xrdb(1)

著作権

Portions copyright 1988 Evans & Sutherland Computer Corporation; portions copyright 1989 Hewlett-Packard Company and the Massachusetts Institute of Technology, 権利および許可事項については X(1) を参照。

著者

Tom LaStrange, Solbourne Computer; Jim Fulton, MIT X Consortium; Steve Pitschke, Stardent Computer; Keith Packard, MIT X Consortium; Dave Payne, Apple Computer. 

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026