summaryrefslogtreecommitdiff
path: root/mbc
diff options
context:
space:
mode:
Diffstat (limited to 'mbc')
-rwxr-xr-xmbc56
1 files changed, 56 insertions, 0 deletions
diff --git a/mbc b/mbc
new file mode 100755
index 0000000..3a3f2c6
--- /dev/null
+++ b/mbc
@@ -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
+#}}}