Fix issues detected by static analysis tool
[platform/upstream/libxkbcommon.git] / test / data / keymaps / modmap-none.xkb
1 xkb_keymap {
2 xkb_keycodes "test" {
3     minimum = 8;
4     maximum = 255;
5         <LVL3>  = 92;
6     <LFSH>  = 50;
7         <RTSH>  = 62;
8         <LALT>  = 64;
9         <RALT>  = 108;
10         <LWIN>  = 133;
11         <RWIN>  = 134;
12         <LCTL>  = 37;
13         <RCTL>  = 105;
14         <CAPS>  = 66;
15
16         <AD01> = 24;
17         <AD02> = 25;
18         <AD03> = 26;
19         <AD04> = 27;
20         <AD05> = 28;
21         <AD06> = 29;
22         <AD07> = 30;
23         <AD08> = 31;
24         <AD09> = 32;
25 };
26
27 xkb_types "complete" {
28     type "ONE_LEVEL" {
29         modifiers= none;
30         level_name[Level1]= "Any";
31     };
32         type "TWO_LEVEL" {
33                 modifiers= Shift;
34                 map[Shift]= 2;
35                 level_name[1]= "Base";
36                 level_name[2]= "Shift";
37         };
38 };
39 xkb_compatibility "complete" {
40     interpret.useModMapMods= AnyLevel;
41     interpret.repeat= False;
42     interpret.locking= False;
43
44     interpret Any+AnyOf(all) {
45         action= SetMods(modifiers=modMapMods,clearLocks);
46     };
47 };
48 xkb_symbols {
49     name[group1]="Test";
50
51     // Reset modmap with a key with empty modmap
52     key <LVL3> { [VoidSymbol] };
53     modmap None { <LVL3> };
54
55     // Reset modmap with one key
56     key <LFSH> { [Shift_L] };
57     modmap Shift { <LFSH> };
58     modmap none  { <LFSH> };
59
60     // Reset modmap with one symbol
61     key <RTSH> { [Shift_R] };
62     modmap Shift { Shift_R };
63     modmap NONE  { Shift_R };
64
65     // Cycle
66     key <LWIN> { [Super_L] };
67     modmap Mod4 { <LWIN> };
68     modmap None { <LWIN> };
69     modmap Mod4 { <LWIN> };
70
71     // Cycle
72     key <RWIN> { [Super_R] };
73     modmap Mod4 { <RWIN> };
74     modmap None { <RWIN> };
75     modmap Mod4 { Super_R };
76
77     // Mix keycode and keysym
78     key <LCTL> { [Control_L] };
79     modmap Control { Control_L };
80     modmap None    { <LCTL> };
81
82     // Mix keycode and keysym
83     key <RCTL> { [Control_R] };
84     modmap Control { <RCTL> };
85     modmap None    { Control_R };
86
87     // Re-set with different modifier
88     key <LALT> { [Alt_L] };
89     modmap Mod2 { <LALT> };
90     modmap None { <LALT> };
91     modmap Mod1 { <LALT> };
92
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
101
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
108
109     // Merge modes
110     key <AD01> { [q] };
111     modMap Mod1 { <AD01> };
112     augment modMap None { <AD01> };
113
114     key <AD02> { [w] };
115     modMap Mod2 { <AD02> };
116     override modMap None { <AD02> };
117
118     key <AD03> { [e] };
119     modMap Mod3 { <AD03> };
120     replace modMap None { <AD03> };
121
122     key <AD04> { [r] };
123     modMap Mod1 { <AD04> };
124     augment modMap None { r };
125
126     key <AD05> { [t] };
127     modMap Mod2 { <AD05> };
128     replace modMap None { t };
129
130     key <AD06> { [y] };
131     modMap Mod3 { <AD06> };
132     override modMap None { y };
133
134     key <AD07> { [u] };
135     modMap Mod1 { <AD07> };
136     replace key <AD07> { [U] }; // Won’t affect the modMap
137
138     key <AD08> { [i] };
139     modMap Mod2 { i, I };
140     replace key <AD08> { [I] };
141     modMap None { i }; // Does not resolve
142
143     key <AD09> { [1] };
144     modMap Mod3 { 1, 2 };
145     override key <AD09> { [NoSymbol, 2] };
146     modMap None { 1 };
147 };
148 };