summary refs log tree commit diff
path: root/bin/menu
diff options
context:
space:
mode:
Diffstat (limited to 'bin/menu')
-rwxr-xr-xbin/menu50
1 files changed, 15 insertions, 35 deletions
diff --git a/bin/menu b/bin/menu
index 23e7801..b3e4759 100755
--- a/bin/menu
+++ b/bin/menu
@@ -3,65 +3,45 @@ set -e
 [ -n "$DEBUG" ] && set -x
 
 # make sure there we are the only running menu
-pgrep -x bemenu >/dev/null && killall -INT bemenu
+pgrep bemenu >/dev/null && pkill -f bemenu
 
 # always source the config to make sure
 . "$HOME"/.config/bemenu.conf
 
 arg0=bemenu
-prompt=${MENU_PROMPT:-󰈶󰩤}
-args=
+MENU_PROMPT=${MENU_PROMPT:-󰈶󰩤}
 
 idx=0
 while test $# -gt $idx; do
 	case "$1" in
 	-run)
 		arg0=bemenu-run
-		prompt="󰏌"
+		MENU_PROMPT="󰏌"
 		shift
 		;;
 	-drun)
-		# arg0=bemenu-drun
-		# prompt="󱂬"
+		arg0="j4-dmenu-desktop --dmenu=bemenu"
+		MENU_PROMPT="󱂬"
 		shift
-		desktopfiles() {
-			fd -e desktop . \
-				/usr/share/applications/ \
-				/usr/local/share/applications/ \
-				/var/lib/flatpak/app/*/current/active/export/share/applications/ \
-				"$XDG_DATA_HOME"/applications/ 2>/dev/null || true
-		}
-		list_apps() {
-			desktopfiles |
-				xargs -I{} awk -F= '/^Name=/{ print $2;exit; }' {} |
-				sort -u
-		}
-		get_desktopfile() {
-			desktopfiles |
-				xargs -I{} awk -v name="$1" -F= '/^Name=/{ if($2==name) print FILENAME }' {} |
-				sort -u |
-				head -n1
-		}
-		app=$(list_apps | MENU_PROMPT="󱂬" "$0")
-		[ -z "$app" ] && exit 0
-		desktopfile=$(get_desktopfile "$app")
-		[ -z "$desktopfile" ] && exit 0
-		nohup xdg-exec "$desktopfile" "$@" >/dev/null 2>&1 &
-		exit 0
 		;;
 	-p)
 		shift
-		prompt="$1"
+		MENU_PROMPT="$1"
 		shift
 		;;
 	-x)
 		shift
-		MENU_PASSWORD=1
+		BEMENU_OPTS="${BEMENU_OPTS} --password"
 		;;
 	esac
 	idx=$((idx + 1))
 done
 
-[ -n "${MENU_PASSWORD}" ] && args="${args} --password"
-[ -n "${MENU_POPUP}" ] && args="${args} --center --width-factor 0.5 --border 2 --list 8" # --fixed-height
-exec "${arg0}" --prompt "${prompt}" ${args} "$@"
+[ -n "${MENU_POPUP}" ] &&
+	BEMENU_OPTS="${BEMENU_OPTS} --center --width-factor 0.5 --border 2 --list 8" # --fixed-height
+
+BEMENU_OPTS="${BEMENU_OPTS} --prompt ${MENU_PROMPT}"
+
+BEMENU_OPTS="${BEMENU_OPTS} $*"
+
+exec ${arg0}