This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch feature/mate-minidesktop in repository live-build-x2go. commit c61f9753bce6b9401e7c2deae6f231a77c82ad75 Author: Stefan Baur <kontakt@baur-itcs.de> Date: Mon Nov 20 07:18:24 2017 +0100 thinclient config script makes no sense in mate-minidesktop; as there is no openbox and a different user account we are running under --- .../lib/live/config/2900-x2go-thinclientconfig | 237 --------------------- 1 file changed, 237 deletions(-) diff --git a/config/includes.chroot/lib/live/config/2900-x2go-thinclientconfig b/config/includes.chroot/lib/live/config/2900-x2go-thinclientconfig deleted file mode 100755 index 223dd03..0000000 --- a/config/includes.chroot/lib/live/config/2900-x2go-thinclientconfig +++ /dev/null @@ -1,237 +0,0 @@ -#!/bin/bash - -X2GoThinClientConfig () -{ - -# Output startup message -# -echo -n " x2go-thinclientconfig" - -# using xmlstarlet would mean wasting yet another Megabyte of space ... -# disable virtual desktops -sed -i -e 's#<number>4</number>#<number>1</number>#' /etc/xdg/openbox/rc.xml -# disable OpenBox keyboard bindings -# this also disables the context menu (would be accessible in xinerama) and things like Alt-F4 for X2GoClient, Xephyr, etc. -sed -i -e '/<keyboard>/,/<\/keyboard>/{//!d}' /etc/xdg/openbox/rc.xml -sed -i -e '\#<action name="ShowMenu"><menu>[a-z-]*-menu</menu></action>#d' /etc/xdg/openbox/rc.xml -# make sure OpenBox maximizes X2GoClient on launch and hides window decorations -sed -i -e '\#<applications>#a<application title="X2Go Client" type="normal">' -e '\#<applications>#a<decor>no</decor>' -e '\#<applications>#a</application>' /etc/xdg/openbox/rc.xml -#make sure OpenBox' ToggleMaximize is disabled, or else clicking the top row of pixels will un-maximize X2GoClient -sed -i -e '/ToggleMaximize/d' /etc/xdg/openbox/rc.xml - -cat >/home/user/.xsession <<XSESSION -# inspired by -# http://code.x2go.org/gitweb?p=x2gothinclient.git;a=blob_plain;f=displaymanag... -# check the above file for ideas before reinventing the wheel - -# Spawn PulseAudio -pulseaudio -D -n -L 'module-native-protocol-tcp port=4713' -L 'module-udev-detect' --exit-idle-time=65535 & - -# additional variable instead of "case \$(...) in", as we need the value again later on -XRANDRCMDTAINTED=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | awk -F '=' '\$1 == "xinerama" { print \$2 }') - -# sanitize input -case \$XRANDRCMDTAINTED in -"above") - XRANDRCMD="above" - ;; -"below") - XRANDRCMD="below" - ;; -"same-as") - XRANDRCMD="same-as" - ;; -"right-of") - XRANDRCMD="right-of" - ;; -*) - XRANDRCMD="left-of" # default - ;; -esac - -# find out how many touch devices we have -TOUCHDEVICESCOUNT=\$(LANG=C xsetwacom --list devices | wc -l) - -# find out how many mouse devices we have -MICECOUNT=\$(find /dev/input -maxdepth 1 -name "mouse*" | wc -l) - -# loop through the following code block for all connected display devices -for NEXT_DISPLAY in \$(LANG=C xrandr 2>/dev/null | grep ' connected ' | cut -d ' ' -f1); do - - #remove trailing newline from NEXT_DISPLAY - NEXT_DISPLAY=\${NEXT_DISPLAY%\$'\n'} - - # THIS_DISPLAY won't be defined until the second time the loop is executed, which is a - # neat way of running xrandr only if there are at least two connected display devices - if [ -n "\${THIS_DISPLAY+x}" ] ; then - - if [ \$TOUCHDEVICESCOUNT -gt 0 ] && [ \$MICECOUNT -lt 1 ] && [ -z \$XRANDRCMDTAINTED ]; then - # we have a touch device and no mice, and no xinerama parameter was set, - # so switch to clone view to make the touch device usable - /usr/bin/xrandr --output \$NEXT_DISPLAY --same-as \$THIS_DISPLAY - - else - # else use whatever is in XRANDRCMD (which is either our default of "left-of", - # or a valid xinerama kernel parameter value) - /usr/bin/xrandr --output \$NEXT_DISPLAY --\$XRANDRCMD \$THIS_DISPLAY - fi - - fi - # now set THIS_DISPLAY -> every subsequent iteration of the loop will now enter the code block - # above where [ -n \${THIS_DISPLAY+x} ] is the conditional - THIS_DISPLAY=\$NEXT_DISPLAY -done - -# Spawn openbox -openbox & - -# set screen background to X2Go default blue on all detected screens -xsetroot -solid "#246ed8" - -# Get X2GoConfig -BROKERURL=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | \ - awk -F'=' ' /^broker-url=/ { print \$2 }' | \ - tr -dc 'a-zA-Z0-9.:/?%_\-@') -SESSIONSELECT=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | \ - awk -F'=' ' /^session=/ { print \$2 }' | \ - tr -dc 'a-zA-Z0-9.:/ _\-@') -LDAP=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | \ - sed 's/^ldap=/ldap#/' | \ - awk -F'#' ' /^ldap#/ { print \$2 }' | \ - tr -dc 'a-zA-Z0-9.:_\-@') -LDAP1=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | \ - sed 's/^ldap1=/ldap1#/' | \ - awk -F'#' ' /^ldap1#/ { print \$2 }' | \ - tr -dc 'a-zA-Z0-9.:_\-@') -LDAP2=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | \ - sed 's/^ldap2=/ldap2#/' | \ - awk -F'#' ' /^ldap2#/ { print \$2 }' | \ - tr -dc 'a-zA-Z0-9.:_\-@') - - -# Check for background and branding SVGs -BRANDING='' -OLDCON='' -if grep -q ' branding=' /proc/cmdline; then - while ! [ -s "/etc/x2go/branding.svg" ]; do - [ -z "\$OLDCON" ] && OLDCON="\$(fgconsole)" - chvt "1" - echo "'\$0' is waiting for a valid '/etc/x2go/branding.svg' file." - sleep "2" - done - [ -n "\$OLDCON" ] && chvt "\$OLDCON" - BRANDING='--branding=/etc/x2go/branding.svg' -fi -BACKGROUND='' -OLDCON='' -if grep -q ' bg=' /proc/cmdline; then - while ! [ -s "/etc/x2go/bg.svg" ]; do - [ -z "\$OLDCON" ] && OLDCON="\$(fgconsole)" - chvt "1" - echo "'\$0' is waiting for a valid '/etc/x2go/bg.svg' file." - sleep "2" - done - [ -n "\$OLDCON" ] && chvt "\$OLDCON" - BACKGROUND='--background=/etc/x2go/bg.svg' -fi - -# Spawn X2GoClient -if [ -n "\$SESSIONSELECT" ]; then - STARTSESSION="--session='\$SESSIONSELECT'" -fi -if [ -n "\$BROKERURL" ]; then - SESSIONFROM="--broker-url=\$BROKERURL" -else - SESSIONFROM="--session-conf=/etc/x2go/x2gothinclient_sessions" - OLDCON='' - while ! [ -s "/etc/x2go/x2gothinclient_sessions" ]; do - [ -z "\$OLDCON" ] && OLDCON="\$(fgconsole)" - chvt "1" - echo "'\$0' is waiting for a valid '/etc/x2go/x2gothinclient_sessions' file." - sleep "2" - done - [ -n "\$OLDCON" ] && chvt "\$OLDCON" -fi -if [ -n "\$LDAP" ] ; then - if [ -n "\$LDAP1" ] ; then - BACKUPLDAP="--ldap1=\$LDAP1" - if [ -n "\$LDAP2" ] ; then - BACKUPLDAP="\$BACKUPLDAP --ldap2=\$LDAP2" - fi - fi - LDAPPARAMS="--ldap=\$LDAP \$BACKUPLDAP" -else - LDAPPARAMS="" -fi - -BLANKINGTIME=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | awk -F '=' '\$1 == "blank" { print \$2 }' | tr -dc '0-9:') -if [ -n "\$BLANKINGTIME" ]; then - DPMSARR=(\$(echo \$BLANKINGTIME | awk -F ':' '\$1 ~/^[0-9]*\$/ && \$2 ~/^[0-9]*\$/ && \$3 ~/^[0-9]*\$/ { print \$1 " " \$2 " " \$3}')) - if [ \${DPMSARR[0]} -eq 0 ]; then - # Disable screensaver and DPMS Power Saving if requested - xset s off - if ! grep -q '\W*nodpms\W*' /proc/cmdline; then - xset -dpms - fi - else - xset s on - xset s \${DPMSARR[0]} - if ! grep -q '\W*nodpms\W*' /proc/cmdline; then - # Yes, "+dpms dpms" is intentional. - xset +dpms dpms \${DPMSARR[0]} \${DPMSARR[1]} \${DPMSARR[2]} - fi - fi -fi - -THROTTLINGCOMMAND="" -THROTTLEVALUES=\$(sed -e 's/ \([^ ]*\)=/\n\1=/g' -e 's/\([^=]["'"'"']\) /\1\n/g' /proc/cmdline | awk -F '=' '\$1 == "throttle" { print \$2 }' | tr -dc '0-9.:u') -if [ -n "\$THROTTLEVALUES" ]; then - # determine maximum line speed - # look for all interfaces in state "up", then read their speed value from the file named speed - # just ignore the output if there is none, then sort numeric, unique, and read last line=highest, - # then sanitize - MAXSPEEDMBIT=\$(grep -l "up" /sys/class/net/*/operstate | xargs -n1 dirname | xargs -n 1 -I XXX cat XXX/speed 2>/dev/null | sort -n -u | tail -1 | tr -dc '0-9.') - MAXSPEEDKBYTE=\$((MAXSPEEDMBIT*128)) #Megabit * 1024 / 8 -> KiloByte - - THROTTLEARR=(\$(echo \$THROTTLEVALUES | awk -F ':' '\$1 ~/^[0-9\.u]*\$/ && \$2 ~/^[0-9\.u]*\$/ && \$3 ~/^[0-9\.u]*\$/ && \$4 ~/^[0-9\.u]*\$/ && \$4 ~/^[0-9\.u]*\$/ { print \$1 " " \$2 " " \$3 " " \$4 " " \$5}')) - if [ -n "\${THROTTLEARR[0]}" ] && [ "\${THROTTLEARR[0]}" != "u" ]; then - THROTTLEDOWN="-d \${THROTTLEARR[0]}" # default 10, never used - elif [ "\${THROTTLEARR[0]}" = "u" ]; then - THROTTLEDOWN="-d \$MAXSPEEDKBYTE" - fi - if [ -n "\${THROTTLEARR[1]}" ] && [ "\${THROTTLEARR[1]}" != "u" ]; then - THROTTLEUP="-u \${THROTTLEARR[1]}" # default 10, never used - elif [ "\${THROTTLEARR[1]}" = "u" ]; then - THROTTLEUP="-d \$MAXSPEEDKBYTE" - elif [ -z "\${THROTTLEARR[1]}" ] ; then - THROTTLEUP="-d \${THROTTLEARR[0]}" # set up=down if only 1 param - fi - if [ -n "\${THROTTLEARR[2]}" ] ; then - THROTTLETIME="-t \${THROTTLEARR[2]}" # default 3.0 - fi - if [ -n "\${THROTTLEARR[3]}" ] ; then - THROTTLELENGTH="-l \${THROTTLEARR[3]}" # default 20 - fi - if [ -n "\${THROTTLEARR[4]}" ] ; then - THROTTLELATENCY="-L \${THROTTLEARR[4]}" # default 0 - fi - # only set THROTTLINGCOMMAND if at least one value was detected and sanitized properly - if [ -n "\$THROTTLEUP" ] || [ -n "\$THROTTLEDOWN" ] || [ -n "\$THROTTLETIME" ] || [ -n "\$THROTTLELENGTH" ] || [ -n "\$THROTTLELATENCY" ]; then - THROTTLINGCOMMAND="trickle -s \$THROTTLEDOWN \$THROTTLEUP \$THROTTLETIME \$THROTTLELENGTH \$THROTTLELATENCY" - fi -fi - -eval \$THROTTLINGCOMMAND x2goclient --thinclient --no-session-edit --no-menu --maximize --add-to-known-hosts --haltbt --read-exports-from=/home/user/export \$LDAPPARAMS \$SESSIONFROM \$BACKGROUND \$BRANDING \$STARTSESSION -XSESSION - -chown user:user /home/user/.xsession -chmod 644 /home/user/.xsession - -# This is needed for File Sharing support (USB media and the like) -mkdir -p /home/user/{export,logins,mounts} -chown user:user /home/user/{export,logins,mounts} -chmod 700 /home/user/{export,logins,mounts} - -} - -X2GoThinClientConfig -- Alioth's /srv/git/code.x2go.org/live-build-x2go.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/live-build-x2go.git