df8c2e47ce
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@68 423420c4-83ab-492f-b58f-81f9feb106b5
70 lines
1.9 KiB
Plaintext
70 lines
1.9 KiB
Plaintext
Keymap-files
|
|
============
|
|
The keymaps are line based. There are three different types of lines:
|
|
|
|
1) include-lines
|
|
Syntax:
|
|
include <another-map-file>
|
|
|
|
|
|
2) map-lines
|
|
Syntax:
|
|
map <hex-number>
|
|
|
|
Map-lines specifies how the remote RDP server should interpret the
|
|
sent scancodes.
|
|
|
|
|
|
3) Translation-lines
|
|
Syntax:
|
|
<keysym-name> <scancode> [flags..]
|
|
|
|
The scancode can be found in scancodes.h. Note: The scancode value for
|
|
extended keys can be calculated by OR:ing with 0x80. Example: The
|
|
Delete key have the scancode sequence 0xe0, 0x52. You can get the
|
|
scancode value to put into the map file by running:
|
|
|
|
python -c "print hex(0x80 | 0x52)"
|
|
|
|
If flags are "altgr", "shift", "numlock", the scancode sent for this
|
|
keysym will be prefix with AltGr, Shift or Numlock.
|
|
|
|
If flags include "addupper", an translation for this keysyms uppercase
|
|
name will as well, in addition to the non-uppercase name. Example:
|
|
|
|
x 2d addupper
|
|
|
|
...will add an translation for "X" automatically, just like if you
|
|
would specify:
|
|
|
|
X 2d shift
|
|
|
|
If flags include "localstate", the modifier to send will be determined
|
|
by the local modifier state.
|
|
|
|
Suggested X11 keysym mapping on PCs
|
|
===================================
|
|
Unfortunately, there is no standard for which keysyms a given key
|
|
should generate. If you have a PC-keyboard with Windows keys, I suggest this mapping:
|
|
|
|
Keyboard keys:
|
|
CtrlLeft WinLeft AltLeft Space AltGr WinRight Menu CtrlRight
|
|
|
|
...should generate keysyms:
|
|
Control_L Hyper_L Alt_L space Mode_switch Hyper_R Menu Control_R
|
|
|
|
Additionally:
|
|
Shift-Alt should produce Meta_L
|
|
Shift-AltGr should produce Multi_Key.
|
|
|
|
Use a modifier-map like this:
|
|
|
|
shift Shift_L (0x32), Shift_R (0x3e)
|
|
lock Caps_Lock (0x25)
|
|
control Control_L (0x42), Control_R (0x6d)
|
|
mod1 Alt_L (0x40)
|
|
mod2 Num_Lock (0x4d)
|
|
mod3 Mode_switch (0x71)
|
|
mod4 Hyper_L (0x73), Hyper_R (0x74)
|
|
mod5 Scroll_Lock (0x4e)
|