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: 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.