27 xkb_types "complete" {
30 level_name[Level1]= "Any";
35 level_name[1]= "Base";
36 level_name[2]= "Shift";
39 xkb_compatibility "complete" {
40 interpret.useModMapMods= AnyLevel;
41 interpret.repeat= False;
42 interpret.locking= False;
44 interpret Any+AnyOf(all) {
45 action= SetMods(modifiers=modMapMods,clearLocks);
51 // Reset modmap with a key with empty modmap
52 key <LVL3> { [VoidSymbol] };
53 modmap None { <LVL3> };
55 // Reset modmap with one key
56 key <LFSH> { [Shift_L] };
57 modmap Shift { <LFSH> };
58 modmap none { <LFSH> };
60 // Reset modmap with one symbol
61 key <RTSH> { [Shift_R] };
62 modmap Shift { Shift_R };
63 modmap NONE { Shift_R };
66 key <LWIN> { [Super_L] };
67 modmap Mod4 { <LWIN> };
68 modmap None { <LWIN> };
69 modmap Mod4 { <LWIN> };
72 key <RWIN> { [Super_R] };
73 modmap Mod4 { <RWIN> };
74 modmap None { <RWIN> };
75 modmap Mod4 { Super_R };
77 // Mix keycode and keysym
78 key <LCTL> { [Control_L] };
79 modmap Control { Control_L };
80 modmap None { <LCTL> };
82 // Mix keycode and keysym
83 key <RCTL> { [Control_R] };
84 modmap Control { <RCTL> };
85 modmap None { Control_R };
87 // Re-set with different modifier
88 key <LALT> { [Alt_L] };
89 modmap Mod2 { <LALT> };
90 modmap None { <LALT> };
91 modmap Mod1 { <LALT> };
93 // Re-set with different modifier with both key and keysym
94 key <RALT> { [ISO_Level3_Shift] };
95 modmap Mod1 { <RALT> }; // Mod1
96 modmap None { <RALT> }; // None
97 modmap Mod2 { <RALT> }; // Mod2
98 modmap Mod3 { ISO_Level3_Shift }; // Mod2 | Mod3
99 modmap None { ISO_Level3_Shift }; // Mod2
100 modmap Mod5 { ISO_Level3_Shift }; // Mod2 | Mod5
102 // Re-set with different modifier with both key and keysym
103 key <CAPS> { [Caps_Lock] };
104 modmap Mod1 { Caps_Lock }; // Mod1
105 modmap None { <CAPS> }; // Mod1
106 modmap None { Caps_Lock }; // None
107 modmap Lock { <CAPS> }; // Lock
111 modMap Mod1 { <AD01> };
112 augment modMap None { <AD01> };
115 modMap Mod2 { <AD02> };
116 override modMap None { <AD02> };
119 modMap Mod3 { <AD03> };
120 replace modMap None { <AD03> };
123 modMap Mod1 { <AD04> };
124 augment modMap None { r };
127 modMap Mod2 { <AD05> };
128 replace modMap None { t };
131 modMap Mod3 { <AD06> };
132 override modMap None { y };
135 modMap Mod1 { <AD07> };
136 replace key <AD07> { [U] }; // Won’t affect the modMap
139 modMap Mod2 { i, I };
140 replace key <AD08> { [I] };
141 modMap None { i }; // Does not resolve
144 modMap Mod3 { 1, 2 };
145 override key <AD09> { [NoSymbol, 2] };