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