#!/bin/sh #{{{ printhelp printhelp () { printf "ffc: firefox menu interface.\n" printf " -u URL ) pass URL to browser\n" printf " -d ARG ) pass ARG to menu command\n" exit } #}}} #{{{ getopts while getopts "hd:u:" o; do case "${o}" in d) ARG=${ARG:+"$ARG "}"$OPTARG" ;; u) URL="$OPTARG" ;; *) printhelp ;; esac done #}}} #{{{ Native Profiles if [ -f ~/.mozilla/firefox/profiles.ini ]; then NATIVE_PROFILES=$(grep 'Path=' ~/.mozilla/firefox/profiles.ini | cut -d'.' -f2) else unset NATIVE_PROFILES fi #}}} #{{{ Flatpak Profiles if [ -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox/profiles.ini ]; then FLATPAK_PROFILES=$(grep 'Path=' ~/.var/app/org.mozilla.firefox/.mozilla/firefox/profiles.ini | cut -d'.' -f2 | sed 's/$/ F/g') else unset FLATPAK_PROFILES fi #}}} #{{{ Add Profiles if [ -n "$NATIVE_PROFILES" ] && [ -n "$FLATPAK_PROFILES" ]; then INT="\n" fi PROFILES="$NATIVE_PROFILES$INT$FLATPAK_PROFILES" #}}} #{{{ Choose Profiles CHOSEN=$(printf "%s" "$PROFILES" | dmenu -l 15 -p "firefox" ${ARG:+"$ARG"}) [ -z "$CHOSEN" ] && exit 2 if echo "$CHOSEN" | grep -qE ' F$'; then exec flatpak run org.mozilla.Firefox -P "$(echo "$CHOSEN" | sed 's/ F$//')" "$URL" else exec firefox -P "$CHOSEN" "$URL" fi #}}}