X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=bin%2Fsetbg;h=b64024c3cdcb5bf20c302eddea9d2db0a5b5d859;hb=6fff5b9c2f216ff68334de853b67427b884935a2;hp=17bdc0815c5025da4b381903c81baf9afe41dea1;hpb=179f42431b4ab54214ba78d94cd8d3df05d603bb;p=clearscm.git diff --git a/bin/setbg b/bin/setbg index 17bdc08..b64024c 100755 --- a/bin/setbg +++ b/bin/setbg @@ -73,6 +73,7 @@ Uploads is included and new pictures can arrive everyday. use strict; use warnings; +use experimental qw(signatures); use FindBin; use Getopt::Long; @@ -150,28 +151,29 @@ sub fillPictures () { return @images; } # fillPictures -sub writeHistory($) { - my ($msg) = @_; - +sub writeHistory($msg) { open my $hist, '>>', "$ENV{HOME}/.$FindBin::Script.hist" or error "Unable to open $ENV{HOME}/.$FindBin::Script.hist for append - $!", 1; $msg = localtime() . $msg; - display $msg, $hist; + print $hist $msg; close $hist; } # writeHistory -sub updateSetBG($$) { - my ($bgimage, $lockimage) = @_; +sub writeSetBG ($filename, $image) { + open my $file, '>', $filename + or error "Unable to open $filename for writing - $!", 1; - open my $setbg, '>', "$ENV{HOME}/.$FindBin::Script" - or error "Unable to open $ENV{HOME}/.$FindBin::Script for writing - $!", 1; + print $file "$image\n"; - display $bgimage, $setbg; + close $file; +} # writeSetBG - close $setbg; +sub updateSetBG($bgimage, $lockimage) { + writeSetBG "$ENV{HOME}/.$FindBin::Script", $bgimage; + writeSetBG "$ENV{HOME}/.$FindBin::Script.lock", $lockimage; my $msg = ":$bgimage"; $msg .= " lock:$lockimage" if $opts{lockscreen}; @@ -204,6 +206,7 @@ GetOptions ( 'sleep=i', 'lockscreen', 'bgdirs=s@', + 'mate', ) || Usage; local $0 = "$FindBin::Script " . join ' ', @argvCopy; @@ -225,8 +228,16 @@ for (my $i = 0; $i < scalar @{$opts{bgdirs}}; $i++) { # 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.screensaver 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; @@ -262,7 +273,8 @@ while () { } else { $pickNewImages = 1; - my $cmd = "$setbg $setbgOpts$bgimage\" 2> /dev/null"; + my $cmd = $opts{mate} ? "$setbg $setbgOpts\"$bgimage\" 2> /dev/null" + : "$setbg $setbgOpts$bgimage\" 2> /dev/null"; ($status, @output) = Execute $cmd; @@ -275,7 +287,8 @@ while () { } # 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;