本記事では、Ubuntuで壁紙をランダムに変更するスクリプトを紹介する。
このスクリプトは、Ubuntuでなくても、gnomeをウィンドウマネージャとして使っているならば利用できる(Ubuntuでgnomeを使っていなかったら使えない)。
設定
スクリプトを実行する前に、画像ファイルを置くためのディレクトリの作成が必要です。 ~/pics/download/wallpapersにジャンル別に画像ファイルを入れるディレクトリを作成しておきます。下の例では、cat, nature, airplane, carの4つのディレクトリを作成しています。ディレクトリの名前は任意です。
[tkhisa@localhost]$ pwd /home/tkhisa/pics/download/wallpapers [tkhisa@localhost]$ ls cat nature airplane carちなみに、~/pics/download/wallpapersを別のディレクトリにしたいときは、下のスクリプトの$dirを編集すればOKです。
処理内容
スクリプトを実行すると、作成したディレクトリの中からランダムに1つ選んで、その中にあるjpg形式の画像ファイルをランダムに選んで壁紙に設定します。
使用方法
スクリプトファイルの名称(任意に指定して良い)をchwpaper.plにするとき、まず実行可能ファイルにする。
$ chmod u+x chwpaper.plそして、実行する。
$ ./chwpaper.pl
gcongtool-2の説明
壁紙の設定は、gconftool-2で行っている。2つ目のgconftool-2では、壁紙の貼り付け方を設定している。貼り付け方は、
- scaled(等幅サイズ変更)、
- stretched(フルスクリーン)、
- centered(中央に配置)、
- wallpaper(サイズ均等、並べて表示)
#!/usr/bin/perl
#Usage: $ chwpaper.pl
#ランダムに選んだ壁紙(jpg形式)に変更する.
use strict;
#壁紙を格納してある場所に移動する.
my $dir = "$ENV{HOME}/pics/download/wallpapers";
chdir "$dir" or die "cannot chdir $dir: $!";
#ディレクトリだけからなる一覧表を作成する.
chomp( my @dirlist = `ls -l | sed -e 's/\s\{1,\}/ /g' -ne '/^d/p ' | cut -d' ' -f8`);
#ランダムに壁紙のカテゴリーを選ぶ.
my $cat = "$dirlist[int(rand($#dirlist))+1]";
chdir "$dir/$cat/" or die "cannot chdir $dir/$cat: $!";
chomp( my @wplist = `ls *.jpg` );
if(defined(@wplist))
{
system "gconftool-2 --type string --set \"/desktop/gnome/background/picture_filename\" $dir/$cat/$wplist[ int(rand($#wplist))+1]";
system "gconftool-2 --type string --set \"/desktop/gnome/background/picture_options\" stretched";
} else {
die "picture not found: $!";
}

0 コメント:
コメントを投稿