This is an old revision of the document!
This Wiki page is largely a copy of the README.keystrokes
in
http://code.x2go.org/gitweb?p=nx-libs.git;a=summary. Please keep them in
sync.
nxagent
is the process that an X2Go Server executes. Therefore the configuration described below
is evaluated on an X2Go Server and you have to place your configuration file on the server.
Key bindings in the redistributed X2Go version of nxagent (aka nx-libs, NX redistributed) can now be configured by the user. This is done via a configuration file.
nxagent parses the first available configuration file and ignores all others.
If nxagent is called without branding, it searches:
-keystrokefile
command line parameterNXAGENT_KEYSTROKEFILE
environment variable~/.nx/config/keystrokes.cfg
/etc/nx/keystrokes.cfg
If nxagent is called with X2Go branding (i.e., as x2goagent
), it searches:
-keystrokefile
command line parameterNXAGENT_KEYSTROKEFILE
environment variable~/.x2go/config/keystrokes.cfg
/etc/x2go/keystrokes.cfg
If none of these files are accessible, the default configuration is used which is the same as the old, traditional nxagent keybindings.
The configuration file is XML with the following format:
<!DOCTYPE NXKeystroke> <keystrokes> <keystroke action="fullscreen" AltMeta="1" Control="1" key="b" /> <keystroke action="minimize" AltMeta="1" Control="1" key="space" /> <keystroke action="minimize" key="Escape" Shift="1" /> <keystroke action="close_session" key="F7" /> <keystroke action="fullscreen" key="F7" Mod1="1" /> <keystroke action="fullscreen" key="F6" Mod1="1" /> <keystroke action="force_synchronization" key="f" /> <keystroke action="fullscreen" key="space" Mod1="0" Mod2="0" Control="0" Shift="0" AltMeta="0" /> </keystrokes>
Each action
defines an action to be executed when receiving that keystroke. A
list of possible actions is given below. Some of those actions are only
available with debug builds of nxagent.
Keys are given as a combination of key
and (optionally) a number of
modifiers. The key attribute is evaluated into a X11 key via the usual
XStringToKeysym
function. A list of possible keys can be found in
/usr/include/X11/keysymdef.h
, the names are specified without the leading
XK_
. Evaluation is case-sensitive, so, space
and Escape
will work while
Space
and escape
won't.
Modifiers are given as boolean attributes, possible modifiers are Mod1
, Mod2
,
Mod3
, Mod4
, Control
, Shift
, Lock
. Sensible combinations strongly depend on your
keyboard configuration, but usually you will need Mod1
and Control
. Boolean in
this context means 0
, false
and an unspecified attribute are false, anything
else is considered true.
Everything in this file is case-sensitive. Unknown lines are ignored. Keybindings are evaluated from top to bottom, so if a keybinding matches, other keybindings further down will be ignored. The contents of the file replaces the default keybindings, and only one file is read, no merging between different configuration files is done. This also means that an empty or invalid configuration file deactivates all keybindings.
Only in builds with certain debugging options enabled, ignored otherwise: