projects
/
clearscm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added support for base64 encodings
[clearscm.git]
/
bin
/
setbg
diff --git
a/bin/setbg
b/bin/setbg
index
39ce45b
..
09311f5
100755
(executable)
--- a/
bin/setbg
+++ b/
bin/setbg
@@
-57,10
+57,12
@@
use warnings;
use FindBin;
use Getopt::Long;
use Proc::ProcessTable;
use FindBin;
use Getopt::Long;
use Proc::ProcessTable;
+use File::Spec;
use CGI qw/:standard/;
use lib "$FindBin::Bin/../lib";
use CGI qw/:standard/;
use lib "$FindBin::Bin/../lib";
+use DateUtils;
use Display;
use Utils;
use Display;
use Utils;
@@
-68,6
+70,7
@@
my $VERSION = '$Revision: 1.10 $';
($VERSION) = ($VERSION =~ /\$Revision: (.*) /);
my $processes = new Proc::ProcessTable;
($VERSION) = ($VERSION =~ /\$Revision: (.*) /);
my $processes = new Proc::ProcessTable;
+my @imgDirs;
foreach my $process (@{$processes->table}) {
if ($process->cmndline =~ /setbg/ and
foreach my $process (@{$processes->table}) {
if ($process->cmndline =~ /setbg/ and
@@
-78,38
+81,46
@@
foreach my $process (@{$processes->table}) {
} # if
} # foreach
} # if
} # foreach
+sub fillPictures () {
+ my @images;
+
+ foreach (@imgDirs) {
+ my @pics = `find "$_" -type f -name "*.jpg"`;
+
+ chomp @pics;
+ push @images, @pics;
+ } # foreach
+
+ return @images;
+} # fillPictures
+
$0 = "$FindBin::Script " . join ' ', @ARGV;
verbose "$FindBin::Script v$VERSION";
my $sleep = 60 * 60;
$0 = "$FindBin::Script " . join ' ', @ARGV;
verbose "$FindBin::Script v$VERSION";
my $sleep = 60 * 60;
-my @imgDir;
GetOptions (
'usage' => sub { Usage },
'verbose' => sub { set_verbose },
'debug' => sub { set_debug },
'sleep=i' => \$sleep,
GetOptions (
'usage' => sub { Usage },
'verbose' => sub { set_verbose },
'debug' => sub { set_debug },
'sleep=i' => \$sleep,
- 'bgdir=s' => \@imgDir,
+ 'bgdir=s' => \@imgDir
s
,
) || Usage;
) || Usage;
-foreach (@imgDir) {
- error "$_ is not a directory", 1 unless -d $_;
+for (my $i = 0; $i < scalar @imgDirs; $i++) {
+ error "$imgDirs[$i] is not a directory", 1 unless -d $imgDirs[$i];
+
+ $imgDirs[$i] = File::Spec->rel2abs ($imgDirs[$i]);
} # foreach
# Using gsettings
my $setbg = "gsettings";
my $setbgOpts = "set org.gnome.desktop.background picture-uri \"file://";
} # foreach
# Using gsettings
my $setbg = "gsettings";
my $setbgOpts = "set org.gnome.desktop.background picture-uri \"file://";
-my @images;
+my @images
= fillPictures
;
-foreach (@imgDir) {
- my @pics = `find "$_" -type f -name "*.jpg"`;
- chomp @pics;
- push @images, @pics;
-} # foreach
-
-Usage "No images to display. Must specify -imgDir" unless @images;
+Usage "No images to display. Must specify -bgdir" unless @images;
sub SwitchWallPaper {
# We don't need to do anything here, just handle the interrupt and
sub SwitchWallPaper {
# We don't need to do anything here, just handle the interrupt and
@@
-118,8
+129,10
@@
sub SwitchWallPaper {
} # SwitchWallPaper
$SIG{USR2} = \&SwitchWallPaper;
} # SwitchWallPaper
$SIG{USR2} = \&SwitchWallPaper;
+$SIG{USR1} = \&fillPictures;
my $debugger = $DB::OUT;
my $debugger = $DB::OUT;
+my $today;
EnterDaemonMode unless defined $DB::OUT;
EnterDaemonMode unless defined $DB::OUT;
@@
-127,7
+140,7
@@
while () {
my $image = escapeHTML ($images[int (rand $#images)]);
open my $log, '>', "$ENV{HOME}/.$FindBin::Script"
my $image = escapeHTML ($images[int (rand $#images)]);
open my $log, '>', "$ENV{HOME}/.$FindBin::Script"
- or error "Unable to open $ENV{HOME}/.
setbg
for writing - $!", 1;
+ or error "Unable to open $ENV{HOME}/.
$FindBin::Script
for writing - $!", 1;
display $image, $log;
display $image, $log;
@@
-143,5
+156,11
@@
while () {
close $log;
close $log;
+ $today = YMD;
+
sleep $sleep;
sleep $sleep;
+
+ if ($today ne YMD){
+ @images = fillPictures;
+ } # if
} # while
} # while