1 | #!/bin/sh |
---|
2 | |
---|
3 | # This is the xinit script for the kiosk user. |
---|
4 | |
---|
5 | datadir=/usr/share/debathena-kiosk |
---|
6 | |
---|
7 | # The rkiosk extension's unique ID, and the location of its xpi file. |
---|
8 | rkiosk_id="{4D498D0A-05AD-4fdb-97B5-8A0AABC1FC5B}" |
---|
9 | rkiosk_xpi=$datadir/r-kiosk.xpi |
---|
10 | |
---|
11 | # File with preferences to set in the firefox profile. |
---|
12 | prefs="$datadir/prefs.js" |
---|
13 | |
---|
14 | # User chrome (UI customizations) file. |
---|
15 | chrome="$datadir/userChrome.css" |
---|
16 | |
---|
17 | cd || exit 1 |
---|
18 | |
---|
19 | exec > xinit.log 2>&1 |
---|
20 | |
---|
21 | XAUTHORITY=$HOME/.Xauthority |
---|
22 | export XAUTHORITY |
---|
23 | |
---|
24 | # Run a window manager so that firefox fullscreen mode works. |
---|
25 | metacity --sm-disable & |
---|
26 | |
---|
27 | choice=$(zenity --title="What would you like to do?" --text="Select the task y\ |
---|
28 | ou wish to perform, then click \"OK\"" --list --column="task" --column="Activ\ |
---|
29 | ity" --hide-column=1 "reg" "Register for Account" "web" "Browse the Web") |
---|
30 | [ $? -eq 0 ] || exit 0 |
---|
31 | if [ "$choice" = "reg" ]; then |
---|
32 | errtext="An error occurred while trying to launch the registration applet. Please try another workstation." |
---|
33 | classzip="/afs/athena.mit.edu/system/register/java/regclasses.zip" |
---|
34 | if [ ! -r "$classzip" ]; then |
---|
35 | zenity --error --text="${errtext}\n\n(could not unzip class file)" |
---|
36 | exit 0 |
---|
37 | fi |
---|
38 | unzip $classzip |
---|
39 | java -Dhost="moira.mit.edu" regapplet.Regapplet || zenity --error --text="${errtext}\n\n(could not launch java)" |
---|
40 | exit 0 |
---|
41 | fi |
---|
42 | |
---|
43 | # Warn the user that printing is wrong. |
---|
44 | zenity --warning --title="No Printing" --text="You will not be able to print from this browser session. Submitted print jobs will be discarded and cannot be released from Pharos printers.\n\nIf you need to print, please log in to a normal Athena session. If you are a visitor looking to print a Campus Map, please visit the Information Center in Room 7-121." |
---|
45 | |
---|
46 | # Create a new firefox profile. |
---|
47 | rm -rf .mozilla |
---|
48 | firefox -CreateProfile default > /dev/null || exit 1 |
---|
49 | profdir=$(find .mozilla/firefox -type d -name \*.default) |
---|
50 | |
---|
51 | # Add the rkiosk extension. |
---|
52 | rkiosk_dir="$profdir/extensions/$rkiosk_id" |
---|
53 | mkdir -p "$rkiosk_dir" |
---|
54 | (cd "$rkiosk_dir" && unzip "$rkiosk_xpi") || exit 1 |
---|
55 | cat <<EOF >> "$profdir/extensions.ini" |
---|
56 | [ExtensionDirs] |
---|
57 | Extension0=$rkiosk_dir |
---|
58 | EOF |
---|
59 | |
---|
60 | # Firefox 3.6+ requires a chrome.manifest for the extension. |
---|
61 | if [ ! -e "$rkiosk_dir/chrome.manifest" ]; then |
---|
62 | cp "$datadir/chrome.manifest.r-kiosk" "$rkiosk_dir/chrome.manifest" || exit 1 |
---|
63 | fi |
---|
64 | |
---|
65 | # Apply our preference settings and UI customizations. |
---|
66 | cat "$prefs" >> "$profdir/prefs.js" || exit 1 |
---|
67 | mkdir -p "$profdir/chrome" |
---|
68 | cp "$chrome" "$profdir/chrome/userChrome.css" || exit 1 |
---|
69 | |
---|
70 | # Launch firefox. |
---|
71 | if [ "$(machtype -q)" = "quickstation" ] && [ -x /usr/bin/bugme ]; then |
---|
72 | bugme --fatal firefox |
---|
73 | else |
---|
74 | firefox |
---|
75 | fi |
---|
76 | |
---|
77 | |
---|
78 | # Clean up. |
---|
79 | rm -rf .mozilla |
---|