summary refs log tree commit diff
path: root/bin/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'bin/firefox')
-rwxr-xr-xbin/firefox78
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