#!/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/wallpapers/' }; 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 ); system( 'notify-send', '-u', 'low', '-t', '2000', 'setwp', ' Wallpaper set' ); return; } sub main { choose_and_copy(get_pool_files()); set_wp(); return; } main(); __END__