[X2Go-Commits] x2goserver.git - build-main (branch) updated: 3.1.1.0-20-gb022803
X2Go dev team
git-admin at x2go.org
Wed Dec 4 06:18:18 CET 2013
The branch, build-main has been updated
via b022803cb5b4dc10c740c52bd5845f9a52b7d9b9 (commit)
from ccdd4364d44b187c1f5cd24b4f1c2aa487110cac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
debian/changelog | 2 ++
x2goserver/bin/x2goresume-session | 15 +++++++++------
x2goserver/bin/x2goruncommand | 2 ++
x2goserver/bin/x2gosetkeyboard | 28 ++++++++++++++++++++++++----
x2goserver/bin/x2gostartagent | 10 +++++-----
5 files changed, 42 insertions(+), 15 deletions(-)
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 107a2a2..9522e79 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -20,6 +20,8 @@ x2goserver (3.1.1.1-0~x2go1) UNRELEASED; urgency=low
in X2Go session cache directory.
- Add support for client-side keyboard detection. Moved script
x2gosetkeyboard from x2goserver-pyhoca into x2goserver package.
+ - Make x2gosetkeyboard set the client-side keyboard on sessino start and
+ resume.
-- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Wed, 04 Apr 2012 11:44:14 +0200
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index a0b299a..cdb5af2 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -152,6 +152,9 @@ echo "$NEWOPTIONS" >"${SESSION_DIR}/options"
# run x2goserver-extensions for pre-resume
x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" pre-resume || true
+# clear old keyboard file
+rm -Rf $SESSION_DIR/keyboard
+
kill -HUP $X2GO_AGENT_PID &>/dev/null && {
$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "client $X2GO_CLIENT has successfully resumed session with ID $SESSION_NAME"
@@ -171,12 +174,6 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
#done
(sleep 1; $X2GO_LIB_PATH/x2goresume "$X2GO_CLIENT" "$SESSION_NAME" "$GR_PORT" "$SOUND_PORT" "$FS_PORT" > /dev/null;)
- # set client-side keyboard model, type, variant, etc.
- if [ "$X2GO_SET_KBD" != "0" ]; then
- X2GO_DISPLAY=$(echo $X2GO_SESSION | cut -d"-" -f2)
- (sleep 1; DISPLAY=:$X2GO_DISPLAY.0 x2gosetkeyboard;)
- fi
-
# resume x2godesktopsharing, if it has been in use before the session got suspended
x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goresume-desktopsharing "$SESSION_NAME" || true
@@ -201,3 +198,9 @@ echo "gr_port=$GR_PORT"
echo "sound_port=$SOUND_PORT"
echo "fs_port=$FS_PORT"
+# set client-side keyboard model, type, variant, etc.
+if [ "$X2GO_SET_KBD" == "0" ]; then
+ X2GO_DISPLAY=$(echo $SESSION_NAME | cut -d"-" -f2)
+ export DISPLAY=:$X2GO_DISPLAY.0
+ x2gosetkeyboard "$SESSION_NAME" >/dev/null 2>/dev/null &
+fi
diff --git a/x2goserver/bin/x2goruncommand b/x2goserver/bin/x2goruncommand
index 541326d..012f713 100755
--- a/x2goserver/bin/x2goruncommand
+++ b/x2goserver/bin/x2goruncommand
@@ -200,6 +200,8 @@ sucessful_run=false
if [ "$EXEC" != "" ] && [ -x $EXEC ]; then
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "running command $EXEC"
+ x2gosetkeyboard >/dev/null 2>/dev/null &
+
x2gofeature X2GO_XSESSION &>/dev/null && [ "x$X2GO_SESS_TYPE" = "xD" ] && {
STARTUP="$cmd$args"
$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "launching session with Xsession-x2go mechanism, using STARTUP=\"$STARTUP\""
diff --git a/x2goserver/bin/x2gosetkeyboard b/x2goserver/bin/x2gosetkeyboard
index 6ca357e..710daa9 100755
--- a/x2goserver/bin/x2gosetkeyboard
+++ b/x2goserver/bin/x2gosetkeyboard
@@ -17,23 +17,41 @@
# Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
+# Copyright (C) 2011-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
# Copyright (C) 2011-2012 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
# Copyright (C) 2011-2012 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
-set -e
-
X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
$X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
+SESSION_NAME=${1:-$X2GO_SESSION}
+
# set up paths
X2GO_SESSION_ROOT=${HOME}/.x2go
-X2GO_SESSION_DIR=${X2GO_SESSION_ROOT}/C-${X2GO_SESSION}
+X2GO_SESSION_DIR=${X2GO_SESSION_ROOT}/C-${SESSION_NAME}
# client keyboard configuration
X2GO_CLIENT_KBD_FILE=${X2GO_SESSION_DIR}/keyboard
-test -f ${X2GO_CLIENT_KBD_FILE} || exit 0
+# if there is a directory at the location of the keyboard file, we consider this as blocking this script
+if [ -d ${X2GO_CLIENT_KBD_FILE} ]; then
+ $X2GO_LIB_PATH/x2gosyslog "$0" "info" "${X2GO_CLIENT_KBD_FILE} is blocked, not setting keyboard parameters from client-side settings"
+ rm -Rf ${X2GO_CLIENT_KBD_FILE}
+ exit 0
+fi
+
+# wait for the keyboard file to appear
+i=0
+while ! [ -f ${X2GO_CLIENT_KBD_FILE} ] && [ $i -lt 30 ]; do
+ $X2GO_LIB_PATH/x2gosyslog "$0" "info" "Waiting for ${X2GO_CLIENT_KBD_FILE} to appear"
+ sleep 1
+ i=$((i+1))
+done
+if ! [ -f ${X2GO_CLIENT_KBD_FILE} ]; then
+ $X2GO_LIB_PATH/x2gosyslog "$0" "warning" "${X2GO_CLIENT_KBD_FILE} did not appear within 30s after agent startup"
+ exit 0
+fi
read_keyboard_file() {
@@ -63,5 +81,7 @@ update_keymap() {
}
### main ###
+$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "Setting X keyboard according to ${X2GO_CLIENT_KBD_FILE}"
read_keyboard_file
update_keymap
+
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index dfbf017..90b82b1 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -251,11 +251,6 @@ if [ "$X2GO_STYPE" == "S" ]; then
x2goagent -nolisten tcp $X2GODPIOPTION_ -$SESSION_TYPE -auth "$XAUTHORITY" -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}" "${NX_AGENT}" 2>"${SESSION_DIR}/session.log" &
else
x2goagent -nolisten tcp $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE $NOEXITPARAM -auth "$XAUTHORITY" -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}" "${NX_AGENT}" 2>"${SESSION_DIR}/session.log" &
-
- # if we do not enforce a special keybaord type/layout/variant, use the one detected on the client-side
- if [ "$X2GO_SET_KBD" != "0" ]; then
- (sleep 1; x2gosetkeyboard;)
- fi
fi
X2GO_AGENT_PID=$!
@@ -278,6 +273,11 @@ X2GO_SND_PORT=1024
$X2GO_LIB_PATH/x2gocreatesession "$X2GO_COOKIE" "$X2GO_AGENT_PID" "$X2GO_CLIENT" "$GR_PORT" "$SOUND_PORT" "$FS_PORT" "$SESSION_NAME" > /dev/null
+if [ "$X2GO_SET_KBD" != "0" ]; then
+ $X2GO_LIB_PATH/x2gosyslog "$0" "info" "blocking creation of agent's keyboard file ${SESSION_DIR}/keyboard as requested by session startup command"
+ mkdir -p ${SESSION_DIR}/keyboard
+fi
+
echo $X2GO_PORT
echo $X2GO_COOKIE
echo $X2GO_AGENT_PID
hooks/post-receive
--
x2goserver.git (X2Go Server)
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "x2goserver.git" (X2Go Server).
More information about the x2go-commits
mailing list