#! /bin/zsh # # this file: # http://user.it.uu.se/~embe8573/conf/.zsh/mpv # https://dataswamp.org/~incal/conf/.zsh/mpv # # mpv conf: # https://dataswamp.org/~incal/conf/mpv/mpv.conf # # mpv keys: # https://dataswamp.org/~incal/conf/mpv/input.conf # # send keys: # https://dataswamp.org/~incal/scripts/mpv-fetch-key play-two-random () { local -a vids vids=("${(@f)$(ls *.(flv|mkv|mp4|webm))}") local num_vids=${#vids} local v1i local v2i until [[ $v1i != $v2i ]]; do v1i=$(( $RANDOM % $num_vids + 1 )) v2i=$(( $RANDOM % $num_vids + 1 )) done local v1=$vids[$v1i] local v2=$vids[$v2i] play-two-width $v1 $v2 echo $v1 echo $v2 } play-two-width () { local one=$1 local two=$2 local v2w=$(video-width $two) mpv \ $one \ --external-file=$two \ --loop \ --no-resume-playback \ --lavfi-complex="[vid1] scale=${v2w}:-1 [vid1s]; [vid1s] [vid2] vstack [vo]" } alias play-two=play-two-width alias play-two-w=play-two-width play-two-height () { local one=$1 local two=$2 local v2w=$(video-width $two) mpv \ $one \ --external-file=$two \ --loop \ --no-resume-playback \ --lavfi-complex="[vid1] scale=${v2w}:-1 [vid1s]; [vid1s] [vid2] hstack [vo]" } alias play-two-h=play-two-height play-slow-and-silent () { local -a fs fs=($@) local -a opts opts=( --ao=null --no-resume-playback --shuffle --speed=0.78 ) [[ $fs ]] && mpv $opts $fs || mpv $opts **/*.(flv|mkv|mp4|webm) } alias pls=play-slow-and-silent play-sound () { mpv --vo=null $@ } pl () { local -a fs fs=($@) if (( ${+DISPLAY} )); then # [1] mpv $fs else play-sound $fs fi } play-local () { local -a opts opts=($@) mpv \ --no-resume-playback \ --shuffle \ --volume=30 \ $opts *.(flv|mkv|mp4|webm) } alias pll=play-local play-local-recursively () { local -a opts opts=($@) mpv \ --no-resume-playback \ --shuffle \ --volume=30 \ $opts **/*.(flv|mkv|mp4|webm) } alias pllr=play-local-recursively # [1] zsh < 5.3: (( ${+DISPLAY} )) # zsh >= 5.3: [[ -v VAR ]] # POSIX: [ -n "${VAR+1}" ] # # # $ zsh --version # Debian 10/buster: 5.7 # OpenBSD 6.7: 5.8 # OpenBSD 6.6: 5.7 # SunOS 5.10: 4.3