added lv3:ralt_switch_multikey
[xorg/xkeyboard-config] / symbols / level3
1 // $XKeyboardConfig$
2
3 // these variants assign various XKB keycodes to ISO_Level3_Shift so that
4 // the third shift level can be reached
5 //
6 // $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $
7 //
8
9 // the default behavior is for the right Alt key (AltGr) to generate the
10 // third engraved symbol
11 default partial modifier_keys
12 xkb_symbols "ralt_switch" {
13   key <RALT> {
14     type[Group1]="ONE_LEVEL",
15     symbols[Group1] = [ ISO_Level3_Shift ]
16     };
17   modifier_map Mod5   { ISO_Level3_Shift };
18 };
19
20 partial modifier_keys
21 xkb_symbols "ralt_switch_multikey" {
22   key <RALT> {
23     type[Group1]="TWO_LEVEL",
24     symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
25     };
26 };
27
28 // special case or right Alt switch - for use with grp:alts_toggle
29 //
30 partial hidden modifier_keys
31 xkb_symbols "ralt_switch_for_alts_toggle" {
32   key <LALT> {
33     type[Group1]="PC_SYSRQ",
34     symbols[Group1] = [ Alt_L,  ISO_Prev_Group,  ISO_Prev_Group ]
35   };
36   key <RALT> {
37     type[Group1]="PC_ALT_LEVEL2",
38     symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
39     virtualMods= AltGr
40   };
41   modifier_map Mod5   { ISO_Level3_Shift };
42 };
43
44 // using the level(alt_switch) map, either Alt key temporarily chooses
45 // the third shift level.  (Mostly be used to imitate Mac OS functionality.)
46 partial modifier_keys
47 xkb_symbols "alt_switch" {
48   include "level3(lalt_switch)"
49   include "level3(ralt_switch)"
50 };
51
52 partial modifier_keys
53 xkb_symbols "lalt_switch" {
54   key <LALT> {
55     type[Group1]="ONE_LEVEL",
56     symbols[Group1] = [ ISO_Level3_Shift ]
57     };
58   modifier_map Mod5   { ISO_Level3_Shift };
59 };
60
61 // using the level(switch) map, the right Control key temporarily
62 // chooses the third shift level (until it is released).
63 partial modifier_keys
64 xkb_symbols "switch" {
65   key <RCTL> {
66     type[Group1]="ONE_LEVEL",
67     symbols[Group1] = [ ISO_Level3_Shift ]
68     };
69   modifier_map Mod5   { ISO_Level3_Shift };
70 };
71
72 // using the level(menu_switch) map, the Menu key temporarily
73 // chooses the third shift level (until it is released).
74 partial modifier_keys
75 xkb_symbols "menu_switch" {
76   key <MENU> {
77     type[Group1]="ONE_LEVEL",
78     symbols[Group1] = [ ISO_Level3_Shift ]
79     };
80   modifier_map Mod5   { ISO_Level3_Shift };
81 };
82
83 // using the level(win_switch) map, the either Windows' logo key
84 // temporarily chooses the third shift level.  If you use this map,
85 // you should define your keyboard as pc101 or pc102 instead of pc104
86 // or pc105.
87 partial modifier_keys
88 xkb_symbols "win_switch" {
89   include "level3(lwin_switch)"
90   include "level3(rwin_switch)"
91 };
92
93 // using the level(lwin_switch) map, the left Windows' logo key
94 // temporarily chooses the third shift level.  If you use this map,
95 // you should define your keyboard as pc101 or pc102 instead of pc104
96 // or pc105.
97 partial modifier_keys
98 xkb_symbols "lwin_switch" {
99   key <LWIN> {
100     type[Group1]="ONE_LEVEL",
101     symbols[Group1] = [ ISO_Level3_Shift ]
102     };
103   modifier_map Mod5   { ISO_Level3_Shift };
104 };
105
106 // using the level(rwin_switch) map, the right Windows' logo key
107 // temporarily chooses the third shift level.  If you use this map,
108 // you should define your keyboard as pc101 or pc102 instead of pc104
109 // or pc105.
110 partial modifier_keys
111 xkb_symbols "rwin_switch" {
112   key <RWIN> {
113     type[Group1]="ONE_LEVEL",
114     symbols[Group1] = [ ISO_Level3_Shift ]
115     };
116   modifier_map Mod5   { ISO_Level3_Shift };
117 };