aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/nxagent/README.keystrokes102
1 files changed, 102 insertions, 0 deletions
diff --git a/doc/nxagent/README.keystrokes b/doc/nxagent/README.keystrokes
new file mode 100644
index 000000000..08cdafb46
--- /dev/null
+++ b/doc/nxagent/README.keystrokes
@@ -0,0 +1,102 @@
+Configurable keybindings in nxagent
+
+Keybindings in the redistributed x2go version of nxagent can now 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 NXAGENT_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, 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.
+
+List of possible 'action' attributes:
+-------------------------------------
+
+close_session
+ This terminates the session.
+switch_all_screens
+minimize
+ This will minimize the client window (even for fullscreen sessions.)
+left
+up
+right
+down
+resize
+ This action switches between the auto-resize and viewport mode (static size). The default is auto-resize. In viewport mode one can use the 'viewport_move_up', 'viewport_move_down', 'viewport_move_left' and 'viewport_move_right' actions to move within the image.
+defer
+ Works like 'ignore' to make some keys be ignored/defunct inside the session.
+ignore
+ Makes it possible to add 'ignore', as in nothing happens when certain keys are pressed.
+fullscreen
+ Switches the client window into or out of fullscreen mode.
+viewport_move_left
+ Moves the image viewport to the left.
+viewport_move_up
+ Moves the image viewport up.
+viewport_move_right
+ Moves the image viewport to the right.
+viewport_move_down
+ Moves the image viewport down.
+
+Only in builds with certain debugging options enabled, ignored otherwise:
+force_synchronization
+ Forces the drawing of elements to be synchronized which can fix some visual bugs.
+debug_tree
+regions_on_screen
+test_input
+deactivate_input_devices_grab