summary refs log tree commit diff
path: root/bin/firefox
blob: 1b7e271271116ecfb7a023f5057121b9b0fb4dc5 (plain) (blame)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/sh

set -e
[ -n "$DEBUG" ] && set -x

container=${container:-}
[ "${container}" = "firejail" ] && exec xdg-open "$@"

bin=${FIREFOX_BIN:-/usr/bin/firefox}

# enable touch device support
export MOZ_USE_XINPUT2=1
# user dbus remote exclusively
export MOZ_DBUS_REMOTE=1
# enable webrender
export MOZ_WEBRENDER=1
export MOZ_ACCELERATED=1

case "$(basename "$0")" in
firefox)
	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
	;;

firefox-clean)
	exec firejail \
		--profile=/etc/firejail/firefox.profile \
		--env=MOZ_APP_REMOTINGNAME="firefox-clean" \
		--tmpfs="$HOME"/.mozilla \
		-- \
		"${bin}" \
		--name "firefox-clean" \
		--new-instance "$@"
	;;

workfox)
	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