« 何のための行列か | メイン | 感染症 »
2007年12月10日
Linuxでスライドショウ・ガジェット
Windows用のグーグルデスクトップで写真をスライドショウさせるデスクトップガジェットがお気に入りだった。忘れていたような古い写真がたくさん出てくる。HDDに大量に写真を眠らせていたんだなと気づく。
Linuxで同じことをしようと思ってGNOMEガジェットなんかを探したけど、どうもぼくのニーズに合うものがない。いっそRuby/Gtkで書いてみるかなーと思っていたけど、そんな大げさな話じゃなくて、findとimagemagickでいいのだった。
find ~/Desktop/Pictures/2006* -iname *jpg | xargs display -resize 200 -delay 1000 &
とかすれば、10秒おきに指定ディレクトリ以下のJPEGファイルが横幅200で表示される。
しかし、きっちりディレクトリ順に出るよりもランダムに出る方がうれしい。有限行数の標準入力を受け付けてランダムに並べ替えるようなコマンドラインツールってあったっけなーと、ちょっと考えてから、まあいっかと思ってRubyで書いてみた。
#!/usr/bin/rubylines = Array.new
num = 0while gets
lines.push($_)
endwhile (lines.size >= 1)
num = rand(lines.size)
print lines[num]
lines.delete_at(num)
end
これをrandlines.rbというファイル名で保存して、
find Pictures/* -iname *jpg | randlines.rb |xargs display ...
とやったらうまくいった。グーグルデスクトップと違って、いくつでも好きなだけ起動できるというメリット(?)があるらしい。
Linuxにはflickrをローカルのファイルシステムにマウントしてしまうflickrfsというのがあるので、flickr上の写真も、まったく同様にデスクトップに表示できそうだ。
つくづくUnix文化ってすごいなと思う。こんな単純なスクリプトとコマンドの組み合わせ程度のことでも、Windows上では手も足もでないことが多い。

右側に2つスライドショウを表示
投稿者 ken : 2007年12月10日 19:45