User Tools

Site Tools


wiki:advanced:nx-keyboard-shortcuts

This is an old revision of the document!


Customize NX Keyboard Shortcuts

General Remarks

Necessary X2Go Version

The feature described below has only recently (as of 2012-12-06) been added to X2go and is currently experimental, further testing is necessary. You will need a new nightly build to try it out.

About this Wiki Page

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.

About nxagent

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.

Configurable Key Bindings in nxagent

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.

File Location

nxagent searches for the configuration file in the following order:

  • in the location given by the -keystrokefile command line parameter
  • in the location given by the NXAGENT_KEYSTROKEFILE environment variable
  • in ~/.nx/config/keystroke.cfg
  • in /etc/nx/keystroke.cfg

If none of those files is 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 the desktop around.
  • defer
    • Works like 'ignore' to make some keys be ignored / defunc inside the session
  • ignore
    • Makes it possible to add 'ignore', as in nothing happens when certain keys are pressed
  • fullscreen
    • Turns the client window into, or out of, fullscreen mode.
  • viewport_move_left
    • moves the desktop to the left
  • viewport_move_up
    • moves the desktop up
  • viewport_move_right
    • moves the desktop to the right
  • viewport_move_down
    • moves the desktop 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
wiki/advanced/nx-keyboard-shortcuts.1363303087.txt.gz · Last modified: 2013/03/14 23:18 by sunweaver