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