From fbbea1e4a92bbd96c4db33c50a9c441a5f844af1 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sat, 8 Jul 2023 05:37:51 +0900 Subject: bin: update menus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Robert Günzler --- bin/menu | 50 +++++++++++++++----------------------------------- 1 file changed, 15 insertions(+), 35 deletions(-) (limited to 'bin/menu') 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} -- cgit 1.4.1