aboutsummaryrefslogtreecommitdiff
path: root/dmenu-filepicker
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2022-02-12 16:26:04 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2022-02-12 16:26:04 +0100
commit3f190a17b90cb3c641ca0ead72eb86ec3dd36651 (patch)
treefe0f4383d328a6aafeec6cf9ffbc585ed24a73c3 /dmenu-filepicker
parentdde2e2618499ddf4c7644418f792113fbe19b955 (diff)
downloadscripts-3f190a17b90cb3c641ca0ead72eb86ec3dd36651.tar.gz
scripts-3f190a17b90cb3c641ca0ead72eb86ec3dd36651.zip
Simplified dmenu-filepicker (but did not solve the change-of-focus problem I was trying to fix)
Diffstat (limited to 'dmenu-filepicker')
-rwxr-xr-xdmenu-filepicker26
1 files changed, 10 insertions, 16 deletions
diff --git a/dmenu-filepicker b/dmenu-filepicker
index 532fb82..7538008 100755
--- a/dmenu-filepicker
+++ b/dmenu-filepicker
@@ -4,28 +4,22 @@
4# Requires: dmenu (or similar) 4# Requires: dmenu (or similar)
5# Usage: dmenu-filepicker [path] 5# Usage: dmenu-filepicker [path]
6 6
7menu=${MENU:-dmenu} 7menu=dmenu
8menuopts="-i -l 15" 8menuopts="-i -l 15"
9 9
10basedir="$(pwd)" 10fullpath=$(realpath ${@:-$(pwd)})
11
12next="${@:-$(pwd)}"
13 11
14while true; do 12while true; do
15 if [ -z "$next" ]; then 13 if [ "$sel" = "." ]; then
16 break 14 echo "$fullpath" | sed 's|/\.||'
17 elif [ "$next" = "." ]; then
18 pwd
19 break 15 break
20 elif [ -d "$next" ]; then 16 elif [ -d "$fullpath" ]; then
21 cd "$next" 17 sel=$(ls -a "$fullpath" | sed 's|.*/||' | $menu $menuopts)
22 next=$(ls -a | $menu $menuopts) 18 fullpath=$(printf "$fullpath/%s\n" $sel)
23 else 19 else
24 echo "$next" | while read line; do 20 echo "$fullpath"
25 echo "$(pwd)/$line"
26 done
27 break 21 break
28 fi 22 fi
29done
30 23
31cd "$basedir" 24 [ -z "$sel" ] && break
25done

Generated with cgit - Back to sebastiano.tronto.net