aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
diff options
context:
space:
mode:
authorAlexander Wuerstlein <arw@arw.name>2015-02-13 09:52:21 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-02-13 09:52:21 +0100
commite91277d02bf1288909daed3b0de8f876f6403acf (patch)
tree527aa5a009cd50e66767af09703818616328c50c /nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
parent4dc1bd0043aed6b92526cbda26991be1f611a121 (diff)
downloadnx-libs-e91277d02bf1288909daed3b0de8f876f6403acf.tar.gz
nx-libs-e91277d02bf1288909daed3b0de8f876f6403acf.tar.bz2
nx-libs-e91277d02bf1288909daed3b0de8f876f6403acf.zip
Make nxagent-specific keyboard bindings configurable (320_nxagent_configurable-keystrokes.full.patch).
Replaces the hardcoded nxagent keybindings by a configurable table of keybindings. The default configuration is the same as the original one, to maintain compatibility. A user/administrator can either specify a command line parameter, environment variable or place a file in ~/.nx/config/keystrokes.cfg or /etc/nxagent/keystrokes.cfg to reconfigure these keybindings. The configuration file format is XML, a dependency on libxml2 is added to allow parsing the configuration.
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keystroke.h')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Keystroke.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
index ef71a8851..d9575c875 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
@@ -24,4 +24,51 @@ extern int nxagentCheckSpecialKeystroke(XKeyEvent*, enum HandleEventResult*);
unsigned int nxagentAltMetaMask;
+/* keep this sorted, do not rely on any numerical value in this enum, and be aware
+ * that KEYSTROKE_MAX may be used in a malloc */
+
+/* also be aware that if changing any numerical values, you also need to change values
+ * Keystroke.c nxagentSpecialKeystrokeNames */
+enum nxagentSpecialKeystroke {
+ /* 0 is used as end marker */
+ KEYSTROKE_END_MARKER = 0,
+ KEYSTROKE_CLOSE_SESSION = 1,
+ KEYSTROKE_SWITCH_ALL_SCREENS = 2,
+ KEYSTROKE_MINIMIZE = 3,
+ KEYSTROKE_LEFT = 4,
+ KEYSTROKE_UP = 5,
+ KEYSTROKE_RIGHT = 6,
+ KEYSTROKE_DOWN = 7,
+ KEYSTROKE_RESIZE = 8,
+ KEYSTROKE_DEFER = 9,
+ KEYSTROKE_IGNORE = 10,
+ KEYSTROKE_FORCE_SYNCHRONIZATION = 11,
+
+ /* stuff used for debugging, probably not useful for most people */
+ KEYSTROKE_DEBUG_TREE = 12,
+ KEYSTROKE_REGIONS_ON_SCREEN = 13,
+ KEYSTROKE_TEST_INPUT = 14,
+ KEYSTROKE_DEACTIVATE_INPUT_DEVICES_GRAB = 15,
+
+ KEYSTROKE_FULLSCREEN = 16,
+ KEYSTROKE_VIEWPORT_MOVE_LEFT = 17,
+ KEYSTROKE_VIEWPORT_MOVE_UP = 18,
+ KEYSTROKE_VIEWPORT_MOVE_RIGHT = 19,
+ KEYSTROKE_VIEWPORT_MOVE_DOWN = 20,
+
+ KEYSTROKE_NOTHING = 21,
+
+ /* insert more here, increment KEYSTROKE_MAX accordingly.
+ * then update string translation below */
+
+ KEYSTROKE_MAX=22,
+};
+
+struct nxagentSpecialKeystrokeMap {
+ enum nxagentSpecialKeystroke stroke;
+ unsigned int modifierMask; /* everything except alt/meta */
+ int modifierAltMeta; /* modifier combination should include alt/meta */
+ KeySym keysym;
+};
+
#endif /* __Keystroke_H__ */