check in current version of browse script - randomcrap - random crap programs of varying quality
 (HTM) git clone git://git.codemadness.org/randomcrap
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit e919b4388786321584392aad54286e5c4645f618
 (DIR) parent 01859930de6ceb6498b7ca2d0104e3d588ba971e
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat, 28 Oct 2023 12:16:59 +0200
       
       check in current version of browse script
       
       Diffstat:
         A browse.sh                           |      40 +++++++++++++++++++++++++++++++
       
       1 file changed, 40 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/browse.sh b/browse.sh
       @@ -0,0 +1,40 @@
       +#!/bin/sh
       +# simple directory browser and file opener using dmenu.
       +
       +MENU="$HOME/.config/scripts/dmenu.sh"
       +APPS="$HOME/.config/scripts/runmenu/list.sh"
       +
       +listentries() {
       +        # linux-ism
       +        ls -1aFN --group-directories-first --file-type
       +        #ls -1aFN --group-directories-first
       +}
       +
       +while :; do
       +        item=$(listentries | dmenu -l 50 -i)
       +        # case-insensitive matching (for file extensions that have .JPG, etc).
       +        matchitem=$(printf '%s' "$item" | tr '[:upper:]' '[:lower:]')
       +        #mimetype="$(file -b -b "$item")" # TODO: open text/* with st and less ?
       +
       +        case "${matchitem}" in
       +        */)
       +                cd "$item"
       +                continue;;
       +        "")
       +                exit 0;;
       +        *.jpg|*.jpeg|*.png|*.gif|*.svg|*.webp)
       +                sxiv "$item";;
       +        *.mp3|*.flac|*.opus)
       +                mpv "$item";;
       +        *.mp4|*.webm|*.mkv|*.avi)
       +                mpv "$item";;
       +        *.pdf)
       +                mupdf "$item";;
       +        *)
       +                cmd=$($APPS | $MENU $* -p "Run with:")
       +                test "$cmd" = "" && exit 1
       +                "$cmd" "$item"
       +                ;;
       +        esac
       +        exit $?
       +done