diff options
author | marha <marha@users.sourceforge.net> | 2010-07-13 07:35:01 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-07-13 07:35:01 +0000 |
commit | 81124070f120ab658e094b64f6944d701b003a99 (patch) | |
tree | 735e49473d8c4545e39cf98981e3dcdfd70760f9 /xorg-server/xkeyboard-config/types/numpad | |
parent | f2388fcb82e72ee921139e9a4c8f9223e4ae04cd (diff) | |
download | vcxsrv-81124070f120ab658e094b64f6944d701b003a99.tar.gz vcxsrv-81124070f120ab658e094b64f6944d701b003a99.tar.bz2 vcxsrv-81124070f120ab658e094b64f6944d701b003a99.zip |
Renamed xkbdata.src to xkeyboard-config (to reflect the name in the git repository)
Diffstat (limited to 'xorg-server/xkeyboard-config/types/numpad')
-rw-r--r-- | xorg-server/xkeyboard-config/types/numpad | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/xorg-server/xkeyboard-config/types/numpad b/xorg-server/xkeyboard-config/types/numpad new file mode 100644 index 000000000..a48e76a64 --- /dev/null +++ b/xorg-server/xkeyboard-config/types/numpad @@ -0,0 +1,72 @@ + +partial default xkb_types "pc" { + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None] = Level1; + map[Shift] = Level2; + map[NumLock] = Level2; + map[Shift+NumLock] = Level1; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +// On Mac keypads, level 1 and 2 are swapped +partial xkb_types "mac" { + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None] = Level2; + map[Shift] = Level1; + map[NumLock] = Level1; + map[Shift+NumLock] = Level2; + level_name[Level2] = "Base"; + level_name[Level1] = "Number"; + }; + include "extra(mac_keypad)" +}; + +partial xkb_types "microsoft" { + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None] = Level1; + preserve[Shift] = Shift; + map[NumLock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +// Swiss-German style numeric keypad: Shift and NumLock operates as +// two independent modifiers; however, since we want shift state for +// the cursor keys, only three levels are used from the key mappings. +// Closest type is actually FOUR_LEVEL_X, but most numpad layouts uses +// FOUR_LEVEL_MIXED_KEYPAD so that's the one we are going to override. +partial xkb_types "shift3" { + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers = Shift+NumLock+Control+Alt; + + // NumLock Off => navigate using cursor keys + map[None] = Level1; + + // NumLock Off + Shift pressed => select using cursor keys + preserve[Shift] = Shift; + + // NumLock On => decimal digits + map[NumLock] = Level2; + + // NumLock On + Shift pressed => auxiliary symbols, + // e.g. hexadecimal digits + map[Shift+NumLock] = Level3; + + // Ctrl + Alt, regardless of NumLock and Shift => command keys + map[Control+Alt] = Level4; + + // reverse map from levels to modifiers + level_name[Level1] = "Base"; + level_name[Level2] = "NumLock"; + level_name[Level3] = "Shift+NumLock"; + level_name[Level4] = "Ctrl+Alt"; + }; +}; |