diff options
-rwxr-xr-x | bm | 17 | ||||
-rwxr-xr-x | mbc | 56 |
2 files changed, 67 insertions, 6 deletions
@@ -4,9 +4,11 @@ printhelp () { printf "bm: browser menu script; interface for browsers.\n" printf " -b) basilisk interface\n" + printf " -B) brave browser\n" printf " -d) firedragon interface\n" printf " -f) firefox interface\n" printf " -l) librewolf interface\n" + printf " -m) mullvad-browser interface\n" printf " -q) qutebrowser interface\n" printf " -x) use X11 menu (dmenu)\n" printf " -w) use Wayland menu (tofi)\n" @@ -19,11 +21,12 @@ 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 brave >/dev/null 2>&1 && CANBRA="brave" [ -n "$WAYLAND_DISPLAY" ] && \ type wl-copy >/dev/null 2>&1 && CANCLIPB="clip" [ -z "$WAYLAND_DISPLAY" -a -n "$DISPLAY" ] && \ @@ -39,13 +42,14 @@ echo "$LIST" | grep -q "org.qutebrowser.qutebrowser" && \ #}}} #{{{ getopts -unset ARG BSC BRA FDC FFC LWC QBC CLIPB URL -while getopts "hbBcrflqxwd:u:" o; do case "${o}" in +unset ARG BSC BRA FDC FFC LWC MBC QBC CLIPB URL +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" ;; x) ARG="$ARG-x " ;; @@ -97,16 +101,17 @@ if [ -n "$BSC$FDC$FFC$LWC$QBC" ]; then ARG="$ARG -u $URL" 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 "$BRA" ] && exec bra $ARG [ -n "$CLIPB" ] && exec clip $ARG -if [ -z "$CLIPB$BSC$FDC$FFC$LWC$QBC" ]; then +if [ -z "$CLIPB$BRA$BSC$FDC$FFC$LWC$MBC$QBC" ]; then BROWSERSINSTALLED="" - for i in CLIPB BSC FDC FFC LWC QBC BRA; do + 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 @@ -0,0 +1,56 @@ +#!/bin/sh + +#{{{ printhelp +printhelp () { + printf "mbc: mullvad-browser menu interface.\n" + printf " -u URL ) pass URL to browser\n" + printf " -d ARGS ) pass ARGS to menu command\n" + printf " -w ) use Wayland menu command (bemenu)\n" + printf " -x ) use X11 menu command (dmenu)\n" + exit +} +#}}} + +#{{{ getopts +while getopts "hwxd:u:" o; do case "${o}" in + d) DMENU_ARGS="$OPTARG" ;; + u) URL="$OPTARG" ;; + w) DMENU="bemenu" ;; + x) DMENU="dmenu" ;; + *) printhelp ;; +esac done +#}}} + +#{{{ Check display server if -w or -x not provided +if [ -z "$DMENU" ]; then + if [ -n "$WAYLAND_DISPLAY" ]; then + DMENU="bemenu" + elif [ -n "$DISPLAY" ]; then + DMENU="dmenu" + else + print "Can't tell if Wayland or X; what gives?\n" + exit 1 + fi +fi +#}}} + +#{{{ Native Profiles +if [ -f ~/.mullvad/mullvadbrowser/profiles.ini ]; then + NATIVE_PROFILES=`grep 'Path=' ~/.mullvad/mullvadbrowser/profiles.ini | cut -d'.' -f2` +else + unset NATIVE_PROFILES +fi +#}}} + +#{{{ Add Profiles +if [ -n "$NATIVE_PROFILES" ]; then + INT="\n" +fi +PROFILES="$NATIVE_PROFILES" +#}}} + +#{{{ Choose Profiles +CHOSEN=`printf "$PROFILES" | $DMENU -p "mullvad-browser" -l 10 $DMENU_ARGS` +[ -z "$CHOSEN" ] && exit 2 +exec mullvad-browser -P "$CHOSEN" $URL +#}}} |