summaryrefslogtreecommitdiffstats
path: root/core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium
diff options
context:
space:
mode:
authorJonathan Bauer2019-01-04 11:12:55 +0100
committerJonathan Bauer2019-01-04 11:12:55 +0100
commitf31f6e5fca75974adb1ae8300854916512b484bb (patch)
treec11c197a7fce4dcd41d30572cdd996d47509f746 /core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium
parent[beamergui] Close stdout/err when respawning beamergui (diff)
downloadmltk-f31f6e5fca75974adb1ae8300854916512b484bb.tar.gz
mltk-f31f6e5fca75974adb1ae8300854916512b484bb.tar.xz
mltk-f31f6e5fca75974adb1ae8300854916512b484bb.zip
[kiosk*] rework and introduce kiosk mode modules
changed from slxbrowser only support to modular hook structure to support additional browser, i.e. chromium NOTE: kiosk-chromium and kiosk-netpoint only make sense with the new gen
Diffstat (limited to 'core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium')
-rw-r--r--core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium91
1 files changed, 91 insertions, 0 deletions
diff --git a/core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium b/core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium
new file mode 100644
index 00000000..8221cadb
--- /dev/null
+++ b/core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium
@@ -0,0 +1,91 @@
+#!/bin/bash
+# prepares and run chromium as kiosk browser
+
+. /opt/openslx/config
+
+# swallow keyboard shortcuts of chromium
+cat <<- EOF > "$HOME/.xbindkeysrc"
+"true"
+ Control+d
+"true"
+ Control+t
+"true"
+ Control+s
+"true"
+ Control+n
+"true"
+ Control+j
+"true"
+ Control+p
+"true"
+ Control+h
+"true"
+ Control+Shift+o
+EOF
+# xbinkeys requires a daemon, run it
+xbindkeys_autostart &
+
+[ -n "$SLX_BROWSER_INSECURE" ] && SLX_BROWSER_INSECURE="--allow-running-insecure-content --ignore-certificate-errors"
+
+# clear state of previous sessions
+[ -e "$HOME/.config/chromium" ] && rm -rf -- "$HOME/.config/chromium"
+mkdir -p "$HOME/.config/chromium/Default"
+
+bookmark_template="$(mktemp)"
+cat <<-EOF > "$bookmark_template"
+{
+ "roots": {
+ "bookmark_bar": {
+ "children": [ ],
+ "id": "1",
+ "name": "Lesezeichenleiste",
+ "type": "folder"
+ },
+ "other": {
+ "children": [ ],
+ "id": "2",
+ "name": "Weitere Lesezeichen",
+ "type": "folder"
+ },
+ "synced": {
+ "children": [ ],
+ "id": "3",
+ "name": "Mobile Lesezeichen",
+ "type": "folder"
+ }
+ },
+ "version": 1
+}
+EOF
+
+# copy the Bookmark json template and fill in our bookmarks
+json_bookmarks() {
+ cur=0
+ echo -n '['
+ while [ $# -ne 0 ]; do
+ local bb="$1"
+ shift
+ awk -F, '{printf "%s","{\"id\": \"'$cur'\", \"type\": \"url\", \"name\": \""$1"\", \"url\": \""$2"\"}"}' <<< "$bb"
+ [ $# -ne 0 ] && echo -n ','
+ (( cur ++ ))
+ done
+ echo -n ']'
+}
+
+# set the bookmarks in the user's home directory
+jq ".roots.bookmark_bar.children += $(json_bookmarks $SLX_BROWSER_BOOKMARKS)" \
+ "$bookmark_template" > "$HOME/.config/chromium/Default/Bookmarks"
+
+if [ -n "$SLX_BROWSER_INTERACTIVE" ]; then
+ SLX_KIOSK=''
+else
+ SLX_KIOSK='--kiosk'
+fi
+
+# finally start chromium
+exec chromium-browser \
+ --noerrdialogs \
+ --disable-infobars \
+ $SLX_KIOSK \
+ $SLX_BROWSER_INSECURE \
+ "$SLX_BROWSER_URL"