#! /bin/bash bgsDirectory="${HOME}/bgs/" slideshow() { gsettings set org.cinnamon.desktop.background.slideshow slideshow-enabled "${1}" } setDirectory() { gsettings set org.cinnamon.desktop.background.slideshow image-source "directory:///${bgsDirectory}${1}" } setImage() { gsettings set org.cinnamon.desktop.background picture-uri "file:///${1}" } toggle(){ slideshowEnabled=$(gsettings get org.cinnamon.desktop.background.slideshow slideshow-enabled) if $slideshowEnabled; then slideshow false setImage "${bgsDirectory}/default.jpg" else slideshow true gsettings set org.cinnamon.desktop.background.slideshow image-source "directory:///${bgsDirectory}chsck/" fi } chooseRandom(){ shopt -s nullglob files=("${1}"*) length=$((${#files[@]})) echo "length: ${length}" randomIndex=$(($RANDOM % $length)) echo "random index: ${randomIndex}" setImage "${files[$randomIndex]}" } slideshowOrRandom(){ if [ "$#" -gt 1 ]&&[ "$2" = r ]; then slideshow false chooseRandom "${bgsDirectory}${1}" else slideshow true setDirectory "${1}" fi } case $1 in c) slideshowOrRandom "chsck/" "$2" ;; l) slideshowOrRandom "leics/" "$2" ;; a) slideshowOrRandom "art/" "$2" ;; t) toggle ;; *) slideshow false setImage "${bgsDirectory}/default.jpg" ;; esac