level5 revision c067fea9
15a35480eSmrg// $XKeyboardConfig$
2154daed1Smrg
3154daed1Smrg// these variants assign various XKB keycodes to ISO_Level5_Shift so that
4154daed1Smrg// the third shift level can be reached
5154daed1Smrg//
6154daed1Smrg// $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $
7154daed1Smrg//
8154daed1Smrg
9154daed1Smrg// using the level(switch) map, the right Control key temporarily
10154daed1Smrg// chooses the fifth shift level (until it is released).
11154daed1Smrgpartial modifier_keys
12154daed1Smrgxkb_symbols "rctrl_switch" {
13154daed1Smrg  key <RCTL> {
14154daed1Smrg    type[Group1]="ONE_LEVEL",
155a35480eSmrg    symbols[Group1] = [ ISO_Level5_Shift ]
16154daed1Smrg    };
175a35480eSmrg  modifier_map Mod3   { ISO_Level5_Shift };
18154daed1Smrg};
19c067fea9Sghen
20c067fea9Sghenpartial modifier_keys
21c067fea9Sghenxkb_symbols "lsgt_switch" {
22c067fea9Sghen  key <LSGT> {
23c067fea9Sghen    type[Group1]="ONE_LEVEL",
24c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift ]
25c067fea9Sghen    };
26c067fea9Sghen  modifier_map Mod3   { ISO_Level5_Shift };
27c067fea9Sghen};
28c067fea9Sghen
29c067fea9Sghenpartial modifier_keys
30c067fea9Sghenxkb_symbols "ralt_switch" {
31c067fea9Sghen  key <RALT> {
32c067fea9Sghen    type[Group1]="ONE_LEVEL",
33c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift ]
34c067fea9Sghen    };
35c067fea9Sghen  modifier_map Mod3   { ISO_Level5_Shift };
36c067fea9Sghen};
37c067fea9Sghen
38c067fea9Sghen
39c067fea9Sghen// The following modifier keys are used to switch to the third shift and to set a
40c067fea9Sghen// corresponding lock, implemented as NumLock.
41c067fea9Sghen
42c067fea9Sghenpartial modifier_keys
43c067fea9Sghenxkb_symbols "lock" {
44c067fea9Sghen  // This adds the definitions needed to create a level5-lock behaviour, using
45c067fea9Sghen  // the real modifier NumLock as a lock indicator.
46c067fea9Sghen  // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK
47c067fea9Sghen  // See also: compat/level5(level5_lock)
48c067fea9Sghen  key.type[Group1] = "ONE_LEVEL";
49c067fea9Sghen
50c067fea9Sghen  replace key <MDSW> {
51c067fea9Sghen    vmods = LevelFive,
52c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift ],
53c067fea9Sghen    actions[Group1] = [ SetMods(modifiers=LevelFive) ]
54c067fea9Sghen  };
55c067fea9Sghen  modifier_map Mod3 { <MDSW> };
56c067fea9Sghen
57c067fea9Sghen  replace key <HYPR> {
58c067fea9Sghen    vmods = NumLock,
59c067fea9Sghen    symbols[Group1] = [ NoSymbol ],
60c067fea9Sghen    actions[Group1] = [ SetMods(modifiers=NumLock) ]
61c067fea9Sghen  };
62c067fea9Sghen  modifier_map Mod2 { <HYPR> };
63c067fea9Sghen};
64c067fea9Sghen
65c067fea9Sghenpartial modifier_keys
66c067fea9Sghenxkb_symbols "lsgt_switch_lock" {
67c067fea9Sghen
68c067fea9Sghen  include "level5(lock)"
69c067fea9Sghen
70c067fea9Sghen  key <LSGT> {
71c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
72c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
73c067fea9Sghen  };
74c067fea9Sghen};
75c067fea9Sghen
76c067fea9Sghenpartial modifier_keys
77c067fea9Sghenxkb_symbols "lwin_switch_lock" {
78c067fea9Sghen
79c067fea9Sghen  include "level5(lock)"
80c067fea9Sghen
81c067fea9Sghen  key <LWIN> {
82c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
83c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
84c067fea9Sghen  };
85c067fea9Sghen};
86c067fea9Sghen
87c067fea9Sghenpartial modifier_keys
88c067fea9Sghenxkb_symbols "ralt_switch_lock" {
89c067fea9Sghen
90c067fea9Sghen  include "level5(lock)"
91c067fea9Sghen
92c067fea9Sghen  key <RALT> {
93c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
94c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
95c067fea9Sghen  };
96c067fea9Sghen};
97c067fea9Sghen
98c067fea9Sghenpartial modifier_keys
99c067fea9Sghenxkb_symbols "rwin_switch_lock" {
100c067fea9Sghen
101c067fea9Sghen  include "level5(lock)"
102c067fea9Sghen
103c067fea9Sghen  key <RWIN> {
104c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
105c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
106c067fea9Sghen  };
107c067fea9Sghen};
108c067fea9Sghen
109c067fea9Sghenpartial modifier_keys
110c067fea9Sghenxkb_symbols "lsgt_switch_lock_cancel" {
111c067fea9Sghen
112c067fea9Sghen  include "level5(lock)"
113c067fea9Sghen
114c067fea9Sghen  key <LSGT> {
115c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
116c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
117c067fea9Sghen  };
118c067fea9Sghen};
119c067fea9Sghen
120c067fea9Sghenpartial modifier_keys
121c067fea9Sghenxkb_symbols "lwin_switch_lock_cancel" {
122c067fea9Sghen
123c067fea9Sghen  include "level5(lock)"
124c067fea9Sghen
125c067fea9Sghen  key <LWIN> {
126c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
127c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
128c067fea9Sghen  };
129c067fea9Sghen};
130c067fea9Sghen
131c067fea9Sghenpartial modifier_keys
132c067fea9Sghenxkb_symbols "ralt_switch_lock_cancel" {
133c067fea9Sghen
134c067fea9Sghen  include "level5(lock)"
135c067fea9Sghen
136c067fea9Sghen  key <RALT> {
137c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
138c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
139c067fea9Sghen  };
140c067fea9Sghen};
141c067fea9Sghen
142c067fea9Sghenpartial modifier_keys
143c067fea9Sghenxkb_symbols "rwin_switch_lock_cancel" {
144c067fea9Sghen
145c067fea9Sghen  include "level5(lock)"
146c067fea9Sghen
147c067fea9Sghen  key <RWIN> {
148c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
149c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
150c067fea9Sghen  };
151c067fea9Sghen};
152