dotfiles

<-- duh.
git clone https://hhvn.uk/dotfiles
git clone git://hhvn.uk/dotfiles
Log | Files | Refs | Submodules | LICENSE

wallp (1304B)


      1 #!/bin/rc
      2 # usage: wallp [-s] [-n|-r] [dir] [monitors]
      3 #        randomly select wallpaper for each monitor and apply
      4 #         -S select monitors via dmenu
      5 #         -s select subdirectory via dmenu
      6 #         -n only select new wallpaper for monitors without one
      7 #         -r don't select new wallpapers, restore from cache
      8 # usage: wallp [-l]
      9 #        list monitors
     10 
     11 fn checkempty {
     12 	if ($1 ())
     13 		exit
     14 }
     15 
     16 _dir = $home/.local/wall
     17 mkdir -p $_dir
     18 
     19 while (~ $1 -*) {
     20 	flags = ($flags $1)
     21 	shift
     22 }
     23 
     24 if (!~ $1 ()) {
     25 	search = $1
     26 	shift
     27 }
     28 
     29 if (~ $flags -s) {
     30 	search = `$nl{find $search -type d | dmenu -i}
     31 	checkempty $search
     32 }
     33 
     34 if (~ $flags -S) {
     35 	monitors = `$nl{xrandr --listactivemonitors | awk '$4 {print $4}' | dmenu -i}
     36 	checkempty $monitors
     37 } else if (~ $1 ()) {
     38 	monitors = `$nl{xrandr --listactivemonitors | awk '$4 {print $4}'}
     39 } else {
     40 	monitors = $*
     41 }
     42 
     43 if (~ $flags -l) {
     44 	exec echo $^monitors
     45 }
     46 
     47 if (~ $flags -n) {
     48 	for (m in $monitors) {
     49 		if (!test -f $_dir/$m) {
     50 			pop = ($pop $m)
     51 		}
     52 	}
     53 } else {
     54 	pop = $monitors
     55 }
     56 
     57 if (!~ $flags -r) {
     58 	wallpapers = `$nl{find $search -type f | shuf -n $#pop}
     59 	for (i in `{seq $#pop}) {
     60 		rm -f $_dir/$pop($i)
     61 		ln -s `$nl{realpath $wallpapers($i)} $_dir/$pop($i)
     62 	}
     63 }
     64 
     65 for (m in $monitors) {
     66 	args = ($args --output $m --zoom $_dir/$m)
     67 }
     68 xwallpaper $args