X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=bin%2Fsetbg;h=85479a58eb9f227c9f6f4bced763d3c45479add4;hb=75f06ef1cd56d531eb9ae086618bce3ff6aaa510;hp=93a339a0f2ebb899a1e968620934d77d30ebafdf;hpb=361e59dd612171a0f4a72ccbd49d1041185a5df0;p=clearscm.git diff --git a/bin/setbg b/bin/setbg index 93a339a..85479a5 100755 --- a/bin/setbg +++ b/bin/setbg @@ -32,7 +32,7 @@ $Date: 2012/11/09 15:31:30 $ Usage: setbg [-u|sage] [-h|elp] [-ve|rbose] [-d|ebug] [-s|leep ] [-bgdirs -bgdirs ...] - + Where: -u|sage: Displays this usage @@ -130,12 +130,14 @@ sub fillPictures () { $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}++; @@ -143,8 +145,11 @@ sub fillPictures () { $totals{images} = scalar @images; + displayStats; + return @images; } # fillPictures + sub writeHistory($) { my ($msg) = @_; @@ -199,6 +204,7 @@ GetOptions ( 'sleep=i', 'lockscreen', 'bgdirs=s@', + 'mate', ) || Usage; local $0 = "$FindBin::Script " . join ' ', @argvCopy; @@ -220,8 +226,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.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; @@ -237,18 +251,28 @@ truncate "$ENV{HOME}/.$FindBin::Script.hist", 0; 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; @@ -261,7 +285,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; @@ -275,10 +300,10 @@ while () { } # if updateSetBG $bgimage, $lockimage; - - displayStats; } # if + displayStats; + $today = YMD; sleep $opts{sleep} * 60;