diff options
Diffstat (limited to 'bm')
-rwxr-xr-x | bm | 107 |
1 files changed, 52 insertions, 55 deletions
@@ -18,41 +18,46 @@ printhelp () { #{{{ BROWSERSBYCMD # Native binaries -type basilisk >/dev/null 2>&1 && CANBSC="bsc" -type brave >/dev/null 2>&1 && CANBRA="brave" -type firedragon >/dev/null 2>&1 && CANFDC="fdc" -type firefox >/dev/null 2>&1 && CANFFC="ffc" -type librewolf >/dev/null 2>&1 && CANLWC="lwc" -type mullvad-browser >/dev/null 2>&1 && CANMBC="mbc" -type qutebrowser >/dev/null 2>&1 && CANQBC="qbc" +type basilisk >/dev/null 2>&1 && BSC="bsc" +type brave >/dev/null 2>&1 && BRC="brc" && BRA="brave" +type firedragon >/dev/null 2>&1 && FDC="fdc" +type firefox >/dev/null 2>&1 && FFC="ffc" +type librewolf >/dev/null 2>&1 && LWC="lwc" +type mullvad-browser >/dev/null 2>&1 && MBC="mbc" +type qutebrowser >/dev/null 2>&1 && QBC="qbc" [ -n "$WAYLAND_DISPLAY" ] && \ - type wl-copy >/dev/null 2>&1 && CANCLIPB="clip" -[ -z "$WAYLAND_DISPLAY" -a -n "$DISPLAY" ] && \ - type xclip >/dev/null 2>&1 && CANCLIPB="clip" + type wl-copy >/dev/null 2>&1 && CLIPB="clip" +[ -z "$WAYLAND_DISPLAY" ] && [ -n "$DISPLAY" ] && \ + type xclip >/dev/null 2>&1 && CLIPB="clip" # Flatpaks if type flatpak >/dev/null; then LIST="$(flatpak list)" - echo "$LIST" | grep -q "org.mozilla.firefox" && CANFFC="ffc" - echo "$LIST" | grep -q "com.brave.Browser" && CANBRA="brave" + echo "$LIST" | grep -q "org.mozilla.firefox" && FFC="ffc" + echo "$LIST" | grep -q "com.brave.Browser" && BRA="brave" echo "$LIST" | grep -q "io.gitlab.librewolf-community" && \ - CANLWC="lwc" + LWC="lwc" echo "$LIST" | grep -q "org.qutebrowser.qutebrowser" && \ - CANQBC="qbc" + QBC="qbc" fi +BROWSERSINSTALLED="$(printf "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s" \ + "$BSC" "${BSC:+\n}" "$BRC" "${BRC:+\n}" "$BRA" "${BRA:+\n}" \ + "$FDC" "${FDC:+\n}" "$FFC" "${FFC:+\n}" "$LWC" "${LWC:+\n}" \ + "$MBC" "${MBC:+\n}" "$QBC" "${QBC:+\n}" "$CLIPB")" + #}}} #{{{ getopts -unset ARG BSC BRA FDC FFC LWC MBC QBC CLIPB URL +unset ARG BSC BRA FDC FFC LWC MBC QBC CLIPB URL SEL while getopts "hbBcrflmqxwd:u:" o; do case "${o}" in - b) BSC="y" ;; - B) BRA="y" ;; - r) FDC="y" ;; - f) FFC="y" ;; - l) LWC="y" ;; - m) MBC="y" ;; - q) QBC="y" ;; - c) CLIPB="y" ;; - d) ARG="$ARG-d $OPTARG ";; + b) SEL="BSC" ;; + B) SEL="BRA" ;; + r) SEL="FDC" ;; + f) SEL="FFC" ;; + l) SEL="LWC" ;; + m) SEL="MBC" ;; + q) SEL="QBC" ;; + c) SEL="CLIPB" ;; + d) ARG="$OPTARG";; u) URL="$OPTARG " ;; *) printhelp ;; esac done @@ -60,64 +65,56 @@ esac done #{{{ clip clip () { - ARG="$@" - if [ -n "$WAYLAND_DISPLAY" -a -n "$CANCLIPB" ]; then - echo -n ${URL%% } | wl-copy ${ARG%u} - elif [ -n "$DISPLAY" -a -n "$CANCLIPB" ]; then - echo -n ${URL%% } | xclip -selection clipboard ${ARG%-u} + if [ -n "$WAYLAND_DISPLAY" ] && [ -n "$CANCLIPB" ]; then + printf "%s" "${URL%% }" | wl-copy "$*" + elif [ -n "$DISPLAY" ] && [ -n "$CANCLIPB" ]; then + printf "%s" "${URL%% }" | xclip -selection clipboard "$*" fi } #}}} #{{{ bra bra () { - if [ -n "$CANBRA" ]; then + if [ -n "$BRA" ]; then if type brave >/dev/null 2>&2; then - brave $@ + brave "$1" else - flatpak run com.brave.Browser $@ + flatpak run com.brave.Browser "$1" fi fi } #}}} #{{{ main -if [ -n "$BSC$FDC$FFC$LWC$QBC" ]; then - ARG="$ARG -u $URL" +if [ -n "$SEL" ]; then + case "$SEL" in + "BRA") exec bra "$URL" ;; + "BRC") exec brc ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL:+"$URL"} ;; + "BSC") exec bsc ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL:+"$URL"} ;; + "FDC") exec fdc ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL:+"$URL"} ;; + "FFC") exec ffc ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL:+"$URL"} ;; + "LWC") exec lwc ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL:+"$URL"} ;; + "MBC") exec mbc ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL:+"$URL"} ;; + "QBC") exec qbc ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL:+"$URL"} ;; + "CLIPB") exec clip ${URL:+"$URL"} ;; + esac fi -echo $ARG -[ -n "$BRA" ] && bra $ARG -[ -n "$BSC" ] && exec bsc $ARG -[ -n "$FDC" ] && exec fdc $ARG -[ -n "$FFC" ] && exec ffc $ARG -[ -n "$LWC" ] && exec lwc $ARG -[ -n "$MBC" ] && exec mbc $ARG -[ -n "$QBC" ] && exec qbc $ARG -[ -n "$CLIPB" ] && exec clip $ARG if [ -z "$CLIPB$BRA$BSC$FDC$FFC$LWC$MBC$QBC" ]; then - BROWSERSINSTALLED="" - for i in CLIPB BRA BSC FDC FFC LWC QBC MBC; do - if [ -n "$(eval "echo \$CAN${i}")" ]; then - [ -n "$BROWSERSINSTALLED" ] && STARTLINE="\n" || STARTLINE="" ; - #[ -z "$URL" -a "$i" = "CLIPB" ] && continue - BROWSERSINSTALLED="${BROWSERSINSTALLED}${STARTLINE}$(eval "echo \$CAN${i}")" - fi - done echo "$BROWSERSINSTALLED" [ -z "$BROWSERSINSTALLED" ] && \ printf "No suitable browsers!\n" && exit 1 - BROWSERSEL="$(printf "$BROWSERSINSTALLED" | dmenu -l 10 -p "browser?" $ARG)" + BROWSERSEL="$(echo "$BROWSERSINSTALLED" | dmenu -l 10 -p "browser?" ${ARG:+"$ARG"})" [ -z "$BROWSERSEL" ] && \ printf "No browser selected!\n" && exit 1 case "$BROWSERSEL" in clip) - clip $ARG + clip "$ARG" ${URL:+"-u"} ${URL+"$URL"} ;; brave) - bra $URL + bra ${URL:+"$URL"} ;; *) - $BROWSERSEL $ARG -u $URL + $BROWSERSEL ${ARG:+"-d"} ${ARG:+"$ARG"} ${URL:+"-u"} ${URL+"$URL"} ;; esac fi |