diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-06-19 10:30:03 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-06-19 10:30:03 +0200 |
commit | ff6c38d3364165a7bae431888a87aab1e53a80b9 (patch) | |
tree | c0ac13cdbf388d59193522eb8775788a6fae3e81 /bin/menuscripts/mmedia | |
parent | 4bf952169c5d94044a6dd3c868c990716d22c58b (diff) | |
parent | 05e1216b45340702f82a4946002015a05cebe9b1 (diff) |
Merge branch 'main' of debuc.com:dotfiles
Diffstat (limited to 'bin/menuscripts/mmedia')
-rwxr-xr-x | bin/menuscripts/mmedia | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/bin/menuscripts/mmedia b/bin/menuscripts/mmedia new file mode 100755 index 0000000..3141c3b --- /dev/null +++ b/bin/menuscripts/mmedia @@ -0,0 +1,59 @@ +#!/usr/bin/env sh + +tmp="/tmp/mmedia" + +dirs="$HOME/dl" + +concat_path() { sed "s#^$HOME#\~#;s#\([^/]\)[^/]*/#\1/#g"; } + +case "$1" in + "video") + regex='^.\+\.\(webm\|mp4\|mpeg\|mkv\)$' + dirs="$dirs $HOME/vids" + viewer() { $PLAYER "$1"; } ;; + "pdf") + regex='^.\+\.\(pdf\)$' + dirs="$dirs $HOME/docs" + viewer() { $VIEWER "$1"; } ;; + "image") + regex='^.\+\.\(png\|avif\|jpg\)$' + dirs="$dirs $HOME/pics" + viewer() { $IMAGE "$1"; } ;; + "cursus") + regex='^.*/[cC]ursus/index.html$' + dirs="$HOME/docs/school/Vakken" + concat_path() { sed "s#$dirs/##;s#/[cC]ursus/index.html##"; } + viewer() { $BROWSER "$1"; } ;; + "schoolpdf") + regex='^.\+\.\(pdf\)$' + dirs="$HOME/docs/school/Vakken" + concat_path() { sed "s#$dirs/##;s#/[cC]ursus/index.html##;s#/Cursus/viewer/files/#: #"; } + viewer() { $VIEWER "$1"; } ;; + *) + choice="$(cat <<-EOF | dmenu -g 5 -l 1 -c + video + pdf + image + cursus + schoolpdf + EOF + )" + [ "$choice" ] || exit 1 + "$0" "$choice" + exit ;; +esac + +shift +[ "$1" ] && dirs="$1" + +choice="$( + find -L $dirs 2> /dev/null | + grep "$regex" | + sort | tee "$tmp" | + concat_path | + dmenu -px -c -i -l 10 -g 1 -x)" + +file="$(sed -n "${choice}p" "$tmp")" +[ -r "$file" ] || exit 1 + +viewer "$file" |