Usage: setbg [-u|sage] [-h|elp] [-ve|rbose] [-d|ebug] [-s|leep <n>]
[-bgdirs <bgdir> -bgdirs ...]
-
+
Where:
-u|sage: Displays this usage
$totals{bgdirs} = 0;
for (@{$opts{bgdirs}}) {
- my ($status, @pics) = Execute "find \"$_\" -type f";
+ my ($status, @pics) = Execute "find \"$_/\" -type f";
chomp @pics;
push @images, grep(/jpg$|png$|gif$/i, @pics);
+ @pics = grep(/jpg$|png$|gif$/i, @pics);
+
push @{$opts{bgdircnt}}, scalar @pics;
$totals{bgdirs}++;
$totals{images} = scalar @images;
+ displayStats;
+
return @images;
} # fillPictures
+
sub writeHistory($) {
my ($msg) = @_;
'sleep=i',
'lockscreen',
'bgdirs=s@',
+ 'mate',
) || Usage;
local $0 = "$FindBin::Script " . join ' ', @argvCopy;
# Using gsettings
my $setbg = "gsettings";
-my $setbgOpts = "set org.gnome.desktop.background picture-uri \"file://";
-my $setLockOpts = "set org.gnome.desktop.screensaver picture-uri \"file://";
+
+my ($setbgOpts, $setLockOpts);
+
+if ($opts{mate}) {
+ $setbgOpts = 'set org.mate.background picture-filename ';
+ $setLockOpts = 'set org.mate.background picture-filename ';
+} else {
+ $setbgOpts = "set org.gnome.desktop.background picture-uri \"file://";
+ $setLockOpts = "set org.gnome.desktop.screensaver picture-uri \"file://";
+} # if
my @images = fillPictures;
EnterDaemonMode unless defined $DB::OUT;
+my $pickNewImages = 1;
+my ($bgimage, $lockimage);
+
while () {
- my $bgimage = escapeHTML ($images[int (rand $#images)]);
- my $lockimage = escapeHTML ($images[int (rand $#images)]);
+ if ($pickNewImages) {
+ $bgimage = escapeHTML ($images[int (rand $#images)]);
+ $lockimage = escapeHTML ($images[int (rand $#images)]);
+ } # if
my $monitorIsOn;
my ($status, @output) = Execute("xset q | grep Monitor | awk '{print \$3}'");
if ($status or $output[0] eq 'Off') {
- writeHistory ":Monitor off, not setting background to $bgimage";
+ writeHistory ":Monitor off, not setting background to $bgimage - will keep trying";
+
+ $pickNewImages = 0;
} else {
- my $cmd = "$setbg $setbgOpts$bgimage\" 2> /dev/null";
+ $pickNewImages = 1;
+
+ my $cmd = $opts{mate} ? "$setbg $setbgOpts\"$bgimage\" 2> /dev/null"
+ : "$setbg $setbgOpts$bgimage\" 2> /dev/null";
($status, @output) = Execute $cmd;
} # if
if ($opts{lockscreen}) {
- $cmd = "$setbg $setLockOpts$lockimage\" 2> /dev/null";
+ $cmd = $opts{mate} ? "$setbg $setLockOpts\"$lockimage\" 2> /dev/null"
+ : "$setbg $setLockOpts$lockimage\" 2> /dev/null";
($status, @output) = Execute $cmd;
} # if
updateSetBG $bgimage, $lockimage;
-
- displayStats;
} # if
+ displayStats;
+
$today = YMD;
sleep $opts{sleep} * 60;