はじめに
こんにちは、野村です。
ウィンドウマネージャ「TWM」の軽さは驚異的。
でも、ウィンドウのリサイズの操作が面倒です。
一般的なウィンドウマネージャであれば、ウィンドウの隅や境界線をドラッグすればサイズ変更ができます。
TWMの場合、そうはいかない。
手順が余計だし、直感的でもない。
今回は、これをなんとかしてみます。
ウィンドウのリサイズの手順を1行程減らす
TWMでは、ウィンドウをリサイズする手順が3行程必要です。
(1)背景を左クリック
(2)メニューから「Resize」を選択
(3)ウィンドウをドラッグ
といった具合。
行程を減らすには、~/.twmrcに以下のコードを追記します。
Button3 = : root : f.resize
これで
(1)背景を右クリック
(2)ウィンドウをドラッグ
の2行程になりました。
さらに簡単にする
よく考えてみればウィンドウって、いったん配置してしまえば、めったに移動やリサイズはしないものです。
自分の場合は必ず
- 左側(画面に対して33%の横幅):ターミナルエミュレータ
- 右側(画面に対して66%の横幅):Webブラウザ
という具合に配置しています。それっきり位置もサイズも変更しない。
じゃあ、この定位置に配置する操作をショートカットキーに登録すればいい。
実は以前、ウィンドウマネージャ「Openbox」にその用途のショートカットを追加する記事を書いてます。
これをもっと簡単にしたものをTWMに導入してみます。
xdotoolsを使う
Openboxにはウィンドウのサイズや位置を変更させる機能が実装されていたけど、TWMにはありません。
そこでxdotoolsの出番です。
そういえば以前にも、xdotoolの記事を書いてます。多少ネタもかぶってる。
xdotoolを使えば、コマンドラインからウィンドウの操作が可能。
他にもマウスイベントやキーイベントの模倣という芸当もできたりする。
とにかくArchLinuxにインストールしました。
$ sudo pacman -S xdotool
シェルスクリプト
パスの通ったデレクトリ内に以下のファイル「winpos」を保存してパーミッションを755にします。
#!/bin/bash
id=`xdotool getwindowfocus`
if [ $1 = "left" ]; then
w=638;h=980
x=1;y=1
else
w=1278;h=980
x=641;y=1
fi
xdotool windowsize $id $w $h
xdotool windowmove $id $x $y
xdotool mousemove $x $y
xdotool windowfocus $id
xdotool windowraise $id
ちなみにこれは、画面解像度1920×1080に特化したものです。
TWMにショートカットを追加
以下のコードを ~/.twmrc に追記します。
"j" = s|m4 : w|t|i|f : f.exec "winpos left"
"k" = s|m4 : w|t|i|f : f.exec "winpos right"
これで、Shift+Mod4+j を押せば左側、Shift+Mod4+k を押せば右側にウィンドウが配置されます(「Mod4」とは、いわゆるウィンドウキーのこと)。
終わりに
以上、ウィンドウを左側もしくは右側に配置するショートカットをTWMに追加してみました。
使いにくかったものが使いやすくなる喜び。
何ものにも変えがたいもんですよ。
というわけで、今回はこれにて。