概要

デスクトップの壁紙を変える。ついでに、定期的に自動的に変更されるようにしておく。

メモ

1)壁紙の変更方法

ImageMagickの場合

$ display -window root -backdrop -foreground black 画像ファイルのパス

xliの場合

$ xli -onroot -quiet 画像ファイルのパス

2)壁紙を変えるスクリプト

chbg.sh

壁紙用に明るさを下げるとかサイズを変更する作業まで含めてスクリプト化。明るさは50%、高さは768pixelに変換する。
chbg.sh 画像ファイルのパス
の形で実行する。
#!/bin/sh
if [ -f $1 ]; then
	#convert -modulate 50 $1 - | display -resize x768 -geometry -0 -window root -
	#identify $1 | awk '{print $2}' | sed 's/x.*//'
	# echo `convert -modulate 50 -resize x768 $1 - | identify - | awk '{print $3}'`
	convert -modulate 50 -resize x768 $1 - | display -window root -
fi

3)定期的に壁紙を変えるスクリプト

nohup-chbg.sh

上記のchbg.shをパスの通ったとこにおいておく。使い方は
nohup-chbg.sh <更新間隔> <画像ファイルのディレクトリ>
更新間隔に指定した秒数毎に壁紙が変更される。画像ファイルは指定したディレクトリの中のファイルを順番に使用する。sleepをkillしたりpidの保存場所を決め打ちにしてたりってとこは注意。
#!/bin/sh

# error print
ERROR_EXIT(){
  echo "usage: nohup-chbg.sh sec dir"
  exit 2
}

# init
if [ $# != 2 ]; then ERROR_EXIT; fi
killall sleep
PIDFILE=$HOME/.chbg.pid
if [ -f $PIDFILE ]; then  kill -9 `cat $PIDFILE`; fi
echo $$ > $PIDFILE

# main
SRC=$2
cd $SRC
while true
do
  for i in *
  do
    if [ -f $SRC/$i ]; then
      chbg.sh $SRC/$i
      sleep $1
    fi
  done
done


問題点、課題

  • 壁紙をランダムに変更するようにする
  • 画像ファイル以外の場合はパスするようにする
  • しかし、現状でかなり満足なのでやるかどうかは分かんない

環境

  • OS: FreeBSD 6.1-Release
  • PC: Panasonic CF-R3
最終更新:2007年02月03日 09:48