139 lines
5.4 KiB
Plaintext
139 lines
5.4 KiB
Plaintext
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
|
|
(accompanied by a warning in the session log). 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.
|
|
|
|
Some of the actions can open a dialog window. Depending on the user's
|
|
answer the selected action will be taken. Some actions will only show
|
|
a dialog informing the user about the taken action. All these dialogs
|
|
will only work if the nxagent/x2goagent process has a properly
|
|
configured NX_CLIENT environment variable pointing to an executable
|
|
(like nxdialog) that is responsible for showing the dialogs and taking
|
|
the action(s). If that executable cannot be run no dialog will show up
|
|
and no action will be taken.
|
|
|
|
List of possible 'action' attributes:
|
|
-------------------------------------
|
|
|
|
close_session
|
|
This terminates the session. If a proper dialog helper is available
|
|
ask the user if he wants to disconnect
|
|
or terminate the session and then perform the selected
|
|
action. Without proper helper it will do nothing (except writing an
|
|
error the session log)
|
|
|
|
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. With a proper
|
|
dialog helper (see above) it will open a dialog informing the user
|
|
about the action taken.
|
|
|
|
ignore
|
|
Ignores the following keystroke, nothing will happen when this
|
|
keystroke is pressed. The keystroke will NOT be passed to the
|
|
clients. If you want the clients to see the keystroke you need to
|
|
eliminate the line from the config file instead of using 'ignore'.
|
|
|
|
reread_keystrokes
|
|
Forces nxagent to re-read the keystroke configuration. Useful to
|
|
add/change keystrokes to a running session.
|
|
|
|
autograb
|
|
Toggles autograb mode
|
|
|
|
dump_clipboard
|
|
print the current internal clipboard state (for debugging) to the
|
|
log.
|
|
|
|
force_synchronization
|
|
Forces immediate drawing of elements to be synchronized which can
|
|
fix some visual bugs.
|