Ver Fonte

[Keyboard] Add Jabberwocky Keyboard (#12500)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Rossman360 <rmontsinger@gmail.com>
nopunin10did há 4 anos atrás
pai
commit
7e14f85dd5

+ 52 - 0
keyboards/nopunin10did/jabberwocky/config.h

@@ -0,0 +1,52 @@
+/* Copyright 2021 W. Alex Ronke, a.k.a. NoPunIn10Did (w.alex.ronke@gmail.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID           0x4E50  // "NP"
+#define PRODUCT_ID          0x4A57  // "JW"
+#define DEVICE_VER          0x0001
+#define MANUFACTURER        NoPunIn10Did
+#define PRODUCT             Jabberwocky
+
+/* key matrix size */
+#define MATRIX_ROWS         12
+#define MATRIX_COLS         10
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS     { E6, B4, B5, B7, D5, C7, F1, F0, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS     { F4, F5, F6, F7, D7, C6, D4, D0, D2, D3 }
+#define UNUSED_PINS
+
+/* Indicator LEDs */
+#define LED_NUM_LOCK_PIN    D1
+#define LED_CAPS_LOCK_PIN   B0
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION     COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE            5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+

+ 127 - 0
keyboards/nopunin10did/jabberwocky/info.json

@@ -0,0 +1,127 @@
+{
+    "keyboard_name": "Jabberwocky",
+    "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/railroad",
+    "maintainer": "NoPunIn10Did",
+    "manufacturer": "NoPunIn10Did",
+    "width": 23.5,
+    "height": 7.75,
+    "layouts": {
+        "LAYOUT_rh_any": {
+            "layout": [
+                {"x":0.75,  "y":0.25,   "label":"Esc"},
+                {"x":2.25,  "y":0.25,   "label":"F1"},
+                {"x":3.25,  "y":0.25,   "label":"F2"},
+                {"x":4,     "y":0.25,   "r":14, "rx":4, "ry":2.5, "label":"F3"},
+                {"x":5,     "y":0.125,  "r":14, "rx":4, "ry":2.5, "label":"F4"},
+                {"x":6,     "y":0.25,   "r":14, "rx":4, "ry":2.5, "label":"F5"},
+                {"x":7,     "y":0.375,  "r":14, "rx":4, "ry":2.5, "label":"F6"},
+                {"x":9.25,  "y":0.375,  "r":-14, "rx":13.25, "ry":2.5, "label":"F7"},
+                {"x":10.25, "y":0.25,   "r":-14, "rx":13.25, "ry":2.5, "label":"F8"},
+                {"x":11.25, "y":0.125,  "r":-14, "rx":13.25, "ry":2.5, "label":"F9"},
+                {"x":12.25, "y":0.25,   "r":-14, "rx":13.25, "ry":2.5, "label":"F10"},
+                {"x":13,    "y":0.25,   "label":"F11"},
+                {"x":14,    "y":0.25,   "label":"F12"},
+                {"x":15.125,"y":0.25,   "label":"Print"},
+                {"x":16.125,"y":0.25,   "label":"Scroll"},
+                {"x":17.25, "y":0.25,   "label":"Ins"},
+                {"x":18.25, "y":0.25,   "label":"Del"},
+                {"x":19.5,  "y":0.25,   "label":"Home"},
+                {"x":20.5,  "y":0.25,   "label":"End"},
+                {"x":21.5,  "y":0.25,   "label":"PgUp"},
+                {"x":22.5,  "y":0.25,   "label":"PgDn"},
+                {"x":2,     "y":1.5,    "label":"Grave"},
+                {"x":3,     "y":1.5,    "label":"1"},
+                {"x":4,     "y":1.5,    "r":14, "rx":4, "ry":2.5, "label":"2"},
+                {"x":5,     "y":1.375,  "r":14, "rx":4, "ry":2.5, "label":"3"},
+                {"x":6,     "y":1.5,    "r":14, "rx":4, "ry":2.5, "label":"4"},
+                {"x":7,     "y":1.625,  "r":14, "rx":4, "ry":2.5, "label":"5"},
+                {"x":9.25,  "y":1.625,  "r":-14, "rx":13.25, "ry":2.5, "label":"6"},
+                {"x":10.25, "y":1.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"7"},
+                {"x":11.25, "y":1.375,  "r":-14, "rx":13.25, "ry":2.5, "label":"8"},
+                {"x":12.25, "y":1.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"9"},
+                {"x":13.25, "y":1.5,    "label":"0"},
+                {"x":14.25, "y":1.5,    "label":"Dash"},
+                {"x":15.25, "y":1.5,    "label":"Equals"},
+                {"x":16.25, "y":1.5,    "label":"Backspace"},
+                {"x":17.25, "y":1.5,    "label":"Split BS"},
+                {"x":19.5,  "y":1.5,    "label":"NumLock"},
+                {"x":20.5,  "y":1.5,    "label":"P-Div"},
+                {"x":21.5,  "y":1.5,    "label":"P-Mult"},
+                {"x":22.5,  "y":1.5,    "label":"Pause"},
+                {"x":1.25,  "y":2.5,    "w":1.5, "label":"Tab"},
+                {"x":2.75,  "y":2.5,    "label":"Q"},
+                {"x":4,     "y":2.5,    "r":14, "rx":4, "ry":2.5, "label":"W"},
+                {"x":5,     "y":2.375,  "r":14, "rx":4, "ry":2.5, "label":"E"},
+                {"x":6,     "y":2.5,    "r":14, "rx":4, "ry":2.5, "label":"R"},
+                {"x":7,     "y":2.625,  "r":14, "rx":4, "ry":2.5, "label":"T"},
+                {"x":9.25,  "y":2.625,  "r":-14, "rx":13.25, "ry":2.5, "label":"Y"},
+                {"x":10.25, "y":2.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"U"},
+                {"x":11.25, "y":2.375,  "r":-14, "rx":13.25, "ry":2.5, "label":"I"},
+                {"x":12.25, "y":2.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"O"},
+                {"x":13.5,  "y":2.5,    "label":"P"},
+                {"x":14.5,  "y":2.5,    "label":"L bracket"},
+                {"x":15.5,  "y":2.5,    "label":"R bracket"},
+                {"x":16.5,  "y":2.5,    "w":1.5, "label":"ANSI Backslash"},
+                {"x":19.5,  "y":2.5,    "label":"P-7"},
+                {"x":20.5,  "y":2.5,    "label":"P-8"},
+                {"x":21.5,  "y":2.5,    "label":"P-9"},
+                {"x":22.5,  "y":2.5,    "label":"P-Minus"},
+                {"x":0.75,  "y":3.5,    "w":1.75, "label":"Caps Lock"},
+                {"x":2.5,   "y":3.5,    "label":"A"},
+                {"x":4,     "y":3.5,    "r":14, "rx":4, "ry":2.5, "label":"S"},
+                {"x":5,     "y":3.375,  "r":14, "rx":4, "ry":2.5, "label":"D"},
+                {"x":6,     "y":3.5,    "r":14, "rx":4, "ry":2.5, "label":"F"},
+                {"x":7,     "y":3.625,  "r":14, "rx":4, "ry":2.5, "label":"G"},
+                {"x":9.25,  "y":3.625,  "r":-14, "rx":13.25, "ry":2.5, "label":"H"},
+                {"x":10.25, "y":3.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"J"},
+                {"x":11.25, "y":3.375,  "r":-14, "rx":13.25, "ry":2.5, "label":"K"},
+                {"x":12.25, "y":3.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"L"},
+                {"x":13.75, "y":3.5,    "label":"Semicolon"},
+                {"x":14.75, "y":3.5,    "label":"Quote"},
+                {"x":15.75, "y":3.5,    "label":"Non-US Hash"},
+                {"x":16.75, "y":3.5,    "w":1.25, "label":"Enter"},
+                {"x":19.5,  "y":3.5,    "label":"P-4"},
+                {"x":20.5,  "y":3.5,    "label":"P-5"},
+                {"x":21.5,  "y":3.5,    "label":"P-6"},
+                {"x":22.5,  "y":3.5,    "label":"P-Plus"},
+                {"x":0,     "y":4.5,    "w":1.25, "label":"Left Shift"},
+                {"x":1.25,  "y":4.5,    "label":"Non-US Backslash"},
+                {"x":2.25,  "y":4.5,    "label":"Z"},
+                {"x":4,     "y":4.5,    "r":14, "rx":4, "ry":2.5, "label":"X"},
+                {"x":5,     "y":4.375,  "r":14, "rx":4, "ry":2.5, "label":"C"},
+                {"x":6,     "y":4.5,    "r":14, "rx":4, "ry":2.5, "label":"V"},
+                {"x":7,     "y":4.625,  "r":14, "rx":4, "ry":2.5, "label":"B"},
+                {"x":8,     "y":4.625,  "r":14, "rx":4, "ry":2.5, "label":"Layer"},
+                {"x":8.25,  "y":4.625,  "r":-14, "rx":13.25, "ry":2.5, "label":"Layer"},
+                {"x":9.25,  "y":4.625,  "r":-14, "rx":13.25, "ry":2.5, "label":"N"},
+                {"x":10.25, "y":4.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"M"},
+                {"x":11.25, "y":4.375,  "r":-14, "rx":13.25, "ry":2.5, "label":"Comma"},
+                {"x":12.25, "y":4.5,    "r":-14, "rx":13.25, "ry":2.5, "label":"Period"},
+                {"x":14,    "y":4.5,    "label":"Slash"},
+                {"x":15,    "y":4.5,    "label":"JIS Backslash"},
+                {"x":16,    "y":4.5,    "w":1.25, "label":"Right Shift"},
+                {"x":17.25, "y":4.5,    "label":"Up"},
+                {"x":19.5,  "y":4.5,    "label":"P-1"},
+                {"x":20.5,  "y":4.5,    "label":"P-2"},
+                {"x":21.5,  "y":4.5,    "label":"P-3"},
+                {"x":22.5,  "y":4.5,    "label":"P-Enter"},
+                {"x":0.5,   "y":5.5,    "w":1.25, "label":"Left Ctrl"},
+                {"x":1.75,  "y":5.5,    "w":1.25, "label":"Left GUI"},
+                {"x":4.5,   "y":5.5,    "w":1.25, "r":14, "rx":4, "ry":2.5, "label":"Left Alt"},
+                {"x":5.75,  "y":5.5,    "w":1.25, "r":14, "rx":4, "ry":2.5, "label":"Menu"},
+                {"x":7,     "y":5.625,  "w":2, "r":14, "rx":4, "ry":2.5, "label":"Space"},
+                {"x":8.25,  "y":5.625,  "w":2.75, "r":-14, "rx":13.25, "ry":2.5, "label":"Space"},
+                {"x":11,    "y":5.5,    "w":1.25, "r":-14, "rx":13.25, "ry":2.5, "label":"Right Alt"},
+                {"x":13.75, "y":5.5,    "w":1.25, "label":"Right GUI"},
+                {"x":15,    "y":5.5,    "w":1.25, "label":"Right Ctrl"},
+                {"x":16.25, "y":5.5,    "label":"Left"},
+                {"x":17.25, "y":5.5,    "label":"Down"},
+                {"x":18.25, "y":5.5,    "label":"Right"},
+                {"x":19.5,  "y":5.5,    "label":"P-0"},
+                {"x":20.5,  "y":5.5,    "label":"P-00"},
+                {"x":21.5,  "y":5.5,    "label":"P-Decimal"},
+                {"x":22.5,  "y":5.5,    "label":"P-Enter"}
+            ]
+        }
+    }
+}

+ 17 - 0
keyboards/nopunin10did/jabberwocky/jabberwocky.c

@@ -0,0 +1,17 @@
+/* Copyright 2021 W. Alex Ronke, a.k.a. NoPunIn10Did (w.alex.ronke@gmail.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "jabberwocky.h"

+ 65 - 0
keyboards/nopunin10did/jabberwocky/jabberwocky.h

@@ -0,0 +1,65 @@
+/* Copyright 2021 W. Alex Ronke, a.k.a. NoPunIn10Did (w.alex.ronke@gmail.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_rh_any( \
+	K0007, K0101, K0100, K0201, K0200, K0301, K0300,               K0400, K0401, K0500, K0501, K0600, K0601, K0700, K0701, K0000, K0001, K0800, K0801, K0900, K0901, \
+           K0004, K0102, K0103, K0202, K0203, K0302,               K0402, K0403, K0502, K0503, K0602, K0603, K0702, K0703, K0002,        K0802, K0803, K0902, K0903, \
+           K0006, K0104, K0105, K0204, K0205, K0304,               K0404, K0405, K0504, K0505, K0604, K0605, K0704, K0705,               K0804, K0805, K0904, K0905, \
+           K0107, K0106, K0207, K0206, K0307, K0306,               K0406, K0407, K0506, K0507, K0606, K0607, K0706, K0707,               K0806, K0807, K0906, K0907, \
+    K0008, K0009, K0108, K0109, K0208, K0209, K0308, K0309, K0410, K0408, K0409, K0508, K0509, K0608, K0609, K0708, K0709,               K0808, K0809, K0908, K0909, \
+           K0010, K0110,        K0210, K0310, K0311,               K0411,        K0510,        K0511, K0610, K0611, K0710, K0711,        K0810, K0811, K0910, K0911  \
+) \
+{ \
+	{ K0000, K0100, K0200, K0300, K0400, K0500, K0600, K0700, K0800, K0900 }, \
+	{ K0001, K0101, K0201, K0301, K0401, K0501, K0601, K0701, K0801, K0901 }, \
+	{ K0002, K0102, K0202, K0302, K0402, K0502, K0602, K0702, K0802, K0902 }, \
+	{ KC_NO, K0103, K0203, KC_NO, K0403, K0503, K0603, K0703, K0803, K0903 }, \
+	{ K0004, K0104, K0204, K0304, K0404, K0504, K0604, K0704, K0804, K0904 }, \
+	{ KC_NO, K0105, K0205, KC_NO, K0405, K0505, K0605, K0705, K0805, K0905 }, \
+	{ K0006, K0106, K0206, K0306, K0406, K0506, K0606, K0706, K0806, K0906 }, \
+	{ K0007, K0107, K0207, K0307, K0407, K0507, K0607, K0707, K0807, K0907 }, \
+	{ K0008, K0108, K0208, K0308, K0408, K0508, K0608, K0708, K0808, K0908 }, \
+	{ K0009, K0109, K0209, K0309, K0409, K0509, K0609, K0709, K0809, K0909 }, \
+	{ K0010, K0110, K0210, K0310, K0410, K0510, K0610, K0710, K0810, K0910 }, \
+	{ KC_NO, KC_NO, KC_NO, K0311, K0411, K0511, K0611, K0711, K0811, K0911 }  \
+}
+
+#define LAYOUT_lh_any( \
+	K0800, K0801, K0900, K0901, K0007, K0101, K0100, K0201, K0200, K0301, K0300,               K0400, K0401, K0500, K0501, K0600, K0601, K0700, K0701, K0000, K0001,  \
+    K0802, K0803, K0902, K0903,        K0004, K0102, K0103, K0202, K0203, K0302,               K0402, K0403, K0502, K0503, K0602, K0603, K0702, K0703, K0002,         \
+    K0804, K0805, K0904, K0905,        K0006, K0104, K0105, K0204, K0205, K0304,               K0404, K0405, K0504, K0505, K0604, K0605, K0704, K0705,                \
+    K0806, K0807, K0906, K0907,        K0107, K0106, K0207, K0206, K0307, K0306,               K0406, K0407, K0506, K0507, K0606, K0607, K0706, K0707,                \
+    K0808, K0809, K0908, K0909, K0008, K0009, K0108, K0109, K0208, K0209, K0308, K0309, K0410, K0408, K0409, K0508, K0509, K0608, K0609, K0708, K0709,                \
+    K0810, K0811, K0910, K0911,        K0010, K0110,        K0210, K0310, K0311,               K0411,        K0510,        K0511, K0610, K0611, K0710, K0711          \
+) \
+{ \
+	{ K0000, K0100, K0200, K0300, K0400, K0500, K0600, K0700, K0800, K0900 }, \
+	{ K0001, K0101, K0201, K0301, K0401, K0501, K0601, K0701, K0801, K0901 }, \
+	{ K0002, K0102, K0202, K0302, K0402, K0502, K0602, K0702, K0802, K0902 }, \
+	{ KC_NO, K0103, K0203, KC_NO, K0403, K0503, K0603, K0703, K0803, K0903 }, \
+	{ K0004, K0104, K0204, K0304, K0404, K0504, K0604, K0704, K0804, K0904 }, \
+	{ KC_NO, K0105, K0205, KC_NO, K0405, K0505, K0605, K0705, K0805, K0905 }, \
+	{ K0006, K0106, K0206, K0306, K0406, K0506, K0606, K0706, K0806, K0906 }, \
+	{ K0007, K0107, K0207, K0307, K0407, K0507, K0607, K0707, K0807, K0907 }, \
+	{ K0008, K0108, K0208, K0308, K0408, K0508, K0608, K0708, K0808, K0908 }, \
+	{ K0009, K0109, K0209, K0309, K0409, K0509, K0609, K0709, K0809, K0909 }, \
+	{ K0010, K0110, K0210, K0310, K0410, K0510, K0610, K0710, K0810, K0910 }, \
+	{ KC_NO, KC_NO, KC_NO, K0311, K0411, K0511, K0611, K0711, K0811, K0911 }  \
+}

+ 38 - 0
keyboards/nopunin10did/jabberwocky/keymaps/default/keymap.c

@@ -0,0 +1,38 @@
+/* Copyright 2021 W. Alex Ronke, a.k.a. NoPunIn10Did (w.alex.ronke@gmail.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_rh_any(
+
+KC_ESC ,KC_F1  ,KC_F2  ,KC_F3  ,KC_F4  ,KC_F5  ,KC_F6  ,                KC_F7  ,KC_F8  ,KC_F9  ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR,KC_SLCK,KC_INS ,KC_DEL ,KC_HOME,KC_END ,KC_PGUP,KC_PGDN,    
+        KC_GRV ,KC_1   ,KC_2   ,KC_3   ,KC_4   ,KC_5   ,                KC_6   ,KC_7   ,KC_8   ,KC_9   ,KC_0   ,KC_MINS,KC_EQL ,KC_BSPC,KC_BSPC,        KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS,    
+        KC_TAB ,KC_Q   ,KC_W   ,KC_E   ,KC_R   ,KC_T   ,                KC_Y   ,KC_U   ,KC_I   ,KC_O   ,KC_P   ,KC_LBRC,KC_RBRC,KC_BSLS,                KC_P7  ,KC_P8  ,KC_P9  ,KC_PPLS,     
+        KC_CAPS,KC_A   ,KC_S   ,KC_D   ,KC_F   ,KC_G   ,                KC_H   ,KC_J   ,KC_K   ,KC_L   ,KC_SCLN,KC_QUOT,KC_ENT ,KC_ENT ,                KC_P4  ,KC_P5  ,KC_P6  ,KC_PPLS,     
+KC_LSFT,KC_LSFT,KC_Z   ,KC_X   ,KC_C   ,KC_V   ,KC_B   ,MO(1),  MO(1),  KC_N   ,KC_M   ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,KC_RSFT,KC_UP  ,                KC_P1  ,KC_P2  ,KC_P3  ,KC_PENT,     
+        KC_LCTL,KC_LGUI,        KC_LALT,KC_MENU,KC_SPC ,                KC_SPC ,        KC_ALGR,        KC_RGUI,KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT,        KC_P0  ,KC_P0  ,KC_PDOT,KC_PENT),   
+    
+    
+[1] = LAYOUT_rh_any(
+RESET  ,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,    
+        XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,        XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,    
+        XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,RESET  ,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,     
+        XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,     
+_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_PAUS,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______,_______,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,     
+        _______,_______,        _______,XXXXXXX,XXXXXXX,                XXXXXXX,        _______,        _______,_______,XXXXXXX,XXXXXXX,XXXXXXX,        XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX)
+};

+ 48 - 0
keyboards/nopunin10did/jabberwocky/keymaps/nopunin10did/keymap.c

@@ -0,0 +1,48 @@
+/* Copyright 2021 W. Alex Ronke, a.k.a. NoPunIn10Did (w.alex.ronke@gmail.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+#define LSA_DEL LSA_T(KC_DEL)
+#define RALTHOM RALT_T(KC_HOME)
+#define RWINEND RGUI_T(KC_END)
+#define RCTLEND RCTL_T(KC_END)
+#define LSHNUBS LSFT_T(KC_NUBS)
+#define RSHF_RO RSFT_T(KC_RO)
+#define FN_CALC LT(1,KC_CALC)
+#define FN_MENU LT(1,KC_MENU)
+#define FN_PENT LT(1,KC_PENT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_rh_any(
+
+KC_ESC ,KC_F1  ,KC_F2  ,KC_F3  ,KC_F4  ,KC_F5  ,KC_F6  ,                KC_F7  ,KC_F8  ,KC_F9  ,KC_F10 ,KC_F11 ,KC_F12 ,KC_HOME,KC_END ,KC_PGUP,KC_PGDN,KC_DEL ,KC_INS ,KC_PSCR,KC_BSPC,    
+        KC_GRV ,KC_1   ,KC_2   ,KC_3   ,KC_4   ,KC_5   ,                KC_6   ,KC_7   ,KC_8   ,KC_9   ,KC_0   ,KC_MINS,KC_EQL ,KC_BSPC,KC_BSPC,        KC_EQL ,KC_PSLS,KC_PAST,KC_PMNS,    
+        KC_TAB ,KC_Q   ,KC_W   ,KC_E   ,KC_R   ,KC_T   ,                KC_Y   ,KC_U   ,KC_I   ,KC_O   ,KC_P   ,KC_LBRC,KC_RBRC,KC_BSLS,                KC_P7  ,KC_P8  ,KC_P9  ,KC_PPLS,     
+        KC_LCTL,KC_A   ,KC_S   ,KC_D   ,KC_F   ,KC_G   ,                KC_H   ,KC_J   ,KC_K   ,KC_L   ,KC_SCLN,KC_QUOT,KC_ENT ,KC_ENT ,                KC_P4  ,KC_P5  ,KC_P6  ,KC_PPLS,     
+KC_LSFT,KC_LSFT,KC_Z   ,KC_X   ,KC_C   ,KC_V   ,KC_B   ,LSA_DEL,FN_CALC,KC_N   ,KC_M   ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,KC_RSFT,KC_UP  ,                KC_P1  ,KC_P2  ,KC_P3  ,FN_PENT,     
+        KC_LCTL,KC_LGUI,        KC_LALT,FN_MENU,KC_SPC ,                RALTHOM,        RALTHOM,        RWINEND,RCTLEND,KC_LEFT,KC_DOWN,KC_RGHT,        KC_P0  ,KC_P0  ,KC_PDOT,FN_PENT),   
+    
+    
+[1] = LAYOUT_rh_any(
+RESET  ,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_F13 ,KC_F14 ,KC_F15 ,KC_F16 ,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,    
+        XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,        KC_NLCK,XXXXXXX,XXXXXXX,XXXXXXX,    
+        XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,RESET  ,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_JYEN,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,     
+        KC_CAPS,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,KC_SLCK,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,     
+LSHNUBS,LSHNUBS,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_BRK ,XXXXXXX,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,RSHF_RO,RSHF_RO,XXXXXXX,                XXXXXXX,XXXXXXX,XXXXXXX,_______,     
+        _______,_______,        _______,_______,XXXXXXX,                _______,        _______,        _______,_______,XXXXXXX,XXXXXXX,XXXXXXX,        XXXXXXX,XXXXXXX,KC_PCMM,_______)
+};

+ 27 - 0
keyboards/nopunin10did/jabberwocky/readme.md

@@ -0,0 +1,27 @@
+# Jabberwocky
+
+![Jabberwocky](https://diplomacyvariants.files.wordpress.com/2021/03/dexterous_jabberwocky.jpg)
+
+A full-size, columnar-staggered, Alice-style keyboard. The Jabberwocky comes in two varieties currently: 
+* Dexterous (with numpad on the right side, pictured above)
+* Sinister (with numpad on the left side)
+
+Both the Dexterous and Sinister use the same firmware.  The numpad and the four keys above it are simply transposed from the right to the left side of the board.
+
+For more information, join the [NoPunIn10Key Discord](https://discord.gg/sku2Y6w).
+
+* Keyboard Maintainer: [Alex Ronke](diplomacyvariants.wordpress.com), also known as NoPunIn10Did. 
+* Hardware Supported: Dexterous Jabberwocky and Sinister Jabberwocky (2021 March)
+* Hardware Availability: Currently by request only
+
+To jump the bootloader, either:
+# If loaded with the default layout, use Function-Escape or Function-R *(the function buttons are the 1u keys next to B and N)* **OR**
+# Use the physical reset switch near the USB port *(if provided for your version of the board)* **OR**
+# Use the physical reset switch on the Elite C **OR**
+# Briefly jump the Reset and Ground pins of the Elite C
+
+Make example for this keyboard (after setting up your build environment):
+
+    make nopunin10did/jabberwocky:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

+ 22 - 0
keyboards/nopunin10did/jabberwocky/rules.mk

@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = full     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes           # USB Nkey Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output