diff options
author | marha <marha@users.sourceforge.net> | 2010-07-13 07:48:55 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-07-13 07:48:55 +0000 |
commit | d8f81c980a46279ac619312a914b563144894512 (patch) | |
tree | 3d2dce1c24fa37edf81c47af2311dbaf56a763f6 /xorg-server/xkeyboard-config/types/numpad | |
parent | 1812c17dc8e8f071d8731716849957e97bb2b974 (diff) | |
download | vcxsrv-d8f81c980a46279ac619312a914b563144894512.tar.gz vcxsrv-d8f81c980a46279ac619312a914b563144894512.tar.bz2 vcxsrv-d8f81c980a46279ac619312a914b563144894512.zip |
Renamed xkbdata.src also on trunk since the current merging of subversion will loose all the changes in xkbdata.src when the directory is renamed on the source branch.
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"; + }; +}; |