steelseries revision 1.1 1 1.1 mrg //
2 1.1 mrg //Copyright 1996, 1998 The Open Group
3 1.1 mrg //
4 1.1 mrg //Permission to use, copy, modify, distribute, and sell this software and its
5 1.1 mrg //documentation for any purpose is hereby granted without fee, provided that
6 1.1 mrg //the above copyright notice appear in all copies and that both that
7 1.1 mrg //copyright notice and this permission notice appear in supporting
8 1.1 mrg //documentation.
9 1.1 mrg //
10 1.1 mrg //The above copyright notice and this permission notice shall be
11 1.1 mrg //included in all copies or substantial portions of the Software.
12 1.1 mrg //
13 1.1 mrg //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14 1.1 mrg //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15 1.1 mrg //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16 1.1 mrg //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
17 1.1 mrg //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18 1.1 mrg //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
19 1.1 mrg //OTHER DEALINGS IN THE SOFTWARE.
20 1.1 mrg //
21 1.1 mrg //Except as contained in this notice, the name of The Open Group shall
22 1.1 mrg //not be used in advertising or otherwise to promote the sale, use or
23 1.1 mrg //other dealings in this Software without prior written authorization
24 1.1 mrg //from The Open Group.
25 1.1 mrg //
26 1.1 mrg
27 1.1 mrg
28 1.1 mrg
29 1.1 mrg // modified from /usr/share/X11/xkb/geometry/pc(pc104)
30 1.1 mrg //
31 1.1 mrg // The Apex 300 (Apex RAW) has 21 additional keys and
32 1.1 mrg // <RWIN> is replaced by a hardware <FN> key. These
33 1.1 mrg // additions to the basic PC104 layout are shown in red.
34 1.1 mrg //
35 1.1 mrg // Currently the kernel doesn't initialize these keys; a userspace
36 1.1 mrg // tool is needed (apexctl: https://github.com/tuxmark5/ApexCtl).
37 1.1 mrg // With this tool or a proper driver, the extra keys (except FN)
38 1.1 mrg // can be assigned keycodes via udev-hwdb.
39 1.1 mrg //
40 1.1 mrg // FIXME: Keycodes shown here should be changed to match
41 1.1 mrg // kernel defaults when a driver is developed.
42 1.1 mrg //
43 1.1 mrg // The additional keys are in 4 groups:
44 1.1 mrg // 1) L1-L2 left of Escape (column) <I156>,<I157>
45 1.1 mrg // 2) M1-M12 above F1-F12 (row) <FK13>-<FK24>
46 1.1 mrg // 3) MX1-MX5 left of alpha keys (column) <I171>-<I175>
47 1.1 mrg // 4) LeftUp, RightUp with regular arrows <I160>,<I159>
48 1.1 mrg //
49 1.1 mrg // Known <FN> key functions:
50 1.1 mrg // <FN>+<F5> = kbd backlight step dimmer (NoSymbol)
51 1.1 mrg // <FN>+<F6> = kbd backlight step brighter (NoSymbol)
52 1.1 mrg // <FN>+<F7> = <I173> (AudioPrev)
53 1.1 mrg // <FN>+<F8> = <I172> (AudioPlay, AudioPause)
54 1.1 mrg // <FN>+<F9> = <I171> (AudioNext)
55 1.1 mrg // <FN>+<F10> = <MUTE> (AudioMute)
56 1.1 mrg // <FN>+<F10> = <VOL+> (VolumeUp)
57 1.1 mrg // <FN>+<F11> = <VOL-> (VolumeDown)
58 1.1 mrg //
59 1.1 mrg // And yes, the spacebar really is that ridiculous.
60 1.1 mrg //
61 1.1 mrg // 2017.April
62 1.1 mrg //
63 1.1 mrg default xkb_geometry "apex300" {
64 1.1 mrg
65 1.1 mrg description= "SteelSeries Apex 300 (Apex RAW)";
66 1.1 mrg width= 450;
67 1.1 mrg height= 150;
68 1.1 mrg
69 1.1 mrg shape.cornerRadius= 1;
70 1.1 mrg shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } };
71 1.1 mrg shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } };
72 1.1 mrg shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } };
73 1.1 mrg shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } };
74 1.1 mrg shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } };
75 1.1 mrg shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } };
76 1.1 mrg shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } };
77 1.1 mrg shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } };
78 1.1 mrg shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } };
79 1.1 mrg shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } };
80 1.1 mrg shape "SPCE" { { [113,37] }, { [2,1], [111,35] } };
81 1.1 mrg shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } };
82 1.1 mrg shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } };
83 1.1 mrg shape "MKEY" { { [ 18,8] }, { [2,1], [ 16,7] } };
84 1.1 mrg shape "ESCA" { { [ 18,28] }, { [2,1], [ 16,27] } };
85 1.1 mrg shape "LKEY" { { [ 18,14] }, { [2,1], [ 16,13] } };
86 1.1 mrg shape "LEDS" { cornerRadius= 0, { [ 54, 6 ] } };
87 1.1 mrg shape "LED" { cornerRadius= 0, { [ 4, 1 ] } };
88 1.1 mrg
89 1.1 mrg
90 1.1 mrg solid "LedPanel" {
91 1.1 mrg shape= "LEDS";
92 1.1 mrg top= 2;
93 1.1 mrg left= 315;
94 1.1 mrg color= "grey10";
95 1.1 mrg };
96 1.1 mrg
97 1.1 mrg
98 1.1 mrg indicator.onColor= "red";
99 1.1 mrg indicator.offColor= "red";
100 1.1 mrg indicator.top= 7;
101 1.1 mrg indicator.shape= "LED";
102 1.1 mrg indicator "Num Lock" { left= 321; };
103 1.1 mrg indicator "Caps Lock" { left= 340; };
104 1.1 mrg indicator "Scroll Lock" { left= 359; };
105 1.1 mrg text.top= 2;
106 1.1 mrg text.color= "black";
107 1.1 mrg text "NumLockLabel" { left= 322; text="N"; };
108 1.1 mrg text "CapsLockLabel" { left= 341; text="C"; };
109 1.1 mrg text "ScrollLockLabel" { left= 360; text="S"; };
110 1.1 mrg text "SteelSeriesLogo" { top= 10; left= 400; text="SteelSeries"; };
111 1.1 mrg text "FNLogoKeyLabel" { top= 130; left= 248; text="FN"; };
112 1.1 mrg
113 1.1 mrg key.shape= "NORM";
114 1.1 mrg key.gap= 1;
115 1.1 mrg key.color= "grey10";
116 1.1 mrg
117 1.1 mrg
118 1.1 mrg section "Lkeys" {
119 1.1 mrg key.shape= "LKEY";
120 1.1 mrg key.color= "red";
121 1.1 mrg row { top= 1; keys { <I156> }; };
122 1.1 mrg row { top= 15; keys { <I157> }; };
123 1.1 mrg }; // end of "Lkeys" section
124 1.1 mrg
125 1.1 mrg
126 1.1 mrg section "MXkeys" {
127 1.1 mrg key.shape= "NORM";
128 1.1 mrg key.color= "red";
129 1.1 mrg row { top= 35; keys { <I171> }; }; // 40 59 78 97 116
130 1.1 mrg row { top= 54; keys { <I172> }; }; // 35 54 73 92 111
131 1.1 mrg row { top= 73; keys { <I173> }; };
132 1.1 mrg row { top= 92; keys { <I174> }; };
133 1.1 mrg row { top=111; keys { <I175> }; };
134 1.1 mrg }; // end of "MXkeys" section
135 1.1 mrg
136 1.1 mrg
137 1.1 mrg section "Escape" {
138 1.1 mrg left= 23;
139 1.1 mrg key.shape= "ESCA";
140 1.1 mrg key.color= "grey30";
141 1.1 mrg row { top= 1; keys { <ESC> }; };
142 1.1 mrg }; // end of "Escape" section
143 1.1 mrg
144 1.1 mrg
145 1.1 mrg section "Mkeys" {
146 1.1 mrg left= 61;
147 1.1 mrg key.color= "red";
148 1.1 mrg key.shape= "MKEY";
149 1.1 mrg row { top= 1;
150 1.1 mrg keys { <FK13>, <FK14>, <FK15>, <FK16>,
151 1.1 mrg { <FK17>, 11 }, <FK18>, <FK19>, <FK20>,
152 1.1 mrg { <FK21>, 11 }, <FK22>, <FK23>, <FK24> }; };
153 1.1 mrg }; // end of "Mkeys" section
154 1.1 mrg
155 1.1 mrg
156 1.1 mrg section "Function" {
157 1.1 mrg left= 61;
158 1.1 mrg key.color= "grey30";
159 1.1 mrg row { top= 10;
160 1.1 mrg keys { <FK01>, <FK02>, <FK03>, <FK04>,
161 1.1 mrg { <FK05>, 11 }, <FK06>, <FK07>, <FK08>,
162 1.1 mrg { <FK09>, 11 }, <FK10>, <FK11>, <FK12>,
163 1.1 mrg { <PRSC>, 5 }, <SCLK>, <PAUS> }; };
164 1.1 mrg }; // end of "Function" section
165 1.1 mrg
166 1.1 mrg
167 1.1 mrg section "Alpha" {
168 1.1 mrg top= 35;
169 1.1 mrg left= 23;
170 1.1 mrg key.color= "grey10";
171 1.1 mrg row { keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>,
172 1.1 mrg <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
173 1.1 mrg <AE10>, <AE11>, <AE12>,
174 1.1 mrg { <BKSP>, "BKSP", color="grey30" } }; };
175 1.1 mrg row { top= 19;
176 1.1 mrg keys { { <TAB>, "TABK", color="grey30" },
177 1.1 mrg <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
178 1.1 mrg <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
179 1.1 mrg <AD11>, <AD12>, { <BKSL>, "BKSL" } }; };
180 1.1 mrg row { top= 38;
181 1.1 mrg keys { { <CAPS>, "CAPS", color="grey30" },
182 1.1 mrg <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
183 1.1 mrg <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
184 1.1 mrg <AC11>, { <RTRN>, "RTRN", color="grey30" } }; };
185 1.1 mrg row { top= 57;
186 1.1 mrg keys { { <LFSH>, "LFSH", color="grey30" },
187 1.1 mrg <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
188 1.1 mrg <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
189 1.1 mrg { <RTSH>, "RTSH", color="grey30" } }; };
190 1.1 mrg row { top= 76;
191 1.1 mrg key.shape= "SMOD";
192 1.1 mrg key.color= "grey30";
193 1.1 mrg keys { { <LCTL>, "MODK" }, <LWIN>, <LALT>, { <SPCE>, "SPCE" },
194 1.1 mrg <RALT>, { <I248>, color="red" }, <MENU>, <RCTL> }; };
195 1.1 mrg }; // end of "Alpha" section
196 1.1 mrg
197 1.1 mrg
198 1.1 mrg section "Editing" {
199 1.1 mrg top= 35;
200 1.1 mrg left= 313;
201 1.1 mrg key.color= "grey30";
202 1.1 mrg row { keys { <INS>, <HOME>, <PGUP> }; };
203 1.1 mrg row { top= 19; keys { <DELE>, <END>, <PGDN> }; };
204 1.1 mrg row { top= 57; keys { { <I160>, color="red" }, <UP>, { <I159>, color="red" } }; };
205 1.1 mrg row { top= 76; keys { <LEFT>, <DOWN>, <RGHT> }; };
206 1.1 mrg }; // end of "Editing" section
207 1.1 mrg
208 1.1 mrg
209 1.1 mrg section "Keypad" {
210 1.1 mrg top= 35;
211 1.1 mrg left= 373;
212 1.1 mrg key.color= "grey10";
213 1.1 mrg row { keys { <NMLK>, <KPDV>, <KPMU>, <KPSU> }; };
214 1.1 mrg row { top= 19; keys { <KP7>, <KP8>, <KP9>, { <KPAD>, "KPAD" } }; };
215 1.1 mrg row { top= 38; keys { <KP4>, <KP5>, <KP6> }; };
216 1.1 mrg row { top= 57; keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPAD" } }; };
217 1.1 mrg row { top= 76; keys { { <KP0>, "KP0" }, <KPDL> }; };
218 1.1 mrg }; // end of "Keypad" section
219 1.1 mrg
220 1.1 mrg alias <AC00> = <CAPS>;
221 1.1 mrg alias <AA00> = <LCTL>;
222 1.1 mrg
223 1.1 mrg }; // end of "apex300" geometry
224