diff options
author | kalyke by jove <kalyke2017+freedesktop@gmail.com> | 2017-04-05 10:41:35 -0400 |
---|---|---|
committer | Sergey Udaltsov <sergey.udaltsov@gmail.com> | 2017-05-17 12:45:36 +0100 |
commit | 50f15e647e60b41a33c28006489f99ea486ec3c3 (patch) | |
tree | 1c575462efa08978633be75f5deee9caffa19ca0 | |
parent | 88f72a50089f365e6f57190bd4897e25fcb1a425 (diff) |
steelseries apex300 geometry
-rw-r--r-- | geometry/Makefile.am | 2 | ||||
-rw-r--r-- | geometry/steelseries | 223 | ||||
-rw-r--r-- | rules/base.lists.base.part | 3 | ||||
-rw-r--r-- | rules/base.m_g.part | 1 | ||||
-rw-r--r-- | rules/base.xml.in | 7 |
5 files changed, 234 insertions, 2 deletions
diff --git a/geometry/Makefile.am b/geometry/Makefile.am index 4c5348b2..8a34176c 100644 --- a/geometry/Makefile.am +++ b/geometry/Makefile.am @@ -8,6 +8,6 @@ dell everex fujitsu \ hhk hp keytronic kinesis \ macintosh microsoft nec nokia \ northgate pc sanwa sony thinkpad \ -sun teck typematrix winbook README +sun teck steelseries typematrix winbook README EXTRA_DIST = $(geom_DATA) diff --git a/geometry/steelseries b/geometry/steelseries new file mode 100644 index 00000000..df3788c1 --- /dev/null +++ b/geometry/steelseries @@ -0,0 +1,223 @@ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// + + + +// modified from /usr/share/X11/xkb/geometry/pc(pc104) +// +// The Apex 300 (Apex RAW) has 21 additional keys and +// <RWIN> is replaced by a hardware <FN> key. These +// additions to the basic PC104 layout are shown in red. +// +// Currently the kernel doesn't initialize these keys; a userspace +// tool is needed (apexctl: https://github.com/tuxmark5/ApexCtl). +// With this tool or a proper driver, the extra keys (except FN) +// can be assigned keycodes via udev-hwdb. +// +// FIXME: Keycodes shown here should be changed to match +// kernel defaults when a driver is developed. +// +// The additional keys are in 4 groups: +// 1) L1-L2 left of Escape (column) <I156>,<I157> +// 2) M1-M12 above F1-F12 (row) <FK13>-<FK24> +// 3) MX1-MX5 left of alpha keys (column) <I171>-<I175> +// 4) LeftUp, RightUp with regular arrows <I160>,<I159> +// +// Known <FN> key functions: +// <FN>+<F5> = kbd backlight step dimmer (NoSymbol) +// <FN>+<F6> = kbd backlight step brighter (NoSymbol) +// <FN>+<F7> = <I173> (AudioPrev) +// <FN>+<F8> = <I172> (AudioPlay, AudioPause) +// <FN>+<F9> = <I171> (AudioNext) +// <FN>+<F10> = <MUTE> (AudioMute) +// <FN>+<F10> = <VOL+> (VolumeUp) +// <FN>+<F11> = <VOL-> (VolumeDown) +// +// And yes, the spacebar really is that ridiculous. +// +// 2017.April +// +default xkb_geometry "apex300" { + + description= "SteelSeries Apex 300 (Apex RAW)"; + width= 450; + height= 150; + + shape.cornerRadius= 1; + shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; + shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; + shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; + shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; + shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; + shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; + shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; + shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; + shape "SPCE" { { [113,37] }, { [2,1], [111,35] } }; + shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; + shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; + shape "MKEY" { { [ 18,8] }, { [2,1], [ 16,7] } }; + shape "ESCA" { { [ 18,28] }, { [2,1], [ 16,27] } }; + shape "LKEY" { { [ 18,14] }, { [2,1], [ 16,13] } }; + shape "LEDS" { cornerRadius= 0, { [ 54, 6 ] } }; + shape "LED" { cornerRadius= 0, { [ 4, 1 ] } }; + + + solid "LedPanel" { + shape= "LEDS"; + top= 2; + left= 315; + color= "grey10"; + }; + + + indicator.onColor= "red"; + indicator.offColor= "red"; + indicator.top= 7; + indicator.shape= "LED"; + indicator "Num Lock" { left= 321; }; + indicator "Caps Lock" { left= 340; }; + indicator "Scroll Lock" { left= 359; }; + text.top= 2; + text.color= "black"; + text "NumLockLabel" { left= 322; text="N"; }; + text "CapsLockLabel" { left= 341; text="C"; }; + text "ScrollLockLabel" { left= 360; text="S"; }; + text "SteelSeriesLogo" { top= 10; left= 400; text="SteelSeries"; }; + text "FNLogoKeyLabel" { top= 130; left= 248; text="FN"; }; + + key.shape= "NORM"; + key.gap= 1; + key.color= "grey10"; + + + section "Lkeys" { + key.shape= "LKEY"; + key.color= "red"; + row { top= 1; keys { <I156> }; }; + row { top= 15; keys { <I157> }; }; + }; // end of "Lkeys" section + + + section "MXkeys" { + key.shape= "NORM"; + key.color= "red"; + row { top= 35; keys { <I171> }; }; // 40 59 78 97 116 + row { top= 54; keys { <I172> }; }; // 35 54 73 92 111 + row { top= 73; keys { <I173> }; }; + row { top= 92; keys { <I174> }; }; + row { top=111; keys { <I175> }; }; + }; // end of "MXkeys" section + + + section "Escape" { + left= 23; + key.shape= "ESCA"; + key.color= "grey30"; + row { top= 1; keys { <ESC> }; }; + }; // end of "Escape" section + + + section "Mkeys" { + left= 61; + key.color= "red"; + key.shape= "MKEY"; + row { top= 1; + keys { <FK13>, <FK14>, <FK15>, <FK16>, + { <FK17>, 11 }, <FK18>, <FK19>, <FK20>, + { <FK21>, 11 }, <FK22>, <FK23>, <FK24> }; }; + }; // end of "Mkeys" section + + + section "Function" { + left= 61; + key.color= "grey30"; + row { top= 10; + keys { <FK01>, <FK02>, <FK03>, <FK04>, + { <FK05>, 11 }, <FK06>, <FK07>, <FK08>, + { <FK09>, 11 }, <FK10>, <FK11>, <FK12>, + { <PRSC>, 5 }, <SCLK>, <PAUS> }; }; + }; // end of "Function" section + + + section "Alpha" { + top= 35; + left= 23; + key.color= "grey10"; + row { keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>, + <AE05>, <AE06>, <AE07>, <AE08>, <AE09>, + <AE10>, <AE11>, <AE12>, + { <BKSP>, "BKSP", color="grey30" } }; }; + row { top= 19; + keys { { <TAB>, "TABK", color="grey30" }, + <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, + <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, + <AD11>, <AD12>, { <BKSL>, "BKSL" } }; }; + row { top= 38; + keys { { <CAPS>, "CAPS", color="grey30" }, + <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, + <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, + <AC11>, { <RTRN>, "RTRN", color="grey30" } }; }; + row { top= 57; + keys { { <LFSH>, "LFSH", color="grey30" }, + <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, + <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, + { <RTSH>, "RTSH", color="grey30" } }; }; + row { top= 76; + key.shape= "SMOD"; + key.color= "grey30"; + keys { { <LCTL>, "MODK" }, <LWIN>, <LALT>, { <SPCE>, "SPCE" }, + <RALT>, { <I248>, color="red" }, <MENU>, <RCTL> }; }; + }; // end of "Alpha" section + + + section "Editing" { + top= 35; + left= 313; + key.color= "grey30"; + row { keys { <INS>, <HOME>, <PGUP> }; }; + row { top= 19; keys { <DELE>, <END>, <PGDN> }; }; + row { top= 57; keys { { <I160>, color="red" }, <UP>, { <I159>, color="red" } }; }; + row { top= 76; keys { <LEFT>, <DOWN>, <RGHT> }; }; + }; // end of "Editing" section + + + section "Keypad" { + top= 35; + left= 373; + key.color= "grey10"; + row { keys { <NMLK>, <KPDV>, <KPMU>, <KPSU> }; }; + row { top= 19; keys { <KP7>, <KP8>, <KP9>, { <KPAD>, "KPAD" } }; }; + row { top= 38; keys { <KP4>, <KP5>, <KP6> }; }; + row { top= 57; keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPAD" } }; }; + row { top= 76; keys { { <KP0>, "KP0" }, <KPDL> }; }; + }; // end of "Keypad" section + + alias <AC00> = <CAPS>; + alias <AA00> = <LCTL>; + +}; // end of "apex300" geometry diff --git a/rules/base.lists.base.part b/rules/base.lists.base.part index ba72957b..00bab504 100644 --- a/rules/base.lists.base.part +++ b/rules/base.lists.base.part @@ -37,7 +37,8 @@ sven sven303 symplon \ toshiba_s3000 trust trustda \ unitekkb1925 yahoo \ - teck227 teck229 + teck227 teck229 \ + apex300 ! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \ cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \ diff --git a/rules/base.m_g.part b/rules/base.m_g.part index eb0512d5..74001051 100644 --- a/rules/base.m_g.part +++ b/rules/base.m_g.part @@ -15,6 +15,7 @@ thinkpad = thinkpad(intl) thinkpad60 = thinkpad(60) thinkpadz60 = thinkpad(60) + apex300 = steelseries(apex300) $tmgeometries = typematrix(%m) winbook = winbook(XP5) pc98 = nec(pc98) diff --git a/rules/base.xml.in b/rules/base.xml.in index 50378a88..ddd977cf 100644 --- a/rules/base.xml.in +++ b/rules/base.xml.in @@ -1309,6 +1309,13 @@ <vendor>Truly Ergonomic</vendor> </configItem> </model> + <model> + <configItem> + <name>apex300</name> + <_description>SteelSeries Apex 300 (Apex RAW)</_description> + <vendor>SteelSeries</vendor> + </configItem> + </model> </modelList> <layoutList> <layout> |