You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
2.0 KiB
110 lines
2.0 KiB
#!/usr/bin/env bash |
|
|
|
NOTIFY="FALSE" |
|
# The download script will append an extention |
|
file="/tmp/background" |
|
|
|
function notification(){ |
|
notify-send "$( jq -r '.name' /tmp/backgroundinfo.json)" |
|
} |
|
|
|
function get_random_earth_slug(){ |
|
curl -s "https://earthview.withgoogle.com/" | hq 'a.intro__explore' attr href |
|
} |
|
|
|
function download_earth_image(){ |
|
local slug=$(get_random_earth_slug) |
|
file="$file.jpg" |
|
curl -s "https://earthview.withgoogle.com/_api${slug}.json" > /tmp/backgroundinfo.json |
|
image=$( jq -r '.photoUrl' /tmp/backgroundinfo.json ) |
|
curl -s -o "$file" "$image" |
|
} |
|
|
|
function get_film_image(){ |
|
videoFolder="$HOME/Videos/wallpaper-candidates/" |
|
file="$file.png" |
|
args=() |
|
while [[ "$1" == "--"* ]]; do |
|
case "$1" in |
|
"--effect") |
|
args+=("--effect") |
|
shift |
|
;; |
|
*) |
|
echo "Unknown option $1" |
|
shift |
|
esac |
|
done |
|
|
|
if [ -f "$1" ]; then |
|
randomVideoFrame -o "$file" "$1" |
|
else |
|
if [ -d "$1" ]; then |
|
videoFolder="$1" |
|
elif [ -d "${videoFolder}$1" ]; then |
|
videoFolder="${videoFolder}$1" |
|
fi |
|
find -L "$videoFolder" -type f \( -name "*.mp4" -o -name "*.mkv" -o -name "*.avi" \) | multigrep "$@"| shuf | head -n 1 | xargs randomVideoFrame "${args[@]}" -o "$file" |
|
fi |
|
} |
|
|
|
function set_background(){ |
|
if command -v nitrogen > /dev/null; then |
|
nitrogen --set-zoom-fill "$file" |
|
elif command -v nitrogen > /dev/null; then |
|
feh --bg-fill "$file" |
|
else |
|
echo "No wallpaper tools found" |
|
fi |
|
if [ "$NOTIFY" == "TRUE" ]; then |
|
notification |
|
fi |
|
} |
|
function rand(){ |
|
case "$( seq 1 2 | shuf | head -n 1)" in |
|
"1") |
|
download_earth_image |
|
set_background |
|
;; |
|
"2") |
|
get_film_image |
|
set_background |
|
;; |
|
esac |
|
} |
|
|
|
while [ -n "$1" ]; do |
|
case "$1" in |
|
"--notify") |
|
NOTIFY="TRUE" |
|
shift |
|
;; |
|
"--only-notify") |
|
notification |
|
shift |
|
exit 0 |
|
;; |
|
"--earth") |
|
download_earth_image |
|
set_background |
|
shift |
|
exit 0 |
|
;; |
|
"--film") |
|
shift |
|
get_film_image "$@" |
|
set_background |
|
exit 0 |
|
;; |
|
"--random") |
|
rand |
|
exit 0 |
|
;; |
|
*) |
|
echo "Hopefully don't get here" |
|
shift |
|
exit 1 |
|
esac |
|
done |
|
|
|
set_image
|
|
|