Unixでスライドショー: シェル編

画像と次々と見せるスライドショーツールは各OSにつきものだが、天狗はUnixのそこら辺にころがっているツールでやる。
FreeBSDのときはこうする:

xv -wait 3 /mnt/dcim/100msdcf/*.jpg

しかし、Ubuntuにはxvがない。もう古いプログラムなんで捨てられちゃったみたい。(そういう古いプログラムも提供し続けるbsdportsはえらい)

vxにとって代る画像ビューアはgmとかgpicviewとか無数にあるけれど、xvの-waitオプションが無い。しかたないからシェルで-waitオプションをシミュレートする。

プログラムを3秒走らせて終了するシェルスクリプト briefly.sh


#!/bin/sh
gm display "$1" &
pid=$!
sleep 3
kill -9 $pid

あとはforループで回せばいい:

for ff in `find . -name '*.jpg'`; do echo $ff; ./briefly.sh $ff; done

xargsだと何故かうまくいかない、、

以前は似たようなことがfirefoxの-remoteで出来たんだけど、最近のは同じタブを再利用しないで次から次へと新しいタブを開くようになったので、スライドショーとしては使い辛い。


for ff in `find . -name '*.jpg' | head -20`; do \
firefox -a firefox -remote "openurl(file://`pwd`$ff)"; \
done

次回: Emacsによるスライドショー