diff options
author | Jonathan Bauer | 2019-01-04 11:12:55 +0100 |
---|---|---|
committer | Jonathan Bauer | 2019-01-04 11:12:55 +0100 |
commit | f31f6e5fca75974adb1ae8300854916512b484bb (patch) | |
tree | c11c197a7fce4dcd41d30572cdd996d47509f746 /core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium | |
parent | [beamergui] Close stdout/err when respawning beamergui (diff) | |
download | mltk-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-chromium | 91 |
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" |