summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzachir <zachir@librem.one>2025-08-30 09:47:00 -0500
committerzachir <zachir@librem.one>2025-08-30 09:47:00 -0500
commit6d4b7d826830e25b7bbe254519a1c4906284b481 (patch)
tree684046c969c6887f824aff8c0a52854eec7c52aa
parenta1a6bba5f661f240ce7cf5bf623327f4b073e77a (diff)
Improve dmenu support
-rwxr-xr-xdmenumount18
-rwxr-xr-xdmenuumount13
2 files changed, 18 insertions, 13 deletions
diff --git a/dmenumount b/dmenumount
index 4193e5c..7bbde5f 100755
--- a/dmenumount
+++ b/dmenumount
@@ -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 ;;