aboutsummaryrefslogtreecommitdiff
path: root/dmenu-filepicker
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xdmenu-filepicker29
1 files changed, 29 insertions, 0 deletions
diff --git a/dmenu-filepicker b/dmenu-filepicker
new file mode 100755
index 0000000..a14bd53
--- /dev/null
+++ b/dmenu-filepicker
@@ -0,0 +1,29 @@
1#!/bin/sh
2
3# A dmenu-based file picker (prints selected file to stdout)
4# Requires: dmenu (or similar)
5# Usage: dmenu-filepicker [path]
6
7menu=${MENU:-dmenu}
8menuopts="-i -l 15"
9
10basedir="$(pwd)"
11
12next="${@:-$(pwd)}"
13
14while true; do
15 if [ -z "$next" ]; then
16 break
17 elif [ "$next" = "." ]; then
18 pwd
19 break
20 elif [ -d "$next" ]; then
21 cd "$next"
22 next=$(ls -a | $menu $menuopts)
23 else
24 echo "$(pwd)/$next"
25 break
26 fi
27done
28
29cd "$basedir"

Generated with cgit - Back to sebastiano.tronto.net