Ubuntuで自動壁紙更新

Windows 7でも、自動で壁紙を切り替えるシステムが搭載されたらしい。
一方のUbuntuはどうかというと、簡単なようで実に面倒臭い。

色々試してはみたが、結局以下の方法で落ち着いたのでメモ

フォルダにある画像ファイルを選択

基本的には壁紙の変更はgconftool-2を使えばできる。ただ自動更新するにはそれを時間毎に実行する必要がある。

まずランダムに選択する方法だが、前提として、ファイルが数千を越えているので、毎度走査しているようでは処理が非常にもたついてしまう。

従って、予めファイルリストを作り、そこへ放り込んでおく。-vでファイルリストの更新を掛けるようなPythonスクリプトを書いてみた。

http://ponkotuy.com/hg/wall

この前GNOMEだけでなく、XFCEにも対応させた。-x付ければXFCEモードになる

○分毎に更新をかける

というタイトルを見てcron使えばいいんですね!と思う人は実にLinux的発想だが、残念ながらUbuntuではうまくいかない。どうもバグらしい。以下に書いてある。が、英語苦手なので、きちんと読んでない。

https://bugs.launchpad.net/ubuntu/+source/cron/+bug/327190

あまり優雅ではないが、常駐させることにする。こんなのでどうだろう?

#!/bin/sh
secs=300
while true;
do
    $HOME/etc/wp/wall.py $1 $HOME/etc/wp
    sleep ${secs}
done
exit 0

私としては一応ちゃんと動いているのでこれでいいかなとか。あとは起動時にこのスクリプトを動かすようにしておけばOK。