diff options
author | zachir <zachir@librem.one> | 2025-08-30 09:40:41 -0500 |
---|---|---|
committer | zachir <zachir@librem.one> | 2025-08-30 09:40:41 -0500 |
commit | a26e6ae5253d95e7238dab20e298129a468e04f6 (patch) | |
tree | 859d057fa005024b4241a546b86713fafe9963b0 | |
parent | b3954287e7d50d744da3221677c89e108cff36c4 (diff) |
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.
-rwxr-xr-x | bm | 8 | ||||
-rwxr-xr-x | brc | 2 | ||||
-rwxr-xr-x | bsc | 2 | ||||
-rwxr-xr-x | dmenu_books | 2 | ||||
-rwxr-xr-x | dmount | 14 | ||||
-rwxr-xr-x | dmpv | 13 | ||||
-rwxr-xr-x | fdc | 2 | ||||
-rwxr-xr-x | ffc | 2 | ||||
-rwxr-xr-x | lwc | 2 | ||||
-rwxr-xr-x | mbc | 2 | ||||
-rwxr-xr-x | mprisctl | 2 | ||||
-rwxr-xr-x | passmenu | 6 | ||||
-rwxr-xr-x | power-menu | 2 | ||||
-rwxr-xr-x | qbc | 2 | ||||
-rwxr-xr-x | rs | 2 | ||||
-rwxr-xr-x | scrshot | 4 |
16 files changed, 40 insertions, 27 deletions
@@ -57,7 +57,7 @@ while getopts "hbBcrflmqxwd:u:" o; do case "${o}" in m) SEL="MBC" ;; q) SEL="QBC" ;; c) SEL="CLIPB" ;; - d) ARG="$OPTARG";; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG " ;; *) printhelp ;; esac done @@ -85,6 +85,10 @@ bra () { } #}}} +dmenu_lp () { + dmenu -l 15 -p "$@" +} + #{{{ main if [ -n "$SEL" ]; then case "$SEL" in @@ -103,7 +107,7 @@ if [ -z "$CLIPB$BRA$BSC$FDC$FFC$LWC$MBC$QBC" ]; then echo "$BROWSERSINSTALLED" [ -z "$BROWSERSINSTALLED" ] && \ printf "No suitable browsers!\n" && exit 1 - BROWSERSEL="$(echo "$BROWSERSINSTALLED" | dmenu -l 10 -p "browser?" ${ARG:+"$ARG"})" + BROWSERSEL="$(echo "$BROWSERSINSTALLED" | dmenu_lp "browser?" ${ARG:+"$ARG"})" [ -z "$BROWSERSEL" ] && \ printf "No browser selected!\n" && exit 1 case "$BROWSERSEL" in @@ -11,7 +11,7 @@ printhelp () { #{{{ getopts while getopts "hd:u:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done @@ -11,7 +11,7 @@ printhelp () { #{{{ getopts while getopts "hd:u:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done diff --git a/dmenu_books b/dmenu_books index a579476..645ece8 100755 --- a/dmenu_books +++ b/dmenu_books @@ -5,7 +5,7 @@ printhelp () { } while getopts "hd:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; *) printhelp ;; esac done @@ -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%% *}" @@ -12,7 +12,7 @@ esac playvid () { while true; do - VIDEO=$(find "$HOME/Videos" | uniq | dmenu -l 15) + VIDEO=$(find "$HOME/Videos" | uniq | dmenu -l 15 "$@") [ -z "$VIDEO" ] && exit if [ "$VIDEO" = "." ]; then break; @@ -25,19 +25,20 @@ playvid () { } printhelp () { - printf "Usage: dmpv [-l] [-h]\n" printf "dmpv is a simple dmenu interface for playing content with mpv\n" + printf "dmpv [-l] [-h]\n" printf "dmpv assumes videos are stored in ~/Videos\n" - printf " -h\t\tprint this help message\n" - printf " -l\t\trun the prompt again after mpv exits\n" + printf "\tFlags are passed to dmenu\n" + printf "\t-h\t\tprint this help message\n" + printf "\t-l\t\trun the prompt again after mpv exits\n" } if [ -n "$HELP" ]; then printhelp && exit 0 elif [ -n "$LOOP" ]; then while true; do - playvid || exit 0 + playvid "$@" || exit 0 done else - playvid + playvid "$@" fi @@ -11,7 +11,7 @@ printhelp () { #{{{ getopts while getopts "hd:u:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done @@ -11,7 +11,7 @@ printhelp () { #{{{ getopts while getopts "hd:u:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done @@ -11,7 +11,7 @@ printhelp () { #{{{ getopts while getopts "hd:u:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done @@ -11,7 +11,7 @@ printhelp () { #{{{ getopts while getopts "hd:u:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done @@ -5,7 +5,7 @@ printhelp () { } while getopts "hd:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; *) printhelp ;; esac done @@ -17,12 +17,16 @@ else exit 1 fi +dmenu_ilr () { + dmenu -i -l 15 -r "$@" +} + prefix=${PASSWORD_STORE_DIR-~/.password-store} password_files=( "$prefix"/**/*.gpg ) password_files=( "${password_files[@]#"$prefix"/}" ) password_files=( "${password_files[@]%.gpg}" ) -password=$(printf '%s\n' "${password_files[@]}" | dmenu -i -l 15 -r "$@") +password=$(printf '%s\n' "${password_files[@]}" | dmenu_ilr "$@") [[ -n $password ]] || exit @@ -12,7 +12,7 @@ EOF type systemctl >/dev/null && SYSTEMCTL="systemctl" SYSTEMCTL="${SYSTEMCTL:-loginctl}" -COMMAND="$(echo "${LIST}" | dmenu -r)" +COMMAND="$(echo "${LIST}" | dmenu -r "$@")" case "${COMMAND}" in "shutdown") ${SYSTEMCTL} poweroff ;; @@ -11,7 +11,7 @@ printhelp () { #{{{ getopts while getopts "hd:u:" o; do case "${o}" in - d) ARG="$OPTARG" ;; + d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done @@ -1,2 +1,2 @@ #!/bin/sh -ps -U "$USER" -u "$USER" | awk '{print $4}' | tail -n+2 | sort -u | dmenu -l 15 -p "Restart: " | xargs -r -- t -r +ps -U "$USER" -u "$USER" | awk '{print $4}' | tail -n+2 | sort -u | dmenu -l 15 -p "Restart: " "$@" | xargs -r -- t -r @@ -22,8 +22,8 @@ while getopts "wxd:s:o:" o; do case "${o}" in x) SCRSH="maim" ;; - d) DARG="$OPTARG" ;; - s) SARG="$OPTARG" ;; + d) DARG=${DARG:+"$DARG "}"$OPTARG" ;; + s) SARG=${SARG:+"$SARG "}"$OPTARG" ;; o) FILENAME="$OPTARG" ;; *) printhelp ;; esac done |