#!/bin/bash set -euo pipefail # Wonder Ink as an application, not a tab. # # Two things make it one. It runs in Chrome's app mode, so the window has # no tab strip and no address bar and reads as a program. And it runs in # its own Chrome profile, so the teacher signed into Wonder Ink and the # room's shared YouTube account are separate sessions that cannot reach # each other: # # * closing this window ends the Wonder Ink session, because the # wonderink.org cookies are session-only by policy and this profile's # browser process exits with the window; # * a Google sign-in performed here cannot be used to re-enter the # previous teacher's Wonder Ink account from the ordinary browser, # because the ordinary browser's Google session is in a different # profile; # * and the church YouTube login in the ordinary browser survives all of # it, because nothing here touches that profile. # # The machine-wide policy in /etc/opt/chrome/policies applies to every # profile, so this window is governed by exactly the same rules as the # browser. HOME_PAGE='https://app.wonderink.org/' # One number for the whole room. Chrome on Wayland was measured not to # follow the compositor's output scale on its own, so the 4K television # got a browser at half the size of everything around it. Forcing the # same number the display is scaled by is a statement of the same fact, # not a second scaling: Chrome replaces its detected scale with this # rather than multiplying by it. SCALE="$(/usr/local/bin/classroom-ui-scale 2>/dev/null || echo 1)" PROFILE="${XDG_DATA_HOME:-$HOME/.local/share}/ekklesia-classroom/wonderink" mkdir -p "$PROFILE" exec google-chrome \ --user-data-dir="$PROFILE" \ --app="$HOME_PAGE" \ --ozone-platform=wayland \ --force-device-scale-factor="$SCALE" \ --start-maximized \ --no-first-run \ --no-default-browser-check \ --password-store=basic \ --hide-crash-restore-bubble \ "$@"