From 81124070f120ab658e094b64f6944d701b003a99 Mon Sep 17 00:00:00 2001 From: marha Date: Tue, 13 Jul 2010 07:35:01 +0000 Subject: Renamed xkbdata.src to xkeyboard-config (to reflect the name in the git repository) --- xorg-server/xkeyboard-config/types/Makefile.am | 11 ++ xorg-server/xkeyboard-config/types/README | 4 + xorg-server/xkeyboard-config/types/basic | 31 ++++ xorg-server/xkeyboard-config/types/cancel | 12 ++ xorg-server/xkeyboard-config/types/caps | 170 +++++++++++++++++++ xorg-server/xkeyboard-config/types/complete | 17 ++ xorg-server/xkeyboard-config/types/default | 12 ++ xorg-server/xkeyboard-config/types/extra | 185 +++++++++++++++++++++ xorg-server/xkeyboard-config/types/iso9995 | 20 +++ xorg-server/xkeyboard-config/types/level5 | 217 +++++++++++++++++++++++++ xorg-server/xkeyboard-config/types/mousekeys | 13 ++ xorg-server/xkeyboard-config/types/nokia | 14 ++ xorg-server/xkeyboard-config/types/numpad | 72 ++++++++ xorg-server/xkeyboard-config/types/pc | 111 +++++++++++++ 14 files changed, 889 insertions(+) create mode 100644 xorg-server/xkeyboard-config/types/Makefile.am create mode 100644 xorg-server/xkeyboard-config/types/README create mode 100644 xorg-server/xkeyboard-config/types/basic create mode 100644 xorg-server/xkeyboard-config/types/cancel create mode 100644 xorg-server/xkeyboard-config/types/caps create mode 100644 xorg-server/xkeyboard-config/types/complete create mode 100644 xorg-server/xkeyboard-config/types/default create mode 100644 xorg-server/xkeyboard-config/types/extra create mode 100644 xorg-server/xkeyboard-config/types/iso9995 create mode 100644 xorg-server/xkeyboard-config/types/level5 create mode 100644 xorg-server/xkeyboard-config/types/mousekeys create mode 100644 xorg-server/xkeyboard-config/types/nokia create mode 100644 xorg-server/xkeyboard-config/types/numpad create mode 100644 xorg-server/xkeyboard-config/types/pc (limited to 'xorg-server/xkeyboard-config/types') diff --git a/xorg-server/xkeyboard-config/types/Makefile.am b/xorg-server/xkeyboard-config/types/Makefile.am new file mode 100644 index 000000000..6da3ccb78 --- /dev/null +++ b/xorg-server/xkeyboard-config/types/Makefile.am @@ -0,0 +1,11 @@ +typesdir = $(xkb_base)/types + +dist_types_DATA = \ +basic cancel caps \ +complete default extra \ +iso9995 level5 mousekeys nokia numpad \ +pc README + +dir_data = $(dist_types_DATA) + +include $(top_srcdir)/xkbrules.am diff --git a/xorg-server/xkeyboard-config/types/README b/xorg-server/xkeyboard-config/types/README new file mode 100644 index 000000000..1a1e2c01e --- /dev/null +++ b/xorg-server/xkeyboard-config/types/README @@ -0,0 +1,4 @@ +The types component of a keyboard mapping specifies the key types that can be +associated with the various keyboard keys. The types component can also +optionally contain real modifiers binding and symbolic names for one +or more virtual modifiers. diff --git a/xorg-server/xkeyboard-config/types/basic b/xorg-server/xkeyboard-config/types/basic new file mode 100644 index 000000000..cf1ee648b --- /dev/null +++ b/xorg-server/xkeyboard-config/types/basic @@ -0,0 +1,31 @@ +// $Xorg: basic,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ + +default xkb_types "basic" { + + // Fairly standard definitions for + // the four required key types + + virtual_modifiers NumLock; + + type "ONE_LEVEL" { + modifiers = None; + map[None] = Level1; + level_name[Level1]= "Any"; + }; + + type "TWO_LEVEL" { + modifiers = Shift; + map[Shift] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + }; + + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + map[Lock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + +}; diff --git a/xorg-server/xkeyboard-config/types/cancel b/xorg-server/xkeyboard-config/types/cancel new file mode 100644 index 000000000..478c99c4b --- /dev/null +++ b/xorg-server/xkeyboard-config/types/cancel @@ -0,0 +1,12 @@ +// $Xorg: cancel,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +partial default xkb_types "Shift_Cancels_Caps" { + +override type "TWO_LEVEL" { + modifiers = Shift+Lock; + map[Shift] = Level2; + preserve[Lock]= Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; +}; + +}; diff --git a/xorg-server/xkeyboard-config/types/caps b/xorg-server/xkeyboard-config/types/caps new file mode 100644 index 000000000..7936df12f --- /dev/null +++ b/xorg-server/xkeyboard-config/types/caps @@ -0,0 +1,170 @@ +// $XFree86: xc/programs/xkbcomp/types/caps,v 1.3 2002/11/26 02:14:02 dawes Exp $ + +// CapsLock uses internal capitalization rules +// Shift "pauses" CapsLock +partial xkb_types "internal" { + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + preserve[Lock] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + preserve[Lock] = Lock; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + preserve[Lock+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + preserve[Lock] = Lock; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; +// CapsLock uses internal capitalization rules +// Shift doesn't cancel CapsLock +partial xkb_types "internal_nocancel" { + type "ALPHABETIC" { + modifiers = Shift; + map[Shift] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + // the same as FOUR_LEVEL_ALPHABETIC + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; +// CapsLock acts as Shift with locking +// Shift "pauses" CapsLock +partial xkb_types "shift" { + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + map[Lock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Shift+Lock+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; +// CapsLock acts as Shift with locking +// Shift doesn't cancel CapsLock +partial xkb_types "shift_nocancel" { + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + map[Lock] = Level2; + map[Shift+Lock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[Shift+Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Shift+Lock+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[Shift+Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; +}; diff --git a/xorg-server/xkeyboard-config/types/complete b/xorg-server/xkeyboard-config/types/complete new file mode 100644 index 000000000..96d4fd572 --- /dev/null +++ b/xorg-server/xkeyboard-config/types/complete @@ -0,0 +1,17 @@ +// $XKeyboardConfig$ +// $Xorg: complete,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +// +// +// +// +// $XFree86: xc/programs/xkbcomp/types/complete,v 1.2 2001/05/18 23:35:35 dawes Exp $ + +default xkb_types "complete" { + include "basic" + include "mousekeys" + include "pc" + include "iso9995" + include "level5" + include "extra" + include "numpad" +}; diff --git a/xorg-server/xkeyboard-config/types/default b/xorg-server/xkeyboard-config/types/default new file mode 100644 index 000000000..18859b742 --- /dev/null +++ b/xorg-server/xkeyboard-config/types/default @@ -0,0 +1,12 @@ +// $XKeyboardConfig$ +// $Xorg: default,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ + +default xkb_types "default" { + include "basic" + include "pc" + include "iso9995" + include "extra" + include "numpad" + include "level5" + include "mousekeys" +}; diff --git a/xorg-server/xkeyboard-config/types/extra b/xorg-server/xkeyboard-config/types/extra new file mode 100644 index 000000000..a82fd10d2 --- /dev/null +++ b/xorg-server/xkeyboard-config/types/extra @@ -0,0 +1,185 @@ +// $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $ + +partial default xkb_types "default" { + // Definition for a key type used for the czech keymap, for instance. + // Defines style a with four level shift. It is similar to three_level + // type used for iso9995 but it lets the shift key behave "normally". + + virtual_modifiers LevelThree; + + type "FOUR_LEVEL" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + // Another four level keypad variant + // First two levels are controled by NumLock (with active Shift-ing like + // in KEYPAD). LevelThree overrides this mode, with two additional + // Shift-ed levels + // NumLock state is intentionnaly ignored when LevelThree is active + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level1; + map[Shift+NumLock] = Level1; + map[NumLock] = Level2; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[NumLock+LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Shift+NumLock+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + // Base level, two Shift-ed LevelThree levels, one Ctrl+Alt command level + type "FOUR_LEVEL_X" { + modifiers = Shift+LevelThree+Control+Alt; + map[None] = Level1; + map[LevelThree] = Level2; + map[Shift+LevelThree] = Level3; + map[Control+Alt] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Alt Base"; + level_name[Level3] = "Shift Alt"; + level_name[Level4] = "Ctrl+Alt"; + }; + +// Special type for keys used in Serbian Latin Unicode map +// It makes it possible to use all three forms of latin letters +// present in Unicode that are made up of two separate letters +// (forms like LJ, Lj, and lj; NJ, Nj, and nj; etc) + + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level4; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + preserve[Lock]= Lock; + preserve[Lock+LevelThree]= Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "AltGr Base"; + level_name[Level4] = "Shift AltGr"; + }; + +// type for e.g. german ssharp which is capitalized SS. +// CHARACTERISTICS: +// It is FOUR_LEVEL with the exception that the fifth level +// is mapped to the Lock modifier. +// If other modifiers are used, the Lock state is ignored. +// DETAILS ABOUT GERMAN: +// The capital form of ssharp (called sharp s) only exists for +// completely capitalized Text, not at the beginning of sentences +// or nouns (nouns have a captial letter at the beginning in german). +// The ssharp key, to the right of the zero key, takes this into +// account and has a questionmark mapped on shift-ssharp since +// normally no capital version is needed. +// When typing with active capsLock, this key type is needed to +// output two capital letters S because this is the only german key +// whose capital letter is not the same as the one typed with shift. + + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock] = Level5; + map[Lock+Shift] = Level2; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "Lock"; + }; +}; + +// This enables the four level shifting also for the keypad. +partial xkb_types "keypad" { + virtual_modifiers LevelThree; + + type "FOUR_LEVEL_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[NumLock] = Level2; + map[Shift+NumLock] = Level1; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[NumLock+LevelThree] = Level4; + map[Shift+NumLock+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Alt Number"; + }; +}; + +// This enables the four level shifting also for the keypad, +// but levels 1 and 2, and 3 and 4 are swapped on Mac keypads. +partial xkb_types "mac_keypad" { + virtual_modifiers LevelThree; + + type "FOUR_LEVEL_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level2; + map[Shift] = Level1; + map[NumLock] = Level1; + map[Shift+NumLock] = Level2; + map[LevelThree] = Level4; + map[Shift+LevelThree] = Level3; + map[NumLock+LevelThree] = Level3; + map[Shift+NumLock+LevelThree] = Level4; + level_name[Level2] = "Base"; + level_name[Level1] = "Number"; + level_name[Level4] = "Alt Base"; + level_name[Level3] = "Alt Number"; + }; +}; diff --git a/xorg-server/xkeyboard-config/types/iso9995 b/xorg-server/xkeyboard-config/types/iso9995 new file mode 100644 index 000000000..80f3ee5cf --- /dev/null +++ b/xorg-server/xkeyboard-config/types/iso9995 @@ -0,0 +1,20 @@ +// $Xorg: iso9995,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +partial default xkb_types "default" { + + // Definition for a key type which + // can be used to implement ISO9995 + // style level three shift + virtual_modifiers LevelThree; + + type "THREE_LEVEL" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Level3"; + }; +}; + diff --git a/xorg-server/xkeyboard-config/types/level5 b/xorg-server/xkeyboard-config/types/level5 new file mode 100644 index 000000000..05dafecf6 --- /dev/null +++ b/xorg-server/xkeyboard-config/types/level5 @@ -0,0 +1,217 @@ +// $XKeyboardConfig$ +// $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $ + +partial default xkb_types "default" { + // Definition for a key type used for the czech keymap, for instance. + // Defines style a with four level shift. It is similar to three_level + // type used for iso9995 but it lets the shift key behave "normally". + + virtual_modifiers LevelThree,ScrollLock,LevelFive; + + type "EIGHT_LEVEL" { + modifiers = Shift+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level8; + map[Lock+Shift+LevelThree+LevelFive] = Level7; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +// type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { +// // Level5-Lock is implemented by using NumLock, because a real modifier +// // is required. +// +// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; +// +// map[None] = Level1; +// map[Shift] = Level2; +// map[LevelThree] = Level3; +// map[LevelThree+Shift] = Level4; +// +// map[LevelFive] = Level5; +// map[LevelFive+Shift] = Level6; +// map[LevelFive+LevelThree] = Level7; +// map[LevelFive+LevelThree+Shift] = Level8; +// +// map[NumLock] = Level5; +// map[NumLock+Shift] = Level6; +// map[NumLock+LevelThree] = Level7; +// map[NumLock+LevelThree+Shift] = Level8; +// +// map[NumLock+LevelFive] = Level1; +// map[NumLock+LevelFive+Shift] = Level2; +// map[NumLock+LevelFive+LevelThree] = Level3; +// map[NumLock+LevelFive+LevelThree+Shift] = Level4; +// +// // Lock has no effect +// map[Lock] = Level1; +// map[Lock+Shift] = Level2; +// map[Lock+LevelThree] = Level3; +// map[Lock+LevelThree+Shift] = Level4; +// +// map[Lock+LevelFive] = Level5; +// map[Lock+LevelFive+Shift] = Level6; +// map[Lock+LevelFive+LevelThree] = Level7; +// map[Lock+LevelFive+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock] = Level5; +// map[Lock+NumLock+Shift] = Level6; +// map[Lock+NumLock+LevelThree] = Level7; +// map[Lock+NumLock+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock+LevelFive] = Level1; +// map[Lock+NumLock+LevelFive+Shift] = Level2; +// map[Lock+NumLock+LevelFive+LevelThree] = Level3; +// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; +// +// preserve[LevelFive+Shift] = Shift; +// preserve[NumLock+Shift] = Shift; +// preserve[Lock+LevelFive+Shift] = Shift; +// preserve[Lock+NumLock+Shift] = Shift; +// +// level_name[Level1] = "Base"; +// level_name[Level2] = "Shift"; +// level_name[Level3] = "Alt Base"; +// level_name[Level4] = "Shift Alt"; +// level_name[Level5] = "X"; +// level_name[Level6] = "X Shift"; +// level_name[Level7] = "X Alt Base"; +// level_name[Level8] = "X Shift Alt"; +// }; +// +// type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { +// // Level5-Lock is implemented by using NumLock, because a real modifier +// // is required. +// +// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; +// +// map[None] = Level1; +// map[Shift] = Level2; +// map[LevelThree] = Level3; +// map[LevelThree+Shift] = Level4; +// +// map[LevelFive] = Level5; +// map[LevelFive+Shift] = Level6; +// map[LevelFive+LevelThree] = Level7; +// map[LevelFive+LevelThree+Shift] = Level8; +// +// map[NumLock] = Level5; +// map[NumLock+Shift] = Level6; +// map[NumLock+LevelThree] = Level7; +// map[NumLock+LevelThree+Shift] = Level8; +// +// map[NumLock+LevelFive] = Level1; +// map[NumLock+LevelFive+Shift] = Level2; +// map[NumLock+LevelFive+LevelThree] = Level3; +// map[NumLock+LevelFive+LevelThree+Shift] = Level4; +// +// // Lock interchanges Level1 and Level2 +// map[Lock] = Level2; +// map[Lock+Shift] = Level1; +// map[Lock+LevelThree] = Level3; +// map[Lock+LevelThree+Shift] = Level4; +// +// map[Lock+LevelFive] = Level5; +// map[Lock+LevelFive+Shift] = Level6; +// map[Lock+LevelFive+LevelThree] = Level7; +// map[Lock+LevelFive+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock] = Level5; +// map[Lock+NumLock+Shift] = Level6; +// map[Lock+NumLock+LevelThree] = Level7; +// map[Lock+NumLock+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock+LevelFive] = Level2; +// map[Lock+NumLock+LevelFive+Shift] = Level1; +// map[Lock+NumLock+LevelFive+LevelThree] = Level4; +// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; +// +// preserve[LevelFive+Shift] = Shift; +// preserve[NumLock+Shift] = Shift; +// +// level_name[Level1] = "Base"; +// level_name[Level2] = "Shift"; +// level_name[Level3] = "Alt Base"; +// level_name[Level4] = "Shift Alt"; +// level_name[Level5] = "X"; +// level_name[Level6] = "X Shift"; +// level_name[Level7] = "X Alt Base"; +// level_name[Level8] = "X Shift Alt"; +// }; + + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level7; + map[Lock+Shift+LevelThree+LevelFive] = Level8; + + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + preserve[Lock+LevelFive] = Lock; + preserve[Lock+Shift+LevelFive] = Lock; + preserve[Lock+LevelThree+LevelFive] = Lock; + preserve[Lock+Shift+LevelThree+LevelFive] = Lock; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +}; + diff --git a/xorg-server/xkeyboard-config/types/mousekeys b/xorg-server/xkeyboard-config/types/mousekeys new file mode 100644 index 000000000..85440ca7f --- /dev/null +++ b/xorg-server/xkeyboard-config/types/mousekeys @@ -0,0 +1,13 @@ +// $Xorg: mousekeys,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +// +partial default xkb_types "default" { + virtual_modifiers Alt; + + type "SHIFT+ALT" { + modifiers = Shift+Alt; + map[Shift+Alt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift+Alt"; + }; +}; + diff --git a/xorg-server/xkeyboard-config/types/nokia b/xorg-server/xkeyboard-config/types/nokia new file mode 100644 index 000000000..f77d8868a --- /dev/null +++ b/xorg-server/xkeyboard-config/types/nokia @@ -0,0 +1,14 @@ +partial default xkb_types "default" { + + // Some types that are used by Nokia devices and keyboard. + virtual_modifiers LevelThree; + + type "PC_FN_LEVEL2" { + modifiers = LevelThree; + map[None] = Level1; + map[LevelThree] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Fn"; + }; + +}; 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"; + }; +}; diff --git a/xorg-server/xkeyboard-config/types/pc b/xorg-server/xkeyboard-config/types/pc new file mode 100644 index 000000000..3c1986aa3 --- /dev/null +++ b/xorg-server/xkeyboard-config/types/pc @@ -0,0 +1,111 @@ +// $Xorg: pc,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +// + +partial default xkb_types "default" { + + // Some types that are necessary + // for a full implementation of + // a PC compatible keyboard. + virtual_modifiers Alt; + virtual_modifiers LevelThree; + virtual_modifiers LAlt; + virtual_modifiers RAlt; + virtual_modifiers RControl; + virtual_modifiers LControl; + + type "PC_CONTROL_LEVEL2" { + modifiers = Control; + map[None] = Level1; + map[Control] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Control"; + }; + + type "PC_LCONTROL_LEVEL2" { + modifiers = LControl; + map[None] = Level1; + map[LControl] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "LControl"; + }; + + type "PC_RCONTROL_LEVEL2" { + modifiers = RControl; + map[None] = Level1; + map[RControl] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "RControl"; + }; + + type "PC_ALT_LEVEL2" { + modifiers = Alt; + map[None] = Level1; + map[Alt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Alt"; + }; + + type "PC_LALT_LEVEL2" { + modifiers = LAlt; + map[None] = Level1; + map[LAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "LAlt"; + }; + + type "PC_RALT_LEVEL2" { + modifiers = RAlt; + map[None] = Level1; + map[RAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "RAlt"; + }; + + type "CTRL+ALT" { + modifiers = Control+Alt; + map[Control+Alt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Ctrl+Alt"; + }; + + // Local eight level + // Needed when you want part of your layout eight-level but can not use + // LevelFive as modifier, as this will take over right ctrl by default + // for all the layout and is too invasive for your average four-level user + // Needed to fix bug #9529 + // FIXME Should really use RControl but it's seems not to be enabled by + // default and touching this requires a lot of testing + type "LOCAL_EIGHT_LEVEL" { + modifiers = Shift+Lock+LevelThree+Control; + + map[None] = Level1; + map[Lock+Shift] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + + map[LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + + map[Control] = Level5; + map[Lock+Shift+Control] = Level5; + map[Shift+Control] = Level6; + map[Lock+Control] = Level6; + + map[LevelThree+Control] = Level7; + map[Lock+Shift+LevelThree+Control] = Level7; + map[Shift+LevelThree+Control] = Level8; + map[Lock+LevelThree+Control] = Level8; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Level3"; + level_name[Level4] = "Shift Level3"; + level_name[Level5] = "Ctrl"; + level_name[Level6] = "Shift Ctrl"; + level_name[Level7] = "Level3 Ctrl"; + level_name[Level8] = "Shift Level3 Ctrl"; + }; + +}; -- cgit v1.2.3