On 11/28/2013 01:46 AM, Mike Gabriel wrote:
Hi Orion,
On Do 28 Nov 2013 01:12:18 CET, Orion Poplawski wrote:
This in x2gostartagent seems wrong:
if [ "$X2GO_SET_KBD" == "0" ] || [ "$X2GO_KBD_TYPE" != "auto" ]; 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
In the normal case, X2GO_SET_KBD is 1 and the type is specified as
pc105/us or pc105/gb, etc. Since X2GO_KBD_TYPE != auto it does not
set the keyboard setttings.
This is a bit hacky, I agree. Let me start from the beginning...
The ~/.x2go/<session>/keyboard file gets created by x2goagent. Always.
It is a file containing settings for the client-side keyboard. This
parameter in this file can be used to configure the session keyboard
automagically.
Now, we have three different keyboard setup types (actually four):
1. do not do anything about keyboard setup
-> X2GO_SET_KBD = 0
-> X2GO_KBD_TYPE = null/null (or so)
2. set a keyboard specified in X2Go Client
-> X2GO_SET_KBD = 1
-> X2GO_KBD_TYPE = pc105/de (or so)
So, in this case, how are the keyboard settings supposed to be applied?
3. auto-detect client-side keyboard
-> X2GO_SET_KBD = 1
-> X2GO_KBD_TYPE = auto
Only with this third parameter combination we want the
~/.x2go/<session>/keyboard to be created by x2goagent. Best (only?) way
for this is blocking the file name with a directory. x2goagent will
silently stumble over this blocked directory/file name and it will not
create the keyboard file.
(4. from Mac OS X you can theoretically use X2GO_KBD_TYPE = query. In
X2Go Client, however, there is code that sets X2GO_KBD_TYPE=query and
X2GO_SET_KBD=0, this basically disables the X2GO_KBD_TYPE=query. I
tested with a Mac User on IRC lately how the effect would be if we
switched this combination to X2GO_KBD_TYPE=query and X2GO_SET_KBD=1. On
his setup that change worked, so I added that to the latest X2Go Server
release. However, Anders has just reported a f****-up keyboard layout
since the latest X2Go Server release and I suspect that that code is
effecting that).
Next fact that comes into play here now is: the script x2gosetkeyboard.
This script is responsible for reading the ~/.x2go/<session>/keyboard,
extracting its information and running setxkbmap on the X2Go session's
$DISPLAY. This, I found, is only good working well, if that
x2gosetkeyboard call is evoked from x2goruncommand. However,
x2goruncommand does not know about X2GO_SET_KBD and X2GO_KBD_TYPE.
Thus, I have to leave a message for x2gosetkeyboard via the
x2gostartagent script. The information required is: is x2gosetkeyboard
supposed to run or not. This I do with creating
~/.x2go/<session>/keyboard as a directory prior to launching x2goagent.
So, IMHO the if clause above is just selecting the described case.
I'm not sure what is trying to be done here. An earlier comparison is:
if [ "$X2GO_SET_KBD" == "0" ] || [ "$X2GO_KBD_TYPE" == "auto" ];then
X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=null/null,${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
else
X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=${X2GO_KBD_TYPE},${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
fi
This one is also correct... In this if clause we set the NX option
kbtype=null/null or kbtype=${X2GO_KBD_TYPE}. We only want to set
kbtype=${X2GO_KBD_TYPE}, if it is not auto and X2GO_SET_KBD is enabled.
This is handled by the above quoted if-clause IMHO.
So you probably want a == auto.
Don't think so...
You may be right - we tried this and apparently it doesn't help (with
both KDE and XFCE). I wonder if something in the desktop environment
settings is overriding the settings.
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA/CoRA Division FAX: 303-415-9702
3380 Mitchell Lane [email protected]
Boulder, CO 80301 http://www.cora.nwra.com
_______________________________________________
X2Go-Dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/x2go-dev