#!/usr/local/bin/perl

use strict;
use warnings;
use File::Copy;

use constant {
	WP_FILE	=> '/usr/home/jozan/pics/wallpaper.jpg',
	WP_POOL	=> '/usr/home/jozan/pics/wp/'
};
use constant FEH_PATH	=> '/usr/local/bin/feh';

sub get_pool_files
{
	my @files;
	my $i;

	$i = 0;
	opendir(DIR, WP_POOL) or die "Couldn't open directory " . WP_POOL . ": $!";
	while ($files[$i] = readdir(DIR)) {
		next if $files[$i] =~ /^\./;
		$i++;
	}
	closedir(DIR);
	return @files;
}

sub choose_and_copy
{
	my @files = (@_);
	my $rand;
	my $i;

	$rand = int(rand(@files - 1));
	unlink(WP_FILE);
	copy(WP_POOL . $files[$rand], WP_FILE);
	return;
}

sub set_wp
{
	system(
		FEH_PATH,
		'--no-fehbg',
		'--bg-fill',
		WP_FILE,
		'--bg-fill',
		WP_FILE,
		'--bg-fill',
		WP_FILE
	);
	return;
}

sub notify
{
	system(
		'notify-send',
		'-u',
		'low',
		'-t',
		'2000',
		'setwp',
		'  Wallpaper set'
	);
	return;
}

sub main
{
	choose_and_copy(get_pool_files());
	set_wp();
	if (@ARGV == 0 || $ARGV[0] ne "-nw") {
		notify();
	}
	return;
}

main();

__END__