xdotoolがあればTWMでもウィンドウの配置が煩わしくない

はじめに

こんにちは、野村です。

ウィンドウマネージャ「TWM」の軽さは驚異的。
でも、ウィンドウのリサイズの操作が面倒です。

一般的なウィンドウマネージャであれば、ウィンドウの隅や境界線をドラッグすればサイズ変更ができます。

TWMの場合、そうはいかない。
手順が余計だし、直感的でもない。
今回は、これをなんとかしてみます。

ウィンドウのリサイズの手順を1行程減らす

TWMでは、ウィンドウをリサイズする手順が3行程必要です。
(1)背景を左クリック
(2)メニューから「Resize」を選択
(3)ウィンドウをドラッグ
といった具合。

行程を減らすには、~/.twmrcに以下のコードを追記します。

Button3 = : root : f.resize

これで
(1)背景を右クリック
(2)ウィンドウをドラッグ
の2行程になりました。

さらに簡単にする

よく考えてみればウィンドウって、いったん配置してしまえば、めったに移動やリサイズはしないものです。

自分の場合は必ず

  • 左側(画面に対して33%の横幅):ターミナルエミュレータ
  • 右側(画面に対して66%の横幅):Webブラウザ

という具合に配置しています。それっきり位置もサイズも変更しない。
じゃあ、この定位置に配置する操作をショートカットキーに登録すればいい。

実は以前、ウィンドウマネージャ「Openbox」にその用途のショートカットを追加する記事を書いてます。

openboxにショートカットを追加してマウスの使用頻度を抑える
キーボードから手を離すのが面倒なので、ウィンドウの位置や大きさを変更するためのショートカットをopenboxに設定してみました。これで極力マウスに触らずに済みます。

これをもっと簡単にしたものをTWMに導入してみます。

xdotoolsを使う

Openboxにはウィンドウのサイズや位置を変更させる機能が実装されていたけど、TWMにはありません。
そこでxdotoolsの出番です。

そういえば以前にも、xdotoolの記事を書いてます。多少ネタもかぶってる。

xdotoolを使ってコマンドラインからウィンドウを操作する
今回は、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に追加してみました。

使いにくかったものが使いやすくなる喜び。
何ものにも変えがたいもんですよ。

というわけで、今回はこれにて。