[X2Go-Commits] [x2goserver] 04/04: x2goserver/bin/x2gostartagent: support disabling or enabling RANDR Xinerama in x2goagent via any parameter in the form randr_xinerama=value (with value interpreted by x2goistrue).

git-admin at x2go.org git-admin at x2go.org
Wed Jan 10 05:38:39 CET 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goserver.

commit f4b29ea834cfe984ad50497900e3ba2be898d179
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Wed Jan 10 05:37:12 2018 +0100

    x2goserver/bin/x2gostartagent: support disabling or enabling RANDR Xinerama in x2goagent via any parameter in the form randr_xinerama=value (with value interpreted by x2goistrue).
    
    Note that it is not possible to change the RRXinerama preference after a
    session has been started currently.
---
 debian/changelog              |  5 +++++
 x2goserver/bin/x2gostartagent | 22 ++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index eae1765..36d871d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -205,6 +205,11 @@ x2goserver (4.1.0.0-0x2go1.2) UNRELEASED; urgency=low
       called x2goistrue.
     - x2goserver/bin/x2gostartagent: replace inline perl with calls to
       x2goistrue and x2goqueryconfig.
+    - x2goserver/bin/x2gostartagent: support disabling or enabling RANDR
+      Xinerama in x2goagent via any parameter in the form randr_xinerama=value
+      (with value interpreted by x2goistrue). Note that it is not possible to
+      change the RRXinerama preference after a session has been started
+      currently.
   * x2goserver.spec:
     - Only create session DB in x2goserver's post install script. Do use
       proper Requires(post) statements to make sure perl-X2Go-Server-DB and
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index 1ddf82f..c285f06 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -113,6 +113,21 @@ fi
 
 "${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "client announced itself as "'"'"${X2GO_CLIENT}"'"'
 
+typeset -i x2go_randr_xinerama='1'
+
+# Extending optional parameters isn't trivially possible, but
+# we want this script to work with newer X2Go Client versions
+# that supply a Xinerama configuration value and with older
+# ones that do not.
+# Since we already have trailing optional arguments (for
+# the desktop sharing functionality), go ahead and scan
+# all arguments for the required value.
+typeset item=''
+for item in "${@}"; do
+	typeset tmp_regex='^randr_xinerama=(.*)$'
+	[[ "${item}" =~ ${tmp_regex} ]] && x2go_randr_xinerama="$("${X2GO_LIB_PATH}/x2goistrue" "${BASH_REMATCH[1]}")"
+done
+
 X2GO_GEOMETRY="${1}"; shift
 X2GO_LINK="${1}"; shift
 X2GO_PACK="${1}"; shift
@@ -432,6 +447,9 @@ if [[ -n "${X2GO_GEOMETRY}" ]] && [[ "${X2GO_GEOMETRY}" != 'fullscreen' ]]; then
 	agent_geometry="-geometry ${X2GO_GEOMETRY}"
 fi
 
+typeset randr_xinerama_option=''
+[[ "${x2go_randr_xinerama}" = '0' ]] && randr_xinerama_option='-rrxinerama'
+
 # systemd is prone to kill remaining sessions on user logouts.
 # That sort of makes sense to clean up stray processes,
 # but gets in the way of our persistent session scheme.
@@ -443,11 +461,11 @@ if [[ "${X2GO_STYPE}" = 'S' ]]; then
 	unset LD_LIBRARY_PATH
 	# set NX_TEMP to /tmp, make sure x2goagent starts when pam_tmpdir.so is in use
 	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "started nxagent: NX_TEMP=/tmp x2goagent X2GO_NXAGENT_OPTIONS ('${X2GO_NXAGENT_OPTIONS}') NOLISTOPT ('${NOLISTOPT}') X2GODPIOPTION_ ('${X2GODPIOPTION_}') -SESSION_TYPE ('-${SESSION_TYPE}') -auth \"XAUTHORITY\" ('\"${XAUTHORITY}\"') -shadow SHADOW_DESKTOP ('${SHADOW_DESKTOP}') -shadowmode SHADOW_MODE ('${SHADOW_MODE}') agent_geometry ('${agent_geometry}') -name \"SESSION_WINDOW_TITLE\" ('\"${SESSION_WINDOW_TITLE}\"') \"NX_AGENT\" ('\"${NX_AGEN [...]
-	NX_TEMP='/tmp' x2goagent ${X2GO_NXAGENT_OPTIONS} ${NOLISTOPT} ${X2GODPIOPTION_} -${SESSION_TYPE} -auth "${XAUTHORITY}" -shadow ${SHADOW_DESKTOP} -shadowmode ${SHADOW_MODE} ${agent_geometry} -name "${SESSION_WINDOW_TITLE}" "${NX_AGENT}" 2>"${SESSION_LOG}" &
+	NX_TEMP='/tmp' x2goagent ${X2GO_NXAGENT_OPTIONS} ${NOLISTOPT} ${X2GODPIOPTION_} ${randr_xinerama_option} -${SESSION_TYPE} -auth "${XAUTHORITY}" -shadow ${SHADOW_DESKTOP} -shadowmode ${SHADOW_MODE} ${agent_geometry} -name "${SESSION_WINDOW_TITLE}" "${NX_AGENT}" 2>"${SESSION_LOG}" &
 else
 	# set NX_TEMP to /tmp, make sure x2goagent starts when pam_tmpdir.so is in use
 	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "started nxagent: NX_TEMP=/tmp x2goagent X2GO_NXAGENT_OPTIONS ('${X2GO_NXAGENT_OPTIONS}') NOLISTOPT ('${NOLISTOPT}') X2GODPIOPTION_ ('${X2GODPIOPTION_}') XDMCPPOPT ('${XDMCPOPT}') -SESSION_TYPE ('-${SESSION_TYPE}') NOEXITPARAM ('${NOEXITPARAM}') -auth \"XAUTHORITY\" ('\"${XAUTHORITY}\"') agent_geometry ('${agent_geometry}') -name \"SESSION_WINDOW_TITLE\" ('\"${SESSION_WINDOW_TITLE}\"') \"NX_AGENT\" ('\"${NX_AGENT}\"') 2>\"SESSION_LOG\" ('\"${ [...]
-	NX_TEMP='/tmp' x2goagent ${X2GO_NXAGENT_OPTIONS} ${NOLISTOPT} ${X2GODPIOPTION_} ${XDMCPOPT} -${SESSION_TYPE} ${NOEXITPARAM} -auth "${XAUTHORITY}" ${agent_geometry} -name "${SESSION_WINDOW_TITLE}" "${NX_AGENT}" 2>"${SESSION_LOG}" &
+	NX_TEMP='/tmp' x2goagent ${X2GO_NXAGENT_OPTIONS} ${NOLISTOPT} ${X2GODPIOPTION_} ${XDMCPOPT} ${randr_xinerama_option} -${SESSION_TYPE} ${NOEXITPARAM} -auth "${XAUTHORITY}" ${agent_geometry} -name "${SESSION_WINDOW_TITLE}" "${NX_AGENT}" 2>"${SESSION_LOG}" &
 fi
 
 ln -s -- "${SESSION_DIR}" "${X2GO_ROOT}/C-${SESSION_NAME}"

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list