diff options
author | Julian T <julian@jtle.dk> | 2023-02-06 20:50:11 +0100 |
---|---|---|
committer | Julian T <julian@jtle.dk> | 2023-02-06 21:33:55 +0100 |
commit | 265b3b7b976732ab00e57aa064f06857b547b2b0 (patch) | |
tree | a298676cf535cadd5602d8aefa110abd3687e996 /scripts/Scripts/setwall | |
parent | e9d6b42be25ac756a7cc9c44e1a34b78919dfec2 (diff) |
Create new setwall script in rust
Diffstat (limited to 'scripts/Scripts/setwall')
-rwxr-xr-x | scripts/Scripts/setwall | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/scripts/Scripts/setwall b/scripts/Scripts/setwall deleted file mode 100755 index 86214a6..0000000 --- a/scripts/Scripts/setwall +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/env bash - -WALLFILE="$HOME/Pictures/wallconfig" -WALLLINK="$HOME/Pictures/current_wall" -BINNAME="setwall" - -function unsetwalls() { - for wall in $@; do - echo unsetting $wall - pat=$(echo $wall | sed 's/\//\\\//g') - sed -i.bak "/$pat/d" $WALLFILE - done -} -function unsetcur() { - if [ -f "${WALLLINK}" ]; then - unsetwalls $(realpath --relative-to=$HOME $WALLLINK) - else - echo "could not resolve current wallpaper" - exit 1 - fi -} -function delete() { - echo deleting wallfile - rm $WALLFILE -} -function unsetall() { - echo clearing wallfile - echo -n > $WALLFILE -} - -function setwalls() { - for wall in $@; do - if grep -q $wall "$WALLFILE"; then - echo $wall already set - else - echo setting $wall - echo $wall >> $WALLFILE - fi - done -} - -function runsetwall() { - feh --bg-tile $1 - # wal --saturate 0.9 -i $1 -} - -function applywall() { - echo applying wallpaper $1 - rm $WALLLINK - ln -s $(pwd)/$1 $WALLLINK - runsetwall $1 -} - -function reapply() { - echo reapplying linked wallpaper - # feh --bg-fill $WALLLINK - runsetwall $WALLLINK -} - -function help() { - echo "Wallpaper mangement script" - echo - echo "Syntax: ${BINNAME} OPTIONS" - echo "options:" - echo " -A, --apply [OPTIONS] applies a random wallpaper" - echo " -S, --set FILES sets new wallpapers" - echo " -U, --unset [OPTIONS] [FILES] unsets new wallpapers" - echo " -P, --preview FILE temporarily sets a wallpaper" - echo " -h, --help this message" - echo - echo "unset options:" - echo " -a, --all clears wallconfig file" - echo " -d, --delete deleted wallconfig file" - echo " -c, --current unset currently applied wallpaper" - echo - echo "apply options:" - echo " -r, --reapply reapply last applied wallpaper" -} - -function unknown() { - echo "${BINNAME}: unknown option $1" 1>&2 - exit 1 -} - -if [[ $# -eq 0 ]]; then - echo "${BINNAME}: no arguments given" 1>&2 - help - exit 1 -fi - -mode="N" -pos="" - -function apply_mode() { - case $mode in - U) - unsetwalls $pos - ;; - S) - setwalls $pos - ;; - A) - applywall $(shuf -n 1 $WALLFILE) - ;; - esac -} - -while [[ $# -gt 0 ]]; do - keys="$1" - # If $1 does is single - argument - if [[ $1 == '-'* ]] && [[ ! $1 == '--'* ]] ; then - # Remove first - - keys=${keys#?} - # Place space between each character - keys=$(echo $keys | sed 's/./-& /g') - fi - - for key in $keys; do - case $mode in - U) - case $key in - -a|--all) - unsetall - mode="N" - ;; - -d|--delete) - delete - mode="N" - ;; - -c|--current) - unsetcur - mode="N" - ;; - '-'*|'--'*) - unknown $key - ;; - *) - pos="$pos $key" - shift - ;; - esac - ;; - A) - case $key in - -r|--reapply) - reapply - mode="N" - ;; - '-'*|'--'*) - unknown $key - ;; - *) - echo Unexpected argument - help - mode="N" - ;; - esac - ;; - S) - pos="$pos $key" - shift - ;; - - *) - apply_mode - case $key in - -A|--apply) - mode="A" - shift - ;; - -U|--unset) - mode="U" - shift - ;; - -S|--set) - mode="S" - shift - ;; - -P|--preview) - applywall $2 - ;; - -h|--help) - help - shift - exit 0 - ;; - *) - unknown $key - ;; - esac - ;; - esac - done -done - -apply_mode |