From a26e6ae5253d95e7238dab20e298129a468e04f6 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 30 Aug 2025 09:40:41 -0500 Subject: Improve dmenu support You can now (again) pass multiple flags to dmenu through -d flags, as well as for some scripts all args are passed to dmenu. --- dmount | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'dmount') diff --git a/dmount b/dmount index 2f1a3c2..053ca3e 100755 --- a/dmount +++ b/dmount @@ -15,7 +15,7 @@ error_msg () { } while getopts "hpPugd:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; p) USE_USER_ID="y" ;; P) unset USE_USER_ID ;; u) USERID="$OPTARG" ;; @@ -31,6 +31,10 @@ esac done IS_HFS="" +dmenu_lp () { + dmenu -l 15 -p "$@" +} + check_crypto () { [ "$(sudo lsblk -oFSTYPE "$1" | wc -l)" -gt 2 ] && printf "y" } @@ -40,8 +44,8 @@ is_crypto () { } unlock_crypto () { - NAME="$(dmenu -l 15 -p "Name" ${ARG:+"$ARG"} < /dev/null)" - PASSWORD="$(dmenu -l 15 -p "Password" -P ${ARG:+"$ARG"} < /dev/null)" + NAME="$(dmenu_lp "Name" ${ARG:+"$ARG"} < /dev/null)" + PASSWORD="$(dmenu_lp "Password" -P ${ARG:+"$ARG"} < /dev/null)" echo "$PASSWORD" | sudo cryptsetup open "$1" "$NAME" || FAILED="y" unset PASSWORD [ -n "$FAILED" ] && \ @@ -64,7 +68,7 @@ get_available () { sudo lsblk -oPATH,SIZE,FSTYPE,MOUNTPOINT | tail -n+2 | while getmount() { \ [ -z "$chosen" ] && exit 1 # shellcheck disable=SC2086 - mp="$(find $1 2>/dev/null | dmenu $ARGS -l 15 -p "Type in mount point.")" || error_msg "Canceled; no mount point chosen." + mp="$(find $1 2>/dev/null | dmenu ${ARG:+"$ARG"} -l 15 -p "Type in mount point.")" || error_msg "Canceled; no mount point chosen." test -z "$mp" && \ exit 1 if [ ! -d "$mp" ]; then @@ -97,7 +101,7 @@ mount_device () { sudo mount ${IS_HFS:+"-t"} ${IS_HFS:+"hfsplus"} ${MOUNTPROPS:+"-o"} ${MOUNTPROPS:+"$MOUNTPROPS"} "$1" "$mp" && show "Mounted successfully\n" } -DEVICE="$(get_available | dmenu -l 15 -p "Devices" ${ARG:+"$ARG"} )" +DEVICE="$(get_available | dmenu_lp "Devices" ${ARG:+"$ARG"} )" [ -z "$DEVICE" ] && exit 1 echo "$DEVICE" | grep -q "hfsplus" && IS_HFS="y" chosen="${DEVICE%% *}" -- cgit v1.2.3