diff options
author | Jonathan Bauer | 2020-01-30 18:13:36 +0100 |
---|---|---|
committer | Jonathan Bauer | 2020-01-30 18:13:36 +0100 |
commit | 6f3224cc3bc2b802b063e1116de46f17224eb66d (patch) | |
tree | 7ad9b018fb8c1ac0473cb8969f3e5fbe5115f1a2 | |
parent | [kiosk-slxbrowser] wait 0.5sec before starting (diff) | |
download | mltk-6f3224cc3bc2b802b063e1116de46f17224eb66d.tar.gz mltk-6f3224cc3bc2b802b063e1116de46f17224eb66d.tar.xz mltk-6f3224cc3bc2b802b063e1116de46f17224eb66d.zip |
[kiosk-*] maximized/fullscreen w/o openbox
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" |