きっかけ
最近、Terminalをterminatorに切り替えた。デフォルトのCtrl + Alt + Tだと、一々新しいウィンドウが開いて邪魔くさい。オプション使って新しいタブで開くことは出来るが、画面分割で使うのでそれも微妙。
開いてないときだけ新たに開いて、既に開いている場合は最前面に持ってくるだけにしたかった。
実装
psからterminatorのプロセスIDを拾ってそれをwmctrlでウィンドウIDに変換してxdootoolで最前面に持ってくるだけ
アプリケーション閉じてもpsにはしばらく残るのでウィンドウidで判定させた。
pid=`ps -A | awk '$4=="terminator" {print $1}'`
wid=`wmctrl -lp | awk -v pid=$pid '$3==pid {print $1}'`
if [ "${wid}" = "" ]; then
terminator
else
xdotool windowactivate $wid
fi
これをカスタムショートカットでCtrl + Alt + Tに設定し直す。