blob: 62d2610a18b48425d7c4e5834342de773347a595 (
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
103
104
|
#!/bin/sh
set -e
[ -n "$DEBUG" ] && set -x
container=${container:-}
[ "${container}" = "firejail" ] && exec xdg-open "$@"
bin=${FIREFOX_BIN:-/usr/bin/firefox}
[ ! -x "$bin" ] && bin=/usr/bin/librewolf
[ ! -x "$bin" ] && exit 1
# 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/hibiki.default \
"$@"
;;
firefox-private)
exec "${bin}" --profile "$HOME"/.mozilla/firefox/hibiki.default \
"$@" --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/hibiki.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
|