aboutsummaryrefslogtreecommitdiff
path: root/doc/nxagent/README.keystrokes
diff options
context:
space:
mode:
Diffstat (limited to 'doc/nxagent/README.keystrokes')
-rw-r--r--doc/nxagent/README.keystrokes113
1 files changed, 113 insertions, 0 deletions
diff --git a/doc/nxagent/README.keystrokes b/doc/nxagent/README.keystrokes
new file mode 100644
index 000000000..3d55f5096
--- /dev/null
+++ b/doc/nxagent/README.keystrokes
@@ -0,0 +1,113 @@
+Configurable keybindings in nxagent
+
+Keybindings in the redistributed x2go version of nxagent can be configured
+by the user. This is done via a configuration file.
+
+File location
+-------------
+
+nxagent parses the first available configuration file and ignores all others.
+
+If nxagent is called without branding, it searches:
+- in the location given by the '-keystrokefile' command line parameter
+- in the location given by the NXAGENT_KEYSTROKEFILE environment variable
+- in ~/.nx/config/keystrokes.cfg
+- in /etc/nxagent/keystrokes.cfg
+
+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 X2GO_KEYSTROKEFILE environment variable
+- in ~/.x2go/config/keystrokes.cfg
+- in /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.
+
+File format
+-----------
+
+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, Mod5, 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.
+
+If an attribute occurs more than once in a line the last one wins.
+
+List of possible 'action' attributes:
+-------------------------------------
+
+close_session
+ This terminates the session.
+
+fullscreen
+ Switches the client window into or out of fullscreen mode, using
+ only the current head.
+
+switch_all_screens
+ Switches the client window into or out of fullscreen mode, using all
+ available heads.
+
+minimize
+ This will minimize the client window (even for fullscreen sessions).
+
+resize
+ This action switches between the auto-resize (default) and viewport
+ mode. In viewport mode the xserver screen size stays static even
+ if the nxagent window is resized. You will possibly only see a part of
+ the screen and can scroll around using the following actions:
+viewport_move_left/up/right/down
+ Moves the viewport left/up/right/down by the width resp. height of
+ the visible area.
+viewport_scroll_left/up/right/down
+ Scrolls the viewport left/up/right/down with increasing speed
+ (maximum step size is 200px).
+
+defer
+ Activates/deactivates deferred screen updates.
+
+ignore
+ Ignores the following keystroke, nothing will happen when this
+ keystroke is pressed.
+
+reread_keystrokes
+ Forces nxagent to re-read the keystroke configuration. Useful to
+ add/change keystrokes to a running session.
+
+force_synchronization
+ Forces immediate drawing of elements to be synchronized which can
+ fix some visual bugs.