#!/bin/bash # Feed script a url. ext="${1##*.}" mpvFiles="mkv mp4 gif" imageFiles="png jpg jpeg jpe" wgetFiles="mp3 pdf" # Reproduce in terminal if no X server [ -z "$(xset q 2>/dev/null)" ] && mpv -vo caca "$1" # Check youtube link if echo "$1" | grep youtube >/dev/null; then chosen=$(echo -e "mpv\nmpv (loop)\nmpv (float)\nmpv (terminal)\ndownload (y-dl)\nqutebrowser\nw3m" | dmenu -i) case "$chosen" in mpv) nohup mpv "$1" >/dev/null & ;; "mpv (loop)") nohup mpv --loop "$1" >/dev/null & ;; "mpv (float)") ~/scripts/floats/mpvFloat.sh "$1" ;; "mpv (terminal)") mpv --loop -vo caca "$1" ;; "download (y-dl)") ~/scripts/youtube-dlFloat.sh "$1" & ;; qutebrowser) qutebrowser "$1" & ;; w3m) urxvt -e w3m "$1" & ;; esac # General checks elif echo $imageFiles | grep -w $ext >/dev/null; then chosen=$(echo -e "pqiv\nwget" | dmenu -i) case "$chosen" in pqiv) nohup pqiv -i "$1" >/dev/null & ;; wget) nohup wget "$1" & ;; esac elif echo $mpvFiles | grep -w $ext >/dev/null; then chosen=$(echo -e "mpv\nmpv (loop)\nmpv (terminal)\nqutebrowser" | dmenu -i) case "$chosen" in mpv) nohup mpv "$1" >/dev/null & ;; "mpv (loop)") nohup mpv --loop "$1" >/dev/null & ;; "mpv (float)") ~/scripts/floats/mpvFloat.sh "$1" ;; "mpv (terminal)") mpv --loop -vo caca "$1" ;; qutebrowser) qutebrowser "$1" & ;; esac elif echo $wgetFiles | grep -w $ext >/dev/null; then nohup wget "$1" >~/log-wget.txt & else chosen=$(echo -e "mpv\nmpv (loop)\nmpv (terminal)\npqiv\ndownload (y-dl)\nqutebrowser\nw3m" | dmenu -i) case "$chosen" in mpv) nohup mpv "$1" >/dev/null & ;; "mpv (loop)") nohup mpv --loop "$1" >/dev/null & ;; "mpv (float)") ~/scripts/floats/mpvFloat.sh "$1" ;; "mpv (terminal)") mpv --loop -vo caca "$1" ;; pqiv) nohup pqiv -i -P "0,0" -T "pqivfloat" "$1" >/dev/null & ;; "download (y-dl)") ~/scripts/floats/youtube-dlFloat.sh "$1" & ;; qutebrowser) qutebrowser "$1" & ;; w3m) urxvt -e w3m "$1" & ;; esac fi