#!/bin/sh cd ~/Videos || exit case "$@" in "-l") LOOP="true" ;; "-h") HELP="true" ;; esac playvid () { while true; do VIDEO=$(find "$HOME/Videos" | uniq | dmenu -l 15) [ -z "$VIDEO" ] && exit if [ "$VIDEO" = "." ]; then break; fi [ -d "$VIDEO" ] && cd "$VIDEO" && continue [ -f "$VIDEO" ] && break pwd done mpv "$VIDEO" } printhelp () { printf "Usage: dmpv [-l] [-h]\n" printf "dmpv is a simple dmenu interface for playing content with mpv\n" printf "dmpv assumes videos are stored in ~/Videos\n" printf " -h\t\tprint this help message\n" printf " -l\t\trun the prompt again after mpv exits\n" } if [ -n "$HELP" ]; then printhelp && exit 0 elif [ -n "$LOOP" ]; then while true; do playvid || exit 0 done else playvid fi