▼twmウィンドウマネージャの使い方▼
X11の初期からあるウィンドウマネージャのtwmは、
今時使う人が少なくなったせいもあるのと、
使い方が(X11的には)あまりにも自明すぎて使い方の解説が見当たらなかったりします。
本稿ではデフォルト状態の twm の使い方について解説します。
(2017.11)
$Keywords: twm window manager basic usage, pointer focus$
$Id$
▼twmを使ってみるには
まずインストールされていないと話にならないのでインストールしましょう。
大半のディストリビューションには標準では入ってなくても
多くの場合は用意されています。
- Red Hat EL, CentOS: xorg-x11-twm というパッケージ名になります。
CentOS 7 の場合は
EPELには無いので、
合いそうなFedoraのパッケージを使うか、
コンパイル済みのものを拾ってください。
- FreeBSD: ports/x11-wm/twm/ にあります。
- NetBSD: X11環境をインストールすればデフォルトで入っています。
- Ubuntu: twm パッケージを入れます。
(デフォルトで入ってたかもしれない)
インストールできたら、普段使うstartx
の代わりに
xinit
を使うと、xtermが1枚だけ開いている状態になります。
マウスカーソルをxtermの中に入れて、twm & と打てば
twm が起動します。
タイトルバーが異様に大きい場合は
フォントを追加してみて下さい。
最初から開いていたxtermをexitで終了させるとX11のセッションが
終了します。
とりあえず使ってみるだけならこの起動方法でもいいんですが、
常用する場合は twmを ~/.xinitrc の最後のフォアグラウンドプロセスとして起動し、
twm を修了させるとXのセッションが終了するように設定します。
▼2枚目のxtermを開く
画面上の何もない所(ルートウィンドウといいます)で
マウスの左ボタンを押すとメニューが出るので、
Xterm を選びます。するとウィンドウの枠が表示されるので、
置きたい場所を選んで左クリックすると、新しいxtermウィンドウが開きます。
▼右クリックで初期ウィンドウサイズ変更
新しいウィンドウを開くときの枠線が出ている時に、
左ではなく右クリックすると、ウィンドウの大きさは画面下端までに調整されます。
最初から大きなウィンドウサイズにしたり、大きすぎるウィンドウを
小さめに出したりできます。
▼ポインタフォーカスの考え方
twm はフォーカスの考え方が Microsoft Windows や mwm と異なるので、
知っていないと面食らう箇所です。説明しましょう。
フォーカスとは、端的に言えばキーボード入力が送られるウィンドウのことです。
そのウィンドウにキーボード入力が送られる状態にあることを、
「そのウィンドウがフォーカスされている」と言います。
twm では、キーボード入力は
「今現在マウスカーソルがある場所の下のウィンドウ」に送られます。
これをポインタフォーカス式(pointer focus)のフォーカスといいます。
対するに、「普通」のウィンドウマネージャでは、
マウスの位置に関係なく、
最前面にあるウィンドウに対してキーボード入力が行われます。
フォーカスを変えるときは、そのウィンドウをクリックして
前面に持ってきます。
これをクリック・オン・フォーカス式(click-on-focus)のフォーカスといいます。
twm が一見不自然なポインタフォーカスを採用しているのは、
生のX11が元々そうだからです。twmを終了させてウィンドウマネージャが
無い状態で使うと、キーボード入力のフォーカスは
マウスポインタがあるウィンドウに送られます。
フォーカスを変えるにはマウスを動かします。
twm はこのX11のデフォルトのポインタフォーカス方式をそのまま踏襲
しているだけです。
一見不便そうですが、そうでもありません。
前面にある情報を見つつ、裏側に少し隠れているウィンドウに文字を打ちこむ、
といったことができます。
なお、twmはクリック・オン・フォーカスには対応していません。
▼タイトルバーの使い方
ウィンドウの上にあるタイトルバーは、
- 左クリックすると、そのウィンドウを前面に持ってきます。
- 左ドラッグでウィンドウを移動させます。
この際はウィンドウの枠線だけが表示され、ボタンを離すと
その位置にウィンドウが移動します。
(「普通」のウィンドウマネージャのように、中身を表示させたまま
移動させたい時は、設定でOpaqueMoveオプションを使います)
- 中ボタンで、そのウィンドウを最背面に回します。
- デフォルトでは右クリックには何も割り当てられていません。
- タイトルバー左端の[●]は、アイコン化ボタンです。
|
↓
|
|
アプリケーションがアイコンリソースを設定していれば
絵も表示されますが、無い場合はタイトルの文字だけになります。
アイコンは、最初はマウスポインタのあった場所に
表示されます。
(IconRegion設定を追加すると、画面上の特定の場所にアイコンを
集めることができます。)
- タイトルバー右端の四角の入れ子ボタンは、リサイズボタンです。
押すとウィンドウの枠が表示されるので、変えたい大きさにドラッグして
離すと、ウィンドウの大きさが変わります。
(ウィンドウの枠の部分をドラッグして大きさを変更するような設定も可能です)
- ウィンドウを消す[X]ボタンはありません。
閉じるボタンのないアプリケーションを終了させるには、
ルートウィンドウの左ボタンメニューからDeleteを選び、
ドクロになったマウスポインタを消したいウィンドウの上でクリックします。
twmが使われていた頃のUNIXワークステーションでは、マウスは3ボタン式
(まだスクロールホイールは発明されていなかった)のものが普通だったので、
中ボタンにそれなりの機能が割り当てられています。
2ボタンマウスでtwmを使うのはデフォルト設定では不便なこともありますが、
設定でいくらでも変えられます。
▼タイトルバーのダブルクリック
- タイトルバーをダブルクリックすると、上下もしくは左右のみに
ウィンドウを動かすモードになります。
マウスポインタが中央に移動し、ウィンドウの大きさの3分の1以上マウスを動かすと、
その方向にのみウィンドウを動かす事が出来ます。
▼移動のキャンセル
- ウィンドウの移動をキャンセルしたいときは、左ボタンを押したまま
別のボタン(右ボタン)を押します。
▼Meta(Alt)キーの使い方
タイトルバーが隠れてしまったウィンドウを前面に出したりするには、
Meta(Alt)キーを押しながらマウスボタンを操作します。
- 下になっているウィンドウを前面に持って来るには、そのウィンドウの上で
Altキーを押しながら右クリックします。
|
↓
|
|
- 完全に隠れてしまったウィンドウを掘り出したいとき等、ウィンドウを
最背面に移動させるには、Altキーを押しながらウィンドウを左クリックします。
- Altキーを押しながらウィンドウを中クリックすると、アイコン化します。
あまり使わないかな?
左クリックで最背面、右クリックで最前面というのはやや不自然な感じは否めないので、
設定をいじるならまずここでしょうか。
▼Alt+ドラッグでウィンドウ移動
- Altキーを押しながらウィンドウを左もしくは右ドラッグして、ウィンドウを
動かすことができます。
移動させたウィンドウは最前面になります。
(前面に移動させたくない場合は NoRaiseOnMove オプションを指定します)
途中で移動を中止したいときはボタンを押したまま別のボタンを押します。
▼標準メニューの使い方
ルートウィンドウで左クリックすると出てくるメニューです。
行いたい動作を選ぶとマウスカーソルの形が変わるので、そこで
操作対象のウィンドウをクリックします。
|
- Iconify
- 選んだウィンドウをアイコン化します。
- Resize
- 大きさの変更。
- Move
- 移動。
- Raise
- ウィンドウを最前面に持ってくる。
- Lower
- ウィンドウを最背面に持っていく。
- Focus
- フォーカス固定。ポインタフォーカスではなく、
選んだウィンドウをフォーカスし続けます。背面にあるウィンドウでも選べます。
- Unfocus
- Focusを解除します。
- Show Iconmgr
- アイコンマネージャを表示します。
- Hide Iconmgr
- アイコンマネージャを非表示にします。
- Xterm
- Xtermを起動します。
メニューのなかでは唯一、アプリケーションを起動するメニューエントリです。
(設定を書けば他のアプリケーションも登録できます)
- Kill
- そのウィンドウを出しているアプリケーションを強制終了させます。
まず下のDeleteを先に試しましょう。
- Delete
- そのウィンドウを閉じます。
他のウィンドウマネージャでは [X]ボタンに相当するもの。
- Restart
- twmの設定ファイルを再読み込みします。
- Exit
- twmを終了します。
twmが ~/.xinitrc の最後のフォアグラウンドアプリケーションだった場合は
ログアウトと同様になります。
|
▼設定ファイル
自分でtwmをカスタマイズしたくなったら、~/.twmrc として設定ファイルを置きます。
デフォルトの設定ファイルをコピーして、そこから始めるのが良いでしょう。
デフォルトの設定ファイルは /usr/share/X11/twm/system.twmrc とか
/etc/X11/twm/system.twmrc あたりに置いてあります。
- ◇アイコンマネージャって何に使うの?
-
単独ではあまり用途はありません。
キーボードショートカットを使って
アイコンマネージャ上のアプリケーションを選択するよう設定することで、
フォーカスを簡単に切り替えられるような環境にするときなどに使います。
- ◇Alt+Tabでアプリケーションを切り替えたいんだけど
-
WindowRing {
"xterm"
"konqueror"
}
"Tab" = meta : window|title|root|frame : f.warpring "next"
"Tab" = m|s : window|title|root|frame : f.warpring "prev"
のように書けば、似たようなことができます。
- ◇WindowRingに書くウィンドウの名前が分からない!
-
xprop (xorg-x11-utils) を使って WM_CLASS(STRING) を抽出するか、
twmのメニューに f.identify を起動するエントリを追加してみましょう。
それで判明します。
- ◇ウィンドウが開くたびに枠がでてクリックするのウザい。自動でウィンドウ出せないの?
-
RandomPlacement オプションを試してみましょう。
- ◇枠をドラッグしてウィンドウの大きさを変えたい
-
以下のような設定はどうでしょう。
枠の太さがデフォルトの2ピクセルでは細すぎると思うので、
BorderWidth は適宜調整してください。
Cursors {
Frame "sizing"
}
BorderWidth 4
Function "resize-or-raise" { f.resize f.deltastop f.raise }
Button1 = : frame : f.function "resize-or-raise"
kabe.sra-tohoku.co.jp