summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2020-01-30 18:13:36 +0100
committerJonathan Bauer2020-01-30 18:13:36 +0100
commit6f3224cc3bc2b802b063e1116de46f17224eb66d (patch)
tree7ad9b018fb8c1ac0473cb8969f3e5fbe5115f1a2
parent[kiosk-slxbrowser] wait 0.5sec before starting (diff)
downloadmltk-6f3224cc3bc2b802b063e1116de46f17224eb66d.tar.gz
mltk-6f3224cc3bc2b802b063e1116de46f17224eb66d.tar.xz
mltk-6f3224cc3bc2b802b063e1116de46f17224eb66d.zip
[kiosk-*] maximized/fullscreen w/o openbox
-rw-r--r--core/modules/kiosk-chromium/data/opt/openslx/scripts/kiosk-launch.d/00-chromium19
-rw-r--r--core/modules/kiosk-common/data/etc/xdg/openbox/rc.xml.kiosk3
-rwxr-xr-xcore/modules/kiosk-common/data/opt/openslx/scripts/systemd-setup_kiosk45
3 files changed, 12 insertions, 55 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
index 67ebfcb8..9ee4ca19 100644
--- 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
@@ -58,15 +58,20 @@ cat > "$HOME/.config/chromium/Default/Bookmarks" <<EOF
EOF
# default chromium arguments
-chromium_args=("--noerrdialogs" "--disable-new-avatar-menu" "--disable-infobars" "--test-type")
+chromium_args=("--noerrdialogs" "--disable-translate" "--disable-new-avatar-menu" "--disable-infobars" "--test-type" "--fast" "--fast-start")
-if [ -z "$SLX_BROWSER_INTERACTIVE" ]; then
- # non-interactive, set to kiosk mode
- chromium_args+=("--kiosk")
+# simulate a future build date to remove those update notification
+# TODO properly disable auto update feature when chromium supports it
+chromium_args+=("--simulate-outdated-no-au=\"Tue, 31 Dec 2099 23:59:59 GMT\"")
+
+# default to maximized on startup
+chromium_args+=("--start-maximized")
- # simulate a future build date to remove those update notification
- # TODO properly disable auto update feature when chromium supports it
- chromium_args+=("--simulate-outdated-no-au=\"Tue, 31 Dec 2099 23:59:59 GMT\"")
+if [ -z "$SLX_BROWSER_INTERACTIVE" ]; then
+ if [ -n "${SLX_AUTOLOGIN%OFF}" ]; then
+ # Autologin active, go full fullscreen
+ chromium_args+=("--kiosk")
+ fi
# swallow keyboard shortcuts of chromium
cat <<- EOF > "$HOME/.xbindkeysrc"
diff --git a/core/modules/kiosk-common/data/etc/xdg/openbox/rc.xml.kiosk b/core/modules/kiosk-common/data/etc/xdg/openbox/rc.xml.kiosk
index 0163112e..65e09cb5 100644
--- a/core/modules/kiosk-common/data/etc/xdg/openbox/rc.xml.kiosk
+++ b/core/modules/kiosk-common/data/etc/xdg/openbox/rc.xml.kiosk
@@ -340,9 +340,6 @@
# end of the example
-->
- <application role="browser">
- <fullscreen>yes</fullscreen>
- </application>
</applications>
</openbox_config>
diff --git a/core/modules/kiosk-common/data/opt/openslx/scripts/systemd-setup_kiosk b/core/modules/kiosk-common/data/opt/openslx/scripts/systemd-setup_kiosk
index 783460c4..ac6b30c4 100755
--- a/core/modules/kiosk-common/data/opt/openslx/scripts/systemd-setup_kiosk
+++ b/core/modules/kiosk-common/data/opt/openslx/scripts/systemd-setup_kiosk
@@ -1,50 +1,5 @@
#!/bin/bash
-. /opt/openslx/config
-
-configure_fullscreen() {
- # TODO having two variants of the rc.xml is quite bad, better to prune it with xmlstarlet?
- local openbox_rc_file="/etc/xdg/openbox/rc.xml.kiosk"
- local openbox_namespace="http://openbox.org/3.4/rc"
- # for fullscreen functionality, use openbox
- if [ ! -e "$openbox_rc_file" ]; then
- echo "Could not find global openbox configuration"
- return 1
- fi
- local browser_node="//x:applications/x:application[@role='browser']"
- local -i browser_node_count="$(xmlstarlet sel -N x="$openbox_namespace" -t -c "count($browser_node)" "$openbox_rc_file")"
- if [ "$browser_node_count" -gt 1 ]; then
- echo "More than one node for '$browser_node' found. Removing them all..."
- xmlstarlet ed -L -N x="$openbox_namespace" -d "$browser_node" "$openbox_rc_file"
- fi
- # either we removed everything, or we had none to start with
- if [ "$browser_node_count" -eq 0 ] ; then
- local tmpname="application$RANDOM"
- xmlstarlet ed -L -N x="$openbox_namespace" -s "//x:applications" -t elem -n "$tmpname" -i "//$tmpname" -t attr -n "role" -v "browser" "$openbox_rc_file"
- browser_node="//x:applications/x:$tmpname"
- fi
- # Fullscreen or maximized depends on whether we should start an interactive session or not
- # For now use SLX_BROWSER_INTERACTIVE
- local state
- if [ -n "$SLX_BROWSER_INTERACTIVE" ]; then
- state="maximized"
- xmlstarlet ed -L -N x="$openbox_namespace" -d "$browser_node/x:fullscreen" "$openbox_rc_file"
- else
- state="fullscreen"
- xmlstarlet ed -L -N x="$openbox_namespace" -d "$browser_node/x:maximized" "$openbox_rc_file"
- fi
-
- if ! xmlstarlet sel -Q -N x="$openbox_namespace" -t -c "$browser_node/x:$state" "$openbox_rc_file"; then
- xmlstarlet ed -L -N x="$openbox_namespace" -s "$browser_node" -t elem -n "$state" -v "yes" "$openbox_rc_file"
- elif [ "$(xmlstarlet sel -N x="$openbox_namespace" -t -v "$browser_node/x:$state" "$openbox_rc_file")" != "yes" ]; then
- xmlstarlet ed -L -N x="$openbox_namespace" -u "$browser_node/x:$state" -v "yes" "$openbox_rc_file"
- fi
- xmlstarlet ed -L -N x="$openbox_namespace" -r "$browser_node" -v "application" "$openbox_rc_file"
-}
-
-## MAIN
-configure_fullscreen
-
# Disable logout delay for demo user on shutdown/reboot/...
mkdir -p "/run/openslx"
touch "/run/openslx/demo-no-logout-delay"