aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-xvis-menu33
-rwxr-xr-xvis-open14
3 files changed, 37 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index a345647..985ebd6 100644
--- a/Makefile
+++ b/Makefile
@@ -78,6 +78,8 @@ install: vis
@mkdir -p ${DESTDIR}${PREFIX}/bin
@cp -f vis ${DESTDIR}${PREFIX}/bin
@chmod 755 ${DESTDIR}${PREFIX}/bin/vis
+ @cp -f vis-menu ${DESTDIR}${PREFIX}/bin
+ @chmod 755 ${DESTDIR}${PREFIX}/bin/vis-menu
@cp -f vis-open ${DESTDIR}${PREFIX}/bin
@chmod 755 ${DESTDIR}${PREFIX}/bin/vis-open
@cp -f vis-clipboard ${DESTDIR}${PREFIX}/bin
diff --git a/vis-menu b/vis-menu
new file mode 100755
index 0000000..9c432ea
--- /dev/null
+++ b/vis-menu
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+PATTERN="."
+[ -z "$VIS_MENU" ] && VIS_MENU="slmenu"
+[ -z "$VIS_MENU_ARGS" ] && VIS_MENU_ARGS="-b"
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -h|--help)
+ echo "usage: $(basename $0) [-h] [-p prompt]"
+ exit 0;
+ ;;
+ -p)
+ VIS_MENU_ARGS="$VIS_MENU_ARGS -p $2"
+ shift
+ shift
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
+
+if ! type "$VIS_MENU" >/dev/null 2>&1; then
+ if [ ! -z "$DISPLAY" ] && type "dmenu" >/dev/null 2>&1; then
+ VIS_MENU="dmenu"
+ else
+ echo "Neither slmenu nor dmenu found" >&2
+ exit 1
+ fi
+fi
+
+exec $VIS_MENU $VIS_MENU_ARGS
diff --git a/vis-open b/vis-open
index 39b8717..2b5a9b9 100755
--- a/vis-open
+++ b/vis-open
@@ -1,8 +1,7 @@
#!/bin/sh
PATTERN="."
-[ -z "$VIS_MENU" ] && VIS_MENU="slmenu"
-[ -z "$VIS_MENU_ARGS" ] && VIS_MENU_ARGS="-b"
+VIS_MENU_ARGS=""
while [ $# -gt 0 ]; do
case "$1" in
@@ -22,20 +21,11 @@ while [ $# -gt 0 ]; do
esac
done
-if ! type "$VIS_MENU" >/dev/null 2>&1; then
- if [ ! -z "$DISPLAY" ] && type "dmenu" >/dev/null 2>&1; then
- VIS_MENU="dmenu"
- else
- echo "Neither slmenu nor dmenu found" >&2
- exit 1
- fi
-fi
-
DIR=""
[ ! -z "$PATTERN" -a "$PATTERN" != "." -a -d "$PATTERN" ] && DIR="$PATTERN"
while true; do
- SEL=$({ echo ..; ls -1 $PATTERN 2>/dev/null || echo $PATTERN; } | $VIS_MENU $VIS_MENU_ARGS)
+ SEL=$({ echo ..; ls -1 $PATTERN 2>/dev/null || echo $PATTERN; } | vis-menu $VIS_MENU_ARGS)
[ -z "$SEL" ] && exit 1
[ ! -z "$DIR" ] && SEL="$DIR/$SEL"
if [ -d "$SEL" ]; then