Tag Archives: walls

shufflepaper – ‘wallpapershuffler’

What started out as a little script turned into a neat little daemon today. I’ve decided to start shuffling my wallpapers, because one my screens has developed “LCD image persistance”. While it’s a pretty mild problem (it only happens if bright whites are left on the screen for many hours, and fades after 10-20 minutes), I figured shuffling my wallpapers wouldn’t be to much of a bad idea.

I used a handy little Perl module I’ve never come across before called Proc::Daemon by Detlef Pilzecker. It really makes turning a Perl script into a daemon very easy. Here is the relevant snippet from shufflepaper. It’s pretty self-explanatory, so I won’t explain it that much.

my $daemon = Proc::Daemon->new(
   child_STDERR => '/tmp/shufflepaper.dbg',
   pid_file => '/tmp/shufflepaper.pid' );
 
if (defined $opt{s}) {
   print "stopping shufflepaper.\n";
   $daemon->Kill_Daemon();
   exit 0;
}
 
if ($daemon->Status() ne 0) {
   print "shufflepaper is already running!\n";
   exit 0;
}
 
$daemon->Init() if $fork;

I made a symlink to shufflepaper in ~/bin, and added “shufflepaper -w /mnt/data/gfx/wallpapers” to .xinitrc, and then made my WM execute “shufflepaper -n” if I press Ctrl+Alt+n (to pick another random wall). Works pretty well.

The source can be found here.