All pastes #635372 Raw Edit

Someone

public text v1 · immutable
#635372 ·published 2007-07-27 00:51 UTC
rendered paste body
#!/usr/bin/perl
# Backgrounds directory (relative path)
$bgfolder = "/home/marik/backgrounds/";

# list of current background resolutions
@bgModes;
# current Resolution
$realRes;

#---------------------------------------
# Read in current background dirs 
#---------------------------------------
@bgModes = split /\n/,`find $bgfolder -type d`;

# Get rid of the default folder entry of the bgFolder
shift(@bgModes);

# Sort by width
@bgModes = sort(@bgModes);

# Remove the preceeding folder definitition and add a folder delimeter
for(@bgModes) {
  $_ =~ s/$bgfolder//;
  $_ .= "/";
}

#---------------------------------------------------------------------------
# Since cron cant read xrandr or xdpyinfo, get the resolution from xorg.conf
#---------------------------------------------------------------------------
@grep = split /\n/, `grep -A 1 -i depth /etc/X11/xorg.conf`;
for(0..$#grep) {
  if($grep[$_] =~ /^\s+DefaultDepth\s+(\d+)/) { $depth = $1; }
  if($grep[$_] =~ /^\s+Depth\s+$depth/) {
    @Modes = split /\s+/,$grep[$_+1];
    $_ = $#grep;
  }
}
shift(@Modes);
shift(@Modes);
$Modes[0] =~ s/\"//g;
$realRes = $Modes[0];

#-----------------------------------------------
# Pool higher/current resolution background URIs
#-----------------------------------------------
@bgPool;
for(@bgModes) {
  if($realRes <= $_) {
    opendir (DH, ($bgfolder . $_));
    @curResBgs = readdir DH;
    shift( @curResBgs);
    shift( @curResBgs);
    foreach $bg (@curResBgs) { push(@bgPool, $bgfolder . $_ . $bg);}
  }
}
# Choose a random one and do the magic
$random = int(rand($#bgPool+1));
system "Esetroot -fit $bgPool[$random]";        # do the magic