diff options
| author | Robert Günzler <r@gnzler.io> | 2022-08-17 15:33:04 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2022-08-17 15:33:04 +0200 |
| commit | 8764ec361070a6dc1eb4c1ba6261e242da7c553b (patch) | |
| tree | 84c0f1ed56655c01560b2ca47a2229d682f735d0 /bin/firefox | |
| parent | 2107c520e536f2b35c7e516c016a54860b314c76 (diff) | |
bin/firefox: support app specific firefox profiles
Diffstat (limited to 'bin/firefox')
| -rwxr-xr-x | bin/firefox | 78 |
1 files changed, 69 insertions, 9 deletions
diff --git a/bin/firefox b/bin/firefox index 6352036..1b7e271 100755 --- a/bin/firefox +++ b/bin/firefox @@ -1,5 +1,6 @@ #!/bin/sh +set -e [ -n "$DEBUG" ] && set -x container=${container:-} @@ -17,26 +18,85 @@ export MOZ_ACCELERATED=1 case "$(basename "$0")" in firefox) - exec "${bin}" --profile "$HOME"/.mozilla/firefox/wr7p23up.default-nightly "$@" + export MOZ_APP_REMOTINGNAME=firefox + exec "${bin}" \ + --name "$MOZ_APP_REMOTINGNAME" \ + --profile "$HOME"/.mozilla/firefox/wr7p23up.default-nightly \ + "$@" ;; firefox-private) - exec "${bin}" --profile "$HOME"/.mozilla/firefox/wr7p23up.default-nightly "$@" --private-window + exec "${bin}" --profile "$HOME"/.mozilla/firefox/wr7p23up.default-nightly \ + "$@" --private-window ;; firefox-clean) exec firejail \ - --profile=firefox \ + --profile=/etc/firejail/firefox.profile \ + --env=MOZ_APP_REMOTINGNAME="firefox-clean" \ --tmpfs="$HOME"/.mozilla \ -- \ - "${bin}" --new-instance "$@" + "${bin}" \ + --name "firefox-clean" \ + --new-instance "$@" ;; workfox) - set -- "${bin}" --profile "$HOME"/.mozilla/firefox/d2ps1x6l.work "$@" - if swaymsg -t get_version >/dev/null 2>&1; then - exec swx -M work -- "$@" - else - exec "$@" + export MOZ_APP_REMOTINGNAME=workfox + exec "${bin}" \ + --name "$MOZ_APP_REMOTINGNAME" \ + --profile "$HOME"/.mozilla/firefox/d2ps1x6l.work \ + "$@" + ;; + +kioskfox) + app=$1 + shift + case "$app" in + zoom) + if [ -n "$1" ]; then + host=$(printf "%s" "$1" | grep -Eo '://[^\/]*') + confno=$(printf "%s" "$1" | sed 's/.*confno=\([^&]*\).*/\1/') + shift + set -- "https${host}/wc/join/${confno}" + fi + ;; + whatsapp) + # https://color.firefox.com/?theme=XQAAAAICAQAAAAAAAABBKYhm849SCia2CaaEGccwS-xMDPrv2Sw36BvvesiZbj4MJ12mRWeKADFM-hr2jOzkr-SP8ziWLgA-sU5VJJpVDYC54fxJIVZ3zaPV5PoeUH-LmLV1RtcMTLJOv3wzfVrRe8GwxUm2I0O9zwNO9isex2sWSRDukbn_ydCIeQGF_9TK0iioVo463__mZyJg + set -- "https://web.whatsapp.com" + ;; + + init) + app=$1 + if [ -z "$app" ]; then + printf "usage: kioskfox init [appname]\nn" + exit 1 + fi + cp -r "$HOME/.mozilla/firefox/kioskfox.init" "$HOME/.mozilla/firefox/kioskfox.$app" + printf "kioskfox: %s initialized\n" "$app" + printf "kioskfox: finish setup by editing the kioskfox script\n" + printf "\n" + exit 0 + ;; + + -h | --help | help | ?) + printf "usage: kioskfox [appname] [arguments...]\n\n" + exit 2 + ;; + esac + apphome="$HOME/.mozilla/firefox/kioskfox.$app"/ + if [ ! -d "$apphome" ]; then + printf "kioskfox: %s doesn't exist.\n" "$apphome" + notify-send "kioskfox" "$apphome doesn't exist." + exit 1 fi + exec firejail \ + --profile=/etc/firejail/firefox.profile \ + --private="$apphome" \ + --env=MOZ_APP_REMOTINGNAME="$app" \ + -- \ + "${bin}" \ + --name "$app" \ + --profile "$HOME"/.mozilla/firefox/deadbeef.default \ + "$@" ;; esac |