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