aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/nxagent/README.keystrokes2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Keystroke.c13
2 files changed, 11 insertions, 4 deletions
diff --git a/doc/nxagent/README.keystrokes b/doc/nxagent/README.keystrokes
index 32197a79f..ad850f6df 100644
--- a/doc/nxagent/README.keystrokes
+++ b/doc/nxagent/README.keystrokes
@@ -16,7 +16,7 @@ If nxagent is called without branding, it searches:
If nxagent is called with X2Go branding (i.e., as x2goagent), it searches:
- in the location given by the '-keystrokefile' command line parameter
-- in the location given by the NXAGENT_KEYSTROKEFILE environment variable
+- in the location given by the X2GO_KEYSTROKEFILE environment variable
- in ~/.x2go/config/keystrokes.cfg
- in /etc/x2go/keystrokes.cfg
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c
index f655e3b95..ec408d3c2 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c
@@ -245,13 +245,15 @@ static Bool read_binding_from_xmlnode(xmlNode *node, struct nxagentSpecialKeystr
* - $HOME/.nx/config/keystrokes.cfg
* - /etc/nxagent/keystrokes.cfg
* - hardcoded traditional NX default settings
+ * If run in x2go flavour different filenames and varnames are used.
*/
static void parse_keystroke_file(void)
{
char *filename = NULL;
- char *homefile = "/.nx/config/keystrokes.cfg";
- char *etcfile = "/etc/nxagent/keystrokes.cfg";
+ char *homefile;
+ char *etcfile;
+ char *envvar;
/* used for tracking if the config file parsing has already been
done (regardless of the result) */
@@ -263,6 +265,11 @@ static void parse_keystroke_file(void)
if (nxagentX2go) {
homefile = "/.x2go/config/keystrokes.cfg";
etcfile = "/etc/x2go/keystrokes.cfg";
+ envvar = "X2GO_KEYSTROKEFILE";
+ } else {
+ homefile = "/.nx/config/keystrokes.cfg";
+ etcfile = "/etc/nxagent/keystrokes.cfg";
+ envvar = "NXAGENT_KEYSTROKEFILE";
}
if (nxagentKeystrokeFile != NULL && access(nxagentKeystrokeFile, R_OK) == 0)
@@ -274,7 +281,7 @@ static void parse_keystroke_file(void)
exit(EXIT_FAILURE);
}
}
- else if ((filename = getenv("NXAGENT_KEYSTROKEFILE")) != NULL && access(filename, R_OK) == 0)
+ else if ((filename = getenv(envvar)) != NULL && access(filename, R_OK) == 0)
{
filename = strdup(filename);
if (filename == NULL)