summaryrefslogtreecommitdiff
path: root/test/data/keymaps/modmap-none.xkb
blob: a99b20098c9c3bd953cf0694200409cbeb94ee22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
xkb_keymap {
xkb_keycodes "test" {
    minimum = 8;
    maximum = 255;
	<LVL3>  = 92;
    <LFSH>  = 50;
	<RTSH>  = 62;
	<LALT>  = 64;
	<RALT>  = 108;
	<LWIN>  = 133;
	<RWIN>  = 134;
	<LCTL>  = 37;
	<RCTL>  = 105;
	<CAPS>  = 66;

	<AD01> = 24;
	<AD02> = 25;
	<AD03> = 26;
	<AD04> = 27;
	<AD05> = 28;
	<AD06> = 29;
	<AD07> = 30;
	<AD08> = 31;
	<AD09> = 32;
};

xkb_types "complete" {
    type "ONE_LEVEL" {
        modifiers= none;
        level_name[Level1]= "Any";
    };
	type "TWO_LEVEL" {
		modifiers= Shift;
		map[Shift]= 2;
		level_name[1]= "Base";
		level_name[2]= "Shift";
	};
};
xkb_compatibility "complete" {
    interpret.useModMapMods= AnyLevel;
    interpret.repeat= False;
    interpret.locking= False;

    interpret Any+AnyOf(all) {
        action= SetMods(modifiers=modMapMods,clearLocks);
    };
};
xkb_symbols {
    name[group1]="Test";

    // Reset modmap with a key with empty modmap
    key <LVL3> { [VoidSymbol] };
    modmap None { <LVL3> };

    // Reset modmap with one key
    key <LFSH> { [Shift_L] };
    modmap Shift { <LFSH> };
    modmap none  { <LFSH> };

    // Reset modmap with one symbol
    key <RTSH> { [Shift_R] };
    modmap Shift { Shift_R };
    modmap NONE  { Shift_R };

    // Cycle
    key <LWIN> { [Super_L] };
    modmap Mod4 { <LWIN> };
    modmap None { <LWIN> };
    modmap Mod4 { <LWIN> };

    // Cycle
    key <RWIN> { [Super_R] };
    modmap Mod4 { <RWIN> };
    modmap None { <RWIN> };
    modmap Mod4 { Super_R };

    // Mix keycode and keysym
    key <LCTL> { [Control_L] };
    modmap Control { Control_L };
    modmap None    { <LCTL> };

    // Mix keycode and keysym
    key <RCTL> { [Control_R] };
    modmap Control { <RCTL> };
    modmap None    { Control_R };

    // Re-set with different modifier
    key <LALT> { [Alt_L] };
    modmap Mod2 { <LALT> };
    modmap None { <LALT> };
    modmap Mod1 { <LALT> };

    // Re-set with different modifier with both key and keysym
    key <RALT> { [ISO_Level3_Shift] };
    modmap Mod1 { <RALT> };           // Mod1
    modmap None { <RALT> };           // None
    modmap Mod2 { <RALT> };           // Mod2
    modmap Mod3 { ISO_Level3_Shift }; // Mod2 | Mod3
    modmap None { ISO_Level3_Shift }; // Mod2
    modmap Mod5 { ISO_Level3_Shift }; // Mod2 | Mod5

    // Re-set with different modifier with both key and keysym
    key <CAPS> { [Caps_Lock] };
    modmap Mod1 { Caps_Lock };  // Mod1
    modmap None { <CAPS> };     // Mod1
    modmap None { Caps_Lock };  // None
    modmap Lock { <CAPS> };     // Lock

    // Merge modes
    key <AD01> { [q] };
    modMap Mod1 { <AD01> };
    augment modMap None { <AD01> };

    key <AD02> { [w] };
    modMap Mod2 { <AD02> };
    override modMap None { <AD02> };

    key <AD03> { [e] };
    modMap Mod3 { <AD03> };
    replace modMap None { <AD03> };

    key <AD04> { [r] };
    modMap Mod1 { <AD04> };
    augment modMap None { r };

    key <AD05> { [t] };
    modMap Mod2 { <AD05> };
    replace modMap None { t };

    key <AD06> { [y] };
    modMap Mod3 { <AD06> };
    override modMap None { y };

    key <AD07> { [u] };
    modMap Mod1 { <AD07> };
    replace key <AD07> { [U] }; // Won’t affect the modMap

    key <AD08> { [i] };
    modMap Mod2 { i, I };
    replace key <AD08> { [I] };
    modMap None { i }; // Does not resolve

    key <AD09> { [1] };
    modMap Mod3 { 1, 2 };
    override key <AD09> { [NoSymbol, 2] };
    modMap None { 1 };
};
};