モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

続・画像ビューワの憂鬱

結局、いちいち押すのが面倒になりました…

そんなわけで起動して即座にそのプロセス(=geeqie)のウィンドウの大きさを変える。 そんなラッパースクリプトから起動することに方針を変更!

#!/bin/sh

width=1280
height=1024

geeqie $@ &
pid=$!            

for i in `seq 0 5`;
do
sleep 0.1
wid=`wmctrl -lp | grep " $pid " | sed -e 's/^\(0x[0-9a-f]\+\).*/\1/'`

    if [ "$wid" != "" ];then
    wmctrl -i -r $wid -e 0,-1,-1,$width,$height
    exit 0
    fi

done

まぁ、ウィンドウIDを得る回りがちょっと不安ですけど。一応動いております。

当初は起動してからウィンドウが作られるまでの時間を待つため、sleepは0.5秒を一つ入れておりましたが、作成後即座に変わるのを求めつつ何らかの原因で多少遅延した場合も考慮して、forループで何度か回るようにしました。システムによってはもちっと長時間待つか、seqの回数を増すかがよいかと思います。

というかsleepって整数しか使えない印象があったんですが、man見てみたら浮動小数点数を使えることになっていたんですね。

とりあえず、これで不満点はほぼ解消…こういうことが簡単だからLinuxはやめられませんな!