diff options
author | zachir <zachir@librem.one> | 2025-08-30 09:47:00 -0500 |
---|---|---|
committer | zachir <zachir@librem.one> | 2025-08-30 09:47:00 -0500 |
commit | 6d4b7d826830e25b7bbe254519a1c4906284b481 (patch) | |
tree | 684046c969c6887f824aff8c0a52854eec7c52aa | |
parent | a1a6bba5f661f240ce7cf5bf623327f4b073e77a (diff) |
Improve dmenu support
-rwxr-xr-x | dmenumount | 18 | ||||
-rwxr-xr-x | dmenuumount | 13 |
2 files changed, 18 insertions, 13 deletions
@@ -12,23 +12,27 @@ printhelp () { } while getopts "hd:" o; do case "${o}" in - d) ARGS="$ARGS$OPTARG " ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; *) printhelp ;; esac done +dmenu_lp () { + dmenu -l 15 -p "$@" +} + getmount() { \ [ -z "$chosen" ] && exit 1 # shellcheck disable=SC2086 - mp="$(find $1 2>/dev/null | dmenu -l 15 -p "Type in mount point." $ARGS)" || exit 1 + mp="$(find $1 2>/dev/null | dmenu_lp "Type in mount point." ${ARG:+"$ARG"})" || exit 1 test -z "$mp" && exit 1 if [ ! -d "$mp" ]; then - mkdiryn=$(printf "No\\nYes" | dmenu -l 15 -p "$mp does not exist. Create it?" $ARGS) || exit 1 + mkdiryn=$(printf "No\\nYes" | dmenu_lp "$mp does not exist. Create it?" ${ARG:+"$ARG"}) || exit 1 [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo mkdir -p "$mp") fi } mountusb() { \ - chosen="$(echo "$usbdrives" | dmenu -l 15 -p "Mount which drive?" $ARGS)" || exit 1 + chosen="$(echo "$usbdrives" | dmenu_lp "Mount which drive?" ${ARG:+"$ARG"})" || exit 1 chosen="$(echo "$chosen" | awk '{print $1}')" echo "$chosen" sudo mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0 @@ -44,17 +48,17 @@ mountusb() { \ } mountandroid() { \ - chosen="$(echo "$anddrives" | dmenu -l 15 -p "Which Android device?" $ARGS)" || exit 1 + chosen="$(echo "$anddrives" | dmenu_lp "Which Android device?" ${ARG:+"$ARG"})" || exit 1 chosen="$(echo "$chosen" | cut -d : -f 1)" getmount "$HOME -maxdepth 3 -type d" simple-mtpfs --device "$chosen" "$mp" - echo "OK" | dmenu -l 15 -p "Tap Allow on your phone if it asks for permission and then press enter" $ARGS || exit 1 + echo "OK" | dmenu_lp "Tap Allow on your phone if it asks for permission and then press enter" ${ARG:+"$ARG"} || exit 1 simple-mtpfs --device "$chosen" "$mp" notify-send "🤖 Android Mounting" "Android device mounted to $mp." } asktype() { \ - choice="$(printf "USB\\nAndroid" | dmenu -l 15 -p "Mount a USB drive or Android device?" $ARGS)" || exit 1 + choice="$(printf "USB\\nAndroid" | dmenu_lp "Mount a USB drive or Android device?" ${ARG:+"$ARG"})" || exit 1 case $choice in USB) mountusb ;; Android) mountandroid ;; diff --git a/dmenuumount b/dmenuumount index 59383f1..32175f2 100755 --- a/dmenuumount +++ b/dmenuumount @@ -11,29 +11,30 @@ printhelp () { } while getopts "hd:" o; do case "${o}" in - d) ARGS="$ARGS$OPTARG " ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; *) printhelp ;; esac done -DMENU="dmenu" -DEFARGS="-l 15 -p" +dmenu_lp () { + dmenu -l 15 -p "$@" +} unmountusb() { [ -z "$drives" ] && exit - chosen="$(echo "$drives" | $DMENU $DEFARGS "Unmount which drive?" $ARGS)" || exit 1 + chosen="$(echo "$drives" | dmenu_lp "Unmount which drive?" ${ARG:+"$ARG"})" || exit 1 chosen="$(echo "$chosen" | awk '{print $1}')" [ -z "$chosen" ] && exit sudo umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted." } unmountandroid() { \ - chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | $DMENU $DEFARGS "Unmount which device?" $ARGS )" || exit 1 + chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu_lp "Unmount which device?" ${ARG:+"$ARG"} )" || exit 1 [ -z "$chosen" ] && exit sudo umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted." } asktype() { \ - choice="$(printf "USB\\nAndroid" | $DMENU $DEFARGS "Unmount a USB drive or Android device?" $ARGS)" || exit 1 + choice="$(printf "USB\\nAndroid" | dmenu_lp "Unmount a USB drive or Android device?" ${ARG:+"$ARG"})" || exit 1 case "$choice" in USB) unmountusb ;; Android) unmountandroid ;; |