return @images;
} # fillPictures
-sub updateSetBG ($) {
- my ($image) = @_;
+sub updateSetBG ($$) {
+ my ($bgimage, $lockimage) = @_;
open my $setbg, '>', "$ENV{HOME}/.$FindBin::Script"
or error "Unable to open $ENV{HOME}/.$FindBin::Script for writing - $!", 1;
- display $image, $setbg;
+ display $bgimage, $setbg;
close $setbg;
- my $msg = localtime() . ":$image";
+ my $msg = localtime() . ":$bgimage lock:$lockimage";
open my $hist, '>>', "$ENV{HOME}/.$FindBin::Script.hist"
or error "Unable to open $ENV{HOME}/.$FindBin::Script.hist for append - $!", 1;
} # for
# Using gsettings
-my $setbg = "gsettings";
-my $setbgOpts= "set org.gnome.desktop.background picture-uri \"file://";
+my $setbg = "gsettings";
+my $setbgOpts = "set org.gnome.desktop.background picture-uri \"file://";
+my $setLockOpts = "set org.gnome.desktop.screensaver picture-uri \"file://";
my @images = fillPictures;
EnterDaemonMode unless defined $DB::OUT;
while () {
- my $image = escapeHTML ($images[int (rand $#images)]);
+ my $bgimage = escapeHTML ($images[int (rand $#images)]);
+ my $lockimage = escapeHTML ($images[int (rand $#images)]);
- my $cmd = "$setbg $setbgOpts$image\" 2> /dev/null";
+ my $cmd = "$setbg $setbgOpts$bgimage\" 2> /dev/null";
my @output = `$cmd`;
$totals{errors}++;
} else {
$totals{'Images displayed'}++;
+ } # if
+
+ $cmd = "$setbg $setLockOpts$lockimage\" 2> /dev/null";
- updateSetBG $image;
+ @output = `$cmd`;
+
+ if ($? != 0) {
+ error "Trying to set lock screen - command used \"$cmd\"\n\nOutput\n\n" .
+ join "\n", @output;
+ $totals{errors}++;
+ } else {
+ $totals{'Lock screens displayed'}++;
} # if
+ updateSetBG $bgimage, $lockimage;
+
displayStats;
$today = YMD;