twmのカスタマイズ

twm は X-Window system Release 4 におけるウィンドウ・マネージャです。

Motif を利用しないマネージャで、Tom La Strange 氏が開発しました。当初、開発者に敬意を払って、Tom's Window Manager を略したものでしたが、その後タブ・ウィンドウ・マネージャと呼ばれるようになりました。

※ 現在、システム標準のウィンドウマネージャは WindowMaker です。


twm の初期設定

twmを立ち上げると、次のようなターミナルだけが表示されます。

twmrc_0

デフォルトでは機能的に非常に不便ですが、容易にカスタマイズすることが可能です。

設定ファイル「.twmrc」

twm の設定ファイルは「.twmrc」です。最初はこのファイルはありませんので、まずシステム標準のファイルをコピーしてきます。

cp /usr/local/X11/lib/twm/system.twmrc ~/.twmrc

ちなみに、このファイルのありかは、「 man twm 」のマニュアルの最後に既述してあります。

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

このファイルをホームディレクトリに置くことで、twm 起動時にファイルが読まれるようになります。

設定ファイルのカスタマイズ

カスタマイズを加えると、下図(一例)のようになります。設定ファイルは「.twmrc」です(日本語である程度説明をつけています※利用しているアイコンはmenu.tar.gzに置いておきます)。

twmrc_1

設定ファイルのカスタマイズについて、説明していきます。

文字の変更

フォントを設定できる部品は、アイコンラベル、アイコンマネージャ、 タイトルバー、メニュー、寸法表示(リサイズの際に表示される)です。

書式は 変数名 "フォント名" で、フォント名には XLFD, alias どちらでも使えます。xfontsel を使うと楽でしょう。

TitleFont     タイトルバーのフォント
ResizeFont寸法表示用のフォント
MenuFontメニューのフォント
IconFontアイコンラベルのフォント
IconManagerFontアイコンマネージャのフォント

一例を載せておきます。

TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
ResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
MenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
IconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*"
IconManagerFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*"

色の変更

色あいを変えるのは、見栄えを変える重要な一手段です。twmの場合、色は設定ファイル中のColorというセクションで設定してありますので、 ここを変更します。

ここでは、タイトルバー、メニュー、アイコン、ウィンドウ(アイコン含む)の枠、 マウスカーソル、アイコンマネージャの色が指定できます。

書式は Color { VARI "COLOR" } です。

なお、利用できる配色は次のコマンドで調べて下さい。

% cat /usr/X11R6/lib/X11/rgb.txt

PointerForegroundマウスカーソルの前景色
PointerBackgroundマウスカーソルの背景色
DefaultBackground基本背景色
DefaultForeground基本前景色

各部分の対応を確認できる画像を用意しています。参考にして下さい。

MenuBackgroundメニューの背景色
MenuForegroundメニューの前景色
MenuTitleBackgroundメニューのタイトル部分の背景色
MenuTitleForegroundメニューのタイトル部分の前景色
Menu
BorderColorウィンドウの枠の色
TitleBackgroundタイトルバーの背景色
TitleForegroundタイトルバーの前景色
TitleBackground
IconManagerBackgroundアイコンマネージャの背景色
IconManagerForegroundアイコンマネージャの前景色
IconManager
IconBackgroundアイコンの背景色
IconForegroundアイコンの前景色
IconBorderColorアイコンの枠の色(original twm には無い)
Icon

ボタン、キーボードの関連づけ

タイトルボタン、キー、ポインタボタンに割り当てることで、ウインドウ操作が可能になります。

BUTTON       Button1       左ボタン
Button2中ボタン
Button3右ボタン
KEYm[META]
c[CTRL]
s[SHIFT]
l[CAP]
CONTEXTframeウィンドウの枠
iconアイコン
iconmgrアイコンマネージャ
rootルートウィンドウ
titleタイトルバー
windowウィンドウ
all全ての場所

twm は、タイトルバー、メニュー、キーバインディングの設定に簡単には収められないくらい多くのウィンドウ操作プリミティブを提供しています。

f.beepビープを鳴らす
f.circledown重なったウィンドウの一番上を一番下にする
f.circleup重なったウィンドウの一番下を一番上にする
f.destroyクライアントの強制終了
f.deltastopMoveDelta で指定したドット数以上動かした場合に
Function で定義した関数の動きを止める
f.moveウィンドウの移動
f.resizeウィンドウの大きさ変更
f.raise選択したウィンドウを上にする
f.lower選択したウィンドウを下にする
f.raiselower選択したウィンドウが重なっていて、下にあれば上
に、上にあれば下にする
f.iconifyアイコン化
f.deiconifyウィンドウへ戻す
f.deleteクライアントの終了
f.exec "COMMAND"外部コマンド COMMAND を実行("!" で置き換えも可)
f.fullzoomウィンドウを画面全体で表示
f.menu "MENU"MENU を表示
f.title "TITLE"TITLE をセンタリングして表示
f.hideiconmgrアイコンマネージャを隠す
f.showiconmgrアイコンマネージャを表示
f.sorticonmgrアイコンマネージャで表示されているリストをアル
ファベット順にソートする
f.nop何もしない
f.quit twm の終了
f.refreshリフレッシュ
f.restarttwm の再起動
f.twmrc ~/.twmrc の再読み込み
f.function "FUNCTION"   Function で定義した FUNCTION を呼び出す

メニューの設定

メニューの定義をします。twm ではメニューの階層化が可能ですが、あまり深くなると使いにくくなります。書式は以下の通り。

		Menu "MENU"
		{
			"LABEL"	TWM_FUNCTION
				:
				:
		}

ここで、「 LABEL 」と「 TWM_FUNCTION 」の間に ("文字色":"背景色") を書き込めば、メニュー表示の色も変更可能です。

# ルートウインドウで中ボタンをクリックした時のメニュー
menu "applications"
{
   "applications"	              f.title
   "Netscape"   ("#7d26cd":"#dae7ee") f.menu "netscape"
   "acroread"   ("#7d26cd":"#d4e0ee") ! "acroread &"

その他

MoveDelta NUM  f.deltastop が有効になるドット数 NUM を決める
SortIconManagerアイコンマネージャのリストをソートする
ShowIconManager起動時にアイコンマネージャ表示
IconManagerGeometry "GEOMETRY"アイコンマネージャのジオメトリを設定します
IconDirectory "DIRECTORY"twm にビルトインされていないアイコンを読み込む
DontMoveOffウィンドウを画面からはみ出させない
NoRaiseOnMove 位置を変更しても上下関係を変えない
NoRaiseOnResizeリサイズしても上下関係を変えない
RandomPlacementウィンドウを適当に配置
OpaqueMove位置を変更するときウィンドウの枠だけ表示

参考リンク

Manpage of TWM(日本語)


Valid XHTML 1.1! Valid CSS! 初版更新日 2002/09/05   最新更新日 2004/12/11