Dynamic Wallpaper Changer

Sebagai user biasa (bukan root), buat script PERL berikut ini di home directory anda, simpan dengan nama terserah anda, misalnya wallpaper.pl:

#!/usr/bin/perl -w

use strict;

my $pic_path = "/home/wallpapers/ImpossibleMissions";

sub get_selected_pic($) {
        my $sel_pic = $_[0];
        my $fname;

        if(opendir(DIRFH, $pic_path)) {
                while(defined($fname = readdir(DIRFH))) {
                        if($fname eq "." || $fname eq ".." || $fname !~ /.jpg|.png|.gif|.bmp/) {
                                next;
                        }
                        if($sel_pic == 0) {
                                # We select the file which appears
                                # at the sel_pic number
                                return $fname;
                        }
                        $sel_pic--;
                }
                closedir(DIRFH);
        }
}

my $tot_pic = `ls $pic_path | wc -l`;
my $sel_pic = int(rand($tot_pic));
my $sel_pic_name = get_selected_pic($sel_pic);

if($sel_pic_name =~ /.jpg|.png|.gif|.bmp$/)
{
`gconftool-2 -t str -s /desktop/gnome/background/picture_filename "$pic_path/$sel_pic_name"`;
}

Sesuaikan my $pic_path = "/home/wallpapers/ImpossibleMissions"; dengan nama direktori tempat anda menyimpan wallpaper yang ingin ditampilkan kemudian atur jadwal tampilannya dengan cron:

$ crontab -e

kemudian isi dengan:

*/3 * * * * ~namauseranda/wallpaper.pl

Dalam contoh jadwal cron diatas, wallpaper diset agar selalu berubah setiap tiga menit.

Update:
Ubah permission scriptnya menjadi executable:

$ chmod u+x wallpaper.sh
$ ls -l wallpaper.pl
-rwxr--r-- 1 oeban users 0 2007-04-10 12:10 wallpaper.pl

Kemudian, coba jalankan scriptnya via terminal:

$ perl wallpaper.pl

Usahakan untuk tidak menimbulkan pesan kesalahan dan wallpaper GNOME anda berhasil berubah sesuai dengan gambar yang ada di direktori yang telah ditentukan. Berhasil? Coba tunggu selama beberapa saat (sesuai dengan jadwal cron yang telah ditentukan). Berubah sesuai waktu yang telah ditentukan? Selamat!

Catatan:

  • Tipe file untuk wallpaper ini adalah .jpg, .png, .gif, dan .bmp
  • Script ini membutuhkan PERL dan GNOME, tidak bisa dijalankan di KDE (cmiiw)
  • Saya mendapatkan script ini dari Internet beberapa tahun yang lalu dan lupa alamatnya.
  • Telah berhasil diimplementasikan di Slackware 11.0 dengan Dropline GNOME

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.