diff options
Diffstat (limited to '.local/bin/setbg')
-rwxr-xr-x | .local/bin/setbg | 57 |
1 files changed, 40 insertions, 17 deletions
diff --git a/.local/bin/setbg b/.local/bin/setbg index b636a37..c288895 100755 --- a/.local/bin/setbg +++ b/.local/bin/setbg @@ -1,18 +1,41 @@ ---2024-10-23 16:26:25-- https://github.com/LukeSmithxyz/voidrice/blob/master/.local/bin/setbg -Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt' -Resolving github.com (github.com)... 20.207.73.82 -Connecting to github.com (github.com)|20.207.73.82|:443... connected. -HTTP request sent, awaiting response... 200 OK -Length: unspecified [text/html] -Saving to: ‘setbg’ - - 0K .......... .......... .......... .......... .......... 3.47M - 50K .......... .......... .......... .......... .......... 9.00M - 100K .......... .......... .......... .......... .......... 10.7M - 150K .......... .......... .......... .......... .......... 10.7M - 200K .......... .......... .......... .......... .......... 10.9M - 250K .......... .......... .......... .......... .......... 11.2M - 300K .......... .......... .......... ....... 10.8M=0.04s - -2024-10-23 16:26:25 (8.07 MB/s) - ‘setbg’ saved [345695] +#!/bin/sh +# This script does the following: +# Run by itself, set the wallpaper (at X start). +# If given a file, set that as the new wallpaper. +# If given a directory, choose random file in it. +# If wal is installed, also generates a colorscheme. + +# Location of link to wallpaper link. +bgloc="${XDG_DATA_HOME:-$HOME/.local/share}/bg" + +# Configuration files of applications that have their themes changed by pywal. +dunstconf="${XDG_CONFIG_HOME:-$HOME/.config}/dunst/dunstrc" +zathuraconf="${XDG_CONFIG_HOME:-$HOME/.config}/zathura/zathurarc" + +# Give -s as parameter to make notifications silent. +while getopts "s" o; do case "${o}" in + s) silent='1' ;; +esac done + +shift $((OPTIND - 1)) + +trueloc="$(readlink -f "$1")" && +case "$(file --mime-type -b "$trueloc")" in + image/* ) ln -sf "$trueloc" "$bgloc" && [ -z "$silent" ] && notify-send -i "$bgloc" "Changing wallpaper..." ;; + inode/directory ) ln -sf "$(find "$trueloc" -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" "$bgloc" && [ -z "$silent" ] && notify-send -i "$bgloc" "Random Wallpaper chosen." ;; + *) [ -z "$silent" ] && notify-send "🖼️ Error" "Not a valid image or directory." ; exit 1;; +esac + +# If pywal is installed, use it. +if command -v wal >/dev/null 2>&1 ; then + wal -n -i "$(readlink -f $bgloc)" -o "${XDG_CONFIG_HOME:-$HOME/.config}/wal/postrun" >/dev/null 2>&1 +# If pywal is removed, return config files to normal. +else + [ -f "$dunstconf.bak" ] && unlink "$dunstconf" && mv "$dunstconf.bak" "$dunstconf" + [ -f "$zathuraconf.bak" ] && unlink "$zathuraconf" && mv "$zathuraconf.bak" "$zathuraconf" +fi + +xwallpaper --zoom "$bgloc" +# If running, dwm hit the key to refresh the color scheme. +pidof dwm >/dev/null && xdotool key super+F5 |