blob: a0be53e80139fdb096e0d2b7ebca220bffc2571e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#!/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
#}}}
|