summaryrefslogtreecommitdiff
path: root/keyboards/maple_computing
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/maple_computing')
-rw-r--r--keyboards/maple_computing/6ball/6ball.c1
-rw-r--r--keyboards/maple_computing/6ball/6ball.h10
-rw-r--r--keyboards/maple_computing/6ball/config.h47
-rw-r--r--keyboards/maple_computing/6ball/info.json18
-rw-r--r--keyboards/maple_computing/6ball/keymaps/default/keymap.c22
-rw-r--r--keyboards/maple_computing/6ball/readme.md14
-rw-r--r--keyboards/maple_computing/6ball/rules.mk19
-rwxr-xr-xkeyboards/maple_computing/c39/c39.c1
-rwxr-xr-xkeyboards/maple_computing/c39/c39.h17
-rwxr-xr-xkeyboards/maple_computing/c39/config.h76
-rwxr-xr-xkeyboards/maple_computing/c39/info.json10
-rwxr-xr-xkeyboards/maple_computing/c39/keymaps/default/keymap.c45
-rwxr-xr-xkeyboards/maple_computing/c39/keymaps/default/readme.md1
-rw-r--r--keyboards/maple_computing/c39/keymaps/drashna/config.h34
-rwxr-xr-xkeyboards/maple_computing/c39/keymaps/drashna/keymap.c83
-rwxr-xr-xkeyboards/maple_computing/c39/keymaps/drashna/readme.md3
-rw-r--r--keyboards/maple_computing/c39/keymaps/drashna/rules.mk19
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h34
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c131
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md10
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk20
-rwxr-xr-xkeyboards/maple_computing/c39/readme.md16
-rwxr-xr-xkeyboards/maple_computing/c39/rules.mk18
-rw-r--r--keyboards/maple_computing/christmas_tree/.noci0
-rw-r--r--keyboards/maple_computing/christmas_tree/V2017/V2017.c1
-rw-r--r--keyboards/maple_computing/christmas_tree/V2017/V2017.h3
-rw-r--r--keyboards/maple_computing/christmas_tree/V2017/config.h5
-rw-r--r--keyboards/maple_computing/christmas_tree/V2017/rules.mk3
-rw-r--r--keyboards/maple_computing/christmas_tree/christmas_tree.c1
-rw-r--r--keyboards/maple_computing/christmas_tree/christmas_tree.h14
-rw-r--r--keyboards/maple_computing/christmas_tree/config.h54
-rw-r--r--keyboards/maple_computing/christmas_tree/info.json10
-rw-r--r--keyboards/maple_computing/christmas_tree/keymaps/default/keymap.c82
-rw-r--r--keyboards/maple_computing/christmas_tree/keymaps/default/readme.md2
-rw-r--r--keyboards/maple_computing/christmas_tree/readme.md14
-rw-r--r--keyboards/maple_computing/christmas_tree/rules.mk20
-rw-r--r--keyboards/maple_computing/ivy/.noci0
-rw-r--r--keyboards/maple_computing/ivy/config.h66
-rw-r--r--keyboards/maple_computing/ivy/ivy.c1
-rw-r--r--keyboards/maple_computing/ivy/ivy.h7
-rw-r--r--keyboards/maple_computing/ivy/keymaps/default/keymap.c41
-rw-r--r--keyboards/maple_computing/ivy/readme.md15
-rw-r--r--keyboards/maple_computing/ivy/rev1/config.h27
-rw-r--r--keyboards/maple_computing/ivy/rev1/info.json14
-rw-r--r--keyboards/maple_computing/ivy/rev1/rev1.c1
-rw-r--r--keyboards/maple_computing/ivy/rev1/rev1.h14
-rw-r--r--keyboards/maple_computing/ivy/rev1/rules.mk0
-rw-r--r--keyboards/maple_computing/ivy/rules.mk20
-rw-r--r--keyboards/maple_computing/jnao/config.h52
-rw-r--r--keyboards/maple_computing/jnao/info.json123
-rw-r--r--keyboards/maple_computing/jnao/jnao.c1
-rw-r--r--keyboards/maple_computing/jnao/jnao.h32
-rw-r--r--keyboards/maple_computing/jnao/keymaps/default/keymap.c155
-rw-r--r--keyboards/maple_computing/jnao/keymaps/default_4x12/keymap.c150
-rw-r--r--keyboards/maple_computing/jnao/keymaps/via/keymap.c145
-rw-r--r--keyboards/maple_computing/jnao/keymaps/via/rules.mk1
-rw-r--r--keyboards/maple_computing/jnao/readme.md14
-rw-r--r--keyboards/maple_computing/jnao/rules.mk25
-rw-r--r--keyboards/maple_computing/launchpad/.noci0
-rw-r--r--keyboards/maple_computing/launchpad/config.h66
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h32
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c213
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md31
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk13
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default/keymap.c55
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h9
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c76
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md41
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk1
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/drashna/config.h31
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c107
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk7
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/via/keymap.c94
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/via/rules.mk3
-rw-r--r--keyboards/maple_computing/launchpad/launchpad.c1
-rw-r--r--keyboards/maple_computing/launchpad/launchpad.h7
-rw-r--r--keyboards/maple_computing/launchpad/readme.md32
-rw-r--r--keyboards/maple_computing/launchpad/rev1/config.h33
-rw-r--r--keyboards/maple_computing/launchpad/rev1/info.json22
-rw-r--r--keyboards/maple_computing/launchpad/rev1/rev1.c1
-rw-r--r--keyboards/maple_computing/launchpad/rev1/rev1.h17
-rw-r--r--keyboards/maple_computing/launchpad/rev1/rules.mk0
-rw-r--r--keyboards/maple_computing/launchpad/rules.mk20
-rw-r--r--keyboards/maple_computing/lets_split_eh/.noci0
-rw-r--r--keyboards/maple_computing/lets_split_eh/config.h35
-rw-r--r--keyboards/maple_computing/lets_split_eh/eh/config.h47
-rw-r--r--keyboards/maple_computing/lets_split_eh/eh/eh.c1
-rw-r--r--keyboards/maple_computing/lets_split_eh/eh/eh.h24
-rw-r--r--keyboards/maple_computing/lets_split_eh/eh/info.json62
-rw-r--r--keyboards/maple_computing/lets_split_eh/eh/rules.mk5
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/README.md7
-rwxr-xr-xkeyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/config.h4
-rwxr-xr-xkeyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c27
-rwxr-xr-xkeyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/rules.mk8
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/default/keymap.c120
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/config.h21
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/keymap.c159
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/rules.mk0
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/config.h23
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/keymap.c120
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/rules.mk0
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/msiu/config.h21
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/msiu/keymap.c195
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/resfury/config.h23
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/resfury/keymap.c189
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/resfury/readme.md7
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/resfury/rules.mk1
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md7
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c28
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk7
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/config.h26
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/keymap.c166
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/rules.mk0
-rw-r--r--keyboards/maple_computing/lets_split_eh/lets_split_eh.c16
-rw-r--r--keyboards/maple_computing/lets_split_eh/lets_split_eh.h7
-rw-r--r--keyboards/maple_computing/lets_split_eh/readme.md13
-rw-r--r--keyboards/maple_computing/lets_split_eh/rules.mk24
-rw-r--r--keyboards/maple_computing/minidox/.noci0
-rw-r--r--keyboards/maple_computing/minidox/config.h61
-rw-r--r--keyboards/maple_computing/minidox/keymaps/alairock/config.h39
-rw-r--r--keyboards/maple_computing/minidox/keymaps/alairock/keymap.c157
-rw-r--r--keyboards/maple_computing/minidox/keymaps/alairock/rules.mk2
-rw-r--r--keyboards/maple_computing/minidox/keymaps/bepo/config.h6
-rw-r--r--keyboards/maple_computing/minidox/keymaps/bepo/keymap.c109
-rw-r--r--keyboards/maple_computing/minidox/keymaps/bepo/readme.md31
-rw-r--r--keyboards/maple_computing/minidox/keymaps/default/keymap.c161
-rw-r--r--keyboards/maple_computing/minidox/keymaps/dustypomerleau/README.md28
-rw-r--r--keyboards/maple_computing/minidox/keymaps/dustypomerleau/config.h25
-rw-r--r--keyboards/maple_computing/minidox/keymaps/dustypomerleau/keymap.c434
-rw-r--r--keyboards/maple_computing/minidox/keymaps/dustypomerleau/rules.mk5
-rw-r--r--keyboards/maple_computing/minidox/keymaps/haegin/keymap.c86
-rw-r--r--keyboards/maple_computing/minidox/keymaps/khitsule/config.h6
-rw-r--r--keyboards/maple_computing/minidox/keymaps/khitsule/keymap.c64
-rw-r--r--keyboards/maple_computing/minidox/keymaps/khitsule/readme.md24
-rw-r--r--keyboards/maple_computing/minidox/keymaps/norman/config.h5
-rw-r--r--keyboards/maple_computing/minidox/keymaps/norman/keymap.c69
-rw-r--r--keyboards/maple_computing/minidox/keymaps/norman/readme.md56
-rw-r--r--keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h9
-rw-r--r--keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c109
-rw-r--r--keyboards/maple_computing/minidox/keymaps/rsthd_combos/readme.md22
-rw-r--r--keyboards/maple_computing/minidox/keymaps/rsthd_combos/rules.mk1
-rw-r--r--keyboards/maple_computing/minidox/keymaps/that_canadian/config.h39
-rw-r--r--keyboards/maple_computing/minidox/keymaps/that_canadian/keymap.c159
-rw-r--r--keyboards/maple_computing/minidox/keymaps/that_canadian/rules.mk2
-rw-r--r--keyboards/maple_computing/minidox/keymaps/tomb0y/README.md49
-rw-r--r--keyboards/maple_computing/minidox/keymaps/tomb0y/keymap.c142
-rw-r--r--keyboards/maple_computing/minidox/keymaps/tw1t611/keymap.c59
-rw-r--r--keyboards/maple_computing/minidox/keymaps/tw1t611/readme.md23
-rw-r--r--keyboards/maple_computing/minidox/keymaps/tw1t611/rules.mk1
-rw-r--r--keyboards/maple_computing/minidox/keymaps/xyverz/config.h42
-rw-r--r--keyboards/maple_computing/minidox/keymaps/xyverz/keymap.c193
-rw-r--r--keyboards/maple_computing/minidox/keymaps/xyverz/rules.mk1
-rw-r--r--keyboards/maple_computing/minidox/minidox.c1
-rw-r--r--keyboards/maple_computing/minidox/minidox.h7
-rw-r--r--keyboards/maple_computing/minidox/readme.md27
-rw-r--r--keyboards/maple_computing/minidox/rev1/config.h30
-rw-r--r--keyboards/maple_computing/minidox/rev1/info.json10
-rw-r--r--keyboards/maple_computing/minidox/rev1/rev1.c1
-rw-r--r--keyboards/maple_computing/minidox/rev1/rev1.h25
-rw-r--r--keyboards/maple_computing/minidox/rev1/rules.mk3
-rw-r--r--keyboards/maple_computing/minidox/rules.mk22
-rw-r--r--keyboards/maple_computing/the_ruler/config.h107
-rw-r--r--keyboards/maple_computing/the_ruler/info.json10
-rw-r--r--keyboards/maple_computing/the_ruler/keymaps/default/keymap.c63
-rw-r--r--keyboards/maple_computing/the_ruler/keymaps/default/readme.md1
-rw-r--r--keyboards/maple_computing/the_ruler/readme.md13
-rw-r--r--keyboards/maple_computing/the_ruler/rules.mk18
-rw-r--r--keyboards/maple_computing/the_ruler/the_ruler.c1
-rw-r--r--keyboards/maple_computing/the_ruler/the_ruler.h8
169 files changed, 6633 insertions, 0 deletions
diff --git a/keyboards/maple_computing/6ball/6ball.c b/keyboards/maple_computing/6ball/6ball.c
new file mode 100644
index 0000000000..1eddde9ba5
--- /dev/null
+++ b/keyboards/maple_computing/6ball/6ball.c
@@ -0,0 +1 @@
+#include "6ball.h"
diff --git a/keyboards/maple_computing/6ball/6ball.h b/keyboards/maple_computing/6ball/6ball.h
new file mode 100644
index 0000000000..ef73a72053
--- /dev/null
+++ b/keyboards/maple_computing/6ball/6ball.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k05, k00, k01, \
+ k04, k03, k02 \
+) { \
+ { k00, k01, k02, k03, k04, k05 } \
+}
diff --git a/keyboards/maple_computing/6ball/config.h b/keyboards/maple_computing/6ball/config.h
new file mode 100644
index 0000000000..cc496d675a
--- /dev/null
+++ b/keyboards/maple_computing/6ball/config.h
@@ -0,0 +1,47 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0xCEEB
+#define PRODUCT_ID 0x0007
+#define DEVICE_VER 0x0001
+#define MANUFACTURER That-Canadian
+#define PRODUCT 6-Ball
+
+/* key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 6
+
+/* pin-out */
+#define MATRIX_ROW_PINS { F5 }
+#define MATRIX_COL_PINS { F4, D4, B5, B6, B2, F6 }
+#define UNUSED_PINS
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN F7
+
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 6 // Number of LEDs
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define TAPPING_TERM 200
diff --git a/keyboards/maple_computing/6ball/info.json b/keyboards/maple_computing/6ball/info.json
new file mode 100644
index 0000000000..fc742ad517
--- /dev/null
+++ b/keyboards/maple_computing/6ball/info.json
@@ -0,0 +1,18 @@
+{
+ "keyboard_name": "6-Ball",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":0, "y":0.5},
+ {"x":1, "y":0},
+ {"x":2, "y":0.5},
+
+ {"x":0, "y":1.5},
+ {"x":1, "y":2},
+ {"x":2, "y":1.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/6ball/keymaps/default/keymap.c b/keyboards/maple_computing/6ball/keymaps/default/keymap.c
new file mode 100644
index 0000000000..5081161e38
--- /dev/null
+++ b/keyboards/maple_computing/6ball/keymaps/default/keymap.c
@@ -0,0 +1,22 @@
+#include QMK_KEYBOARD_H
+
+#define _MAIN 0
+#define _FN 1
+
+#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
+#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
+#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
+#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
+#define KC_X0 LT(_FN, KC_ESC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_MAIN] = LAYOUT(
+ KC_F, KC_X0, KC_LCTL,
+ KC_R, KC_D, KC_M
+ ),
+
+ [_FN] = LAYOUT(
+ KC_F, KC_TRNS, RGB_HUI,
+ RGB_TOG, RGB_MOD, RGB_HUD
+ )
+};
diff --git a/keyboards/maple_computing/6ball/readme.md b/keyboards/maple_computing/6ball/readme.md
new file mode 100644
index 0000000000..0b91c8aa28
--- /dev/null
+++ b/keyboards/maple_computing/6ball/readme.md
@@ -0,0 +1,14 @@
+6-Ball
+======
+
+A circular 6-key macropad made by ThatCanadian.
+
+Keyboard Maintainer: QMK Community
+Hardware Supported: Pro Micro ATmega32U4
+Hardware Availability: ThatCanadian
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/6ball:default
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/maple_computing/6ball/rules.mk b/keyboards/maple_computing/6ball/rules.mk
new file mode 100644
index 0000000000..bb1a873d64
--- /dev/null
+++ b/keyboards/maple_computing/6ball/rules.mk
@@ -0,0 +1,19 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+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
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+UNICODE_ENABLE = yes # Unicode
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
diff --git a/keyboards/maple_computing/c39/c39.c b/keyboards/maple_computing/c39/c39.c
new file mode 100755
index 0000000000..78ecae5a32
--- /dev/null
+++ b/keyboards/maple_computing/c39/c39.c
@@ -0,0 +1 @@
+#include "c39.h"
diff --git a/keyboards/maple_computing/c39/c39.h b/keyboards/maple_computing/c39/c39.h
new file mode 100755
index 0000000000..797dd1ef77
--- /dev/null
+++ b/keyboards/maple_computing/c39/c39.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C \
+ ) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C } \
+}
+
+#define LAYOUT_ortho_3x13 LAYOUT
diff --git a/keyboards/maple_computing/c39/config.h b/keyboards/maple_computing/c39/config.h
new file mode 100755
index 0000000000..409023f1fa
--- /dev/null
+++ b/keyboards/maple_computing/c39/config.h
@@ -0,0 +1,76 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0xCA17
+#define PRODUCT_ID 0xCA39
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Maple Computing
+#define PRODUCT C39
+
+/* key matrix size */
+#define MATRIX_ROWS 3
+#define MATRIX_COLS 13
+
+#define MATRIX_ROW_PINS { D1, B4, B5 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D7, E6, C6, D2, D3 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/maple_computing/c39/info.json b/keyboards/maple_computing/c39/info.json
new file mode 100755
index 0000000000..3600570dde
--- /dev/null
+++ b/keyboards/maple_computing/c39/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "C39",
+ "url": "",
+ "maintainer": "Space Cat",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Back", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"M1", "x":11.25, "y":0}, {"label":"M2", "x":12.25, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Enter", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"M3", "x":11.25, "y":1}, {"label":"M4", "x":12.25, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Fn", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"M5", "x":11.25, "y":2}, {"label":"M6", "x":12.25, "y":2}]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/c39/keymaps/default/keymap.c b/keyboards/maple_computing/c39/keymaps/default/keymap.c
new file mode 100755
index 0000000000..9de75190d0
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/default/keymap.c
@@ -0,0 +1,45 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _FN1 1
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,----------------------------------------------------------------------------. ,-------------.
+ * | Q | W | E | R | T | Bksp | Y | U | I | O | P | | M1 | M2 |
+ * |------+------+------+------+------+------+------+------+------+------+------+ |------+------|
+ * | A | S | D | F | G | Enter| H | J | K | L | ; | | M3 | M4 |
+ * |------+------+------+------+------+------+------+------+------+------+------+ |------+------|
+ * | Z | X | C | V | B | FN1 | N | M | , | . | / | | M5 | M6 |
+ * `----------------------------------------------------------------------------' `-------------'
+ */
+[_QWERTY] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_1, KC_2,
+ KC_A, KC_S, KC_D, KC_F, KC_G, MT(MOD_LSFT, KC_ENT), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_3, KC_4,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, LT(_FN1, KC_SPC), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_5, KC_6
+),
+
+/* FN1
+ * ,----------------------------------------------------------------------------. ,-------------.
+ * | 1 | 2 | 3 | 4 | 5 | Bksp | 6 | 7 | 8 | 9 | 0 | | M1 | M2 |
+ * |------+------+------+------+------+------+------+------+------+------+------+ |------+------|
+ * | 4 | 5 | 6 | + | | Enter| | | | | | | M3 | M4 |
+ * |------+------+------+------+------+------+------+------+------+------+------+ |------+------|
+ * | 7 | 8 | 9 | 0 | | FN1 | | | | | | | M5 | M6 |
+ * `----------------------------------------------------------------------------' `-------------'
+ */
+[_FN1] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2,
+ KC_4, KC_5, KC_6, KC_PLUS, _______, KC_ENT, _______, _______, _______, _______, _______, KC_3, KC_4,
+ KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, _______, _______, _______, KC_5, KC_6
+),
+};
diff --git a/keyboards/maple_computing/c39/keymaps/default/readme.md b/keyboards/maple_computing/c39/keymaps/default/readme.md
new file mode 100755
index 0000000000..f5b1b6ac11
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for the C39
diff --git a/keyboards/maple_computing/c39/keymaps/drashna/config.h b/keyboards/maple_computing/c39/keymaps/drashna/config.h
new file mode 100644
index 0000000000..e48bc46ca8
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/drashna/config.h
@@ -0,0 +1,34 @@
+/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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
+
+// place overrides here
+#undef MATRIX_COL_PINS
+#define MATRIX_COL_PINS \
+ { A3, A2, A1, A0, B13, B14, B15, B9, B3, B2, B4, A10, A9 }
+#undef MATRIX_ROW_PINS
+#define MATRIX_ROW_PINS \
+ { B7, B1, B0 }
+
+#define RGB_DI_PIN B10
+#define RGBLED_NUM 15
+
+#define SOLENOID_PIN B11
+
+#define AUDIO_PIN A5
+#define AUDIO_PIN_ALT A4
+#define AUDIO_PIN_ALT_AS_NEGATIVE
diff --git a/keyboards/maple_computing/c39/keymaps/drashna/keymap.c b/keyboards/maple_computing/c39/keymaps/drashna/keymap.c
new file mode 100755
index 0000000000..6fd1f12984
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/drashna/keymap.c
@@ -0,0 +1,83 @@
+/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
+
+/*
+ * The `LAYOUT_base` macro is a template to allow the use of identical
+ * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
+ * that there is no need to set them up for each layout, and modify all of
+ * them if I want to change them. This helps to keep consistency and ease
+ * of use. K## is a placeholder to pass through the individual keycodes
+ */
+// clang-format off
+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
+#define LAYOUT_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_wrapper( \
+ KC_ESC, K01, K02, K03, K04, K05, KC_NO, K06, K07, K08, K09, K0A, KC_DEL, \
+ ALT_T(KC_TAB), K11, K12, K13, K14, K15, KC_BSPC, K16, K17, K18, K19, K1A, RALT_T(K1B), \
+ KC_MLSF, CTL_T(K21), K22, K23, K24, LT(_LOWER,K25), KC_SPC, LT(_RAISE,K26), K27, K28, K29, RCTL_T(K2A), KC_ENT \
+ )
+#define LAYOUT_base_wrapper(...) LAYOUT_base(__VA_ARGS__)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
+ ),
+
+ [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
+ ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
+ ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
+ ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
+ ),
+ [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
+ ),
+
+ [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
+ _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
+ ),
+
+ [_LOWER] = LAYOUT_wrapper(
+ KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC,
+ KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE,
+ _______, _________________LOWER_L3__________________, _______, _________________LOWER_R3__________________, _______
+ ),
+
+ [_RAISE] = LAYOUT_wrapper(
+ KC_GRV, _________________RAISE_L1__________________, _______, _________________RAISE_R1__________________, KC_BSPC,
+ KC_DEL, _________________RAISE_L2__________________, _______, _________________RAISE_R2__________________, KC_BSLS,
+ _______, _________________RAISE_L3__________________, _______, _________________RAISE_R3__________________, _______
+ ),
+
+ [_ADJUST] = LAYOUT_wrapper(
+ KC_MAKE, _________________ADJUST_L1_________________, KC_NUKE, _________________ADJUST_R1_________________, KC_RST,
+ VRSN, _________________ADJUST_L2_________________, MG_NKRO, _________________ADJUST_R2_________________, EEP_RST,
+ TG_MODS, _________________ADJUST_L3_________________, KC_RGB_T,_________________ADJUST_R3_________________, RGB_IDL
+ )
+};
+// clang-format on
diff --git a/keyboards/maple_computing/c39/keymaps/drashna/readme.md b/keyboards/maple_computing/c39/keymaps/drashna/readme.md
new file mode 100755
index 0000000000..a8efbaa5fe
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/drashna/readme.md
@@ -0,0 +1,3 @@
+# @drashna's keymap for the C39
+
+HERE BE DRAGONS
diff --git a/keyboards/maple_computing/c39/keymaps/drashna/rules.mk b/keyboards/maple_computing/c39/keymaps/drashna/rules.mk
new file mode 100644
index 0000000000..a6575bbd93
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/drashna/rules.mk
@@ -0,0 +1,19 @@
+# MCU name
+MCU = STM32F303
+BOARD = QMK_PROTON_C
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes
+EXTRAKEY_ENABLE = yes
+CONSOLE_ENABLE = yes
+COMMAND_ENABLE = yes
+NKRO_ENABLE = yes
+AUDIO_ENABLE = yes
+UNICODE_ENABLE = yes
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID
+
+RGBLIGHT_STARTUP_ANIMATION = yes
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h
new file mode 100644
index 0000000000..d67935a9fd
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h
@@ -0,0 +1,34 @@
+
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+Copyright 2017 Art Ortenburger
+
+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
+
+/* key combination for magic key command */
+#undef IS_COMMAND
+#define IS_COMMAND() ( \
+ get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT)) \
+)
+
+#ifdef RGBLIGHT_ENABLE
+# define RGB_DI_PIN D0
+# define RGBLED_NUM 4
+#endif // !RGBLIGHT_ENABLE
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c
new file mode 100644
index 0000000000..231e3cf44d
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c
@@ -0,0 +1,131 @@
+/*
+This is the keymap for the keyboard
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+Copyright 2017 Art Ortenburger
+
+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
+#include "kuchosauronad0.h"
+
+#ifdef RGBLIGHT_ENABLE
+ extern rgblight_config_t rgblight_config;
+#endif
+
+#ifdef INDICATOR_LIGHTS
+ extern userspace_config_t userspace_config;
+ uint8_t last_mod;
+ uint8_t last_led;
+ uint8_t last_osm;
+#endif
+
+
+#define LAYOUT_collide39_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_wrapper( \
+ MT(MOD_LALT,KC_TAB), K01, K02, K03, K04, K05, LT(RAISE,KC_PGUP), K06, K07, K08, K09, K0A, KC_BSPC, \
+ SFT_T(KC_ESC), K11, K12, K13, K14, K15, LT(LOWER,KC_PGDN), K16, K17, K18, K19, K1A, SFT_T(KC_ENT), \
+ MT(MOD_LCTL,KC_DEL), K21, K22, K23, K24, K25, KC_SPACE, K26, K27, K28, K29, K2A, KC_LEAD \
+ )
+
+/*
+ * ,------. ,----------------------------------------------------------------------------. ,------.
+ * |ALTTAB| | Q | W | E | R | T |RSE/PU| Y | U | I | O | P | | BSPC |
+ * |------| |------+------+------+------+------+------+------+------+------+------+------+ |------|
+ * |SF/ESC| | A | S | D | F | G |LWR/PD| H | J | K | L | ; | | ENTER|
+ * |------| |------+------+------+------+------+------+------+------+------+------+------+ |------|
+ * |CTLDEL| | Z | X | C | V | B |SPACE | N | M | , | . | / | |LEADER|
+ * `------' `----------------------------------------------------------------------------' `------'
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT_collide39_base_wrapper(
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
+ ),
+
+ [_COLEMAK] = LAYOUT_collide39_base_wrapper(
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
+ ),
+
+ [_DVORAK] = LAYOUT_collide39_base_wrapper(
+ _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
+ ),
+
+#ifdef UNICODEMAP_ENABLE
+ [_UNICODE] = LAYOUT_collide39_base_wrapper(
+ _______________UNICODE_L1__________________, _______________UNICODE_R1__________________,
+ _______________UNICODE_L2__________________, _______________UNICODE_R2__________________,
+ _______________UNICODE_L3__________________, _______________UNICODE_R3__________________
+ ),
+#endif
+ [_WORKMAN] = LAYOUT_collide39_base_wrapper(
+ _________________RGB_UP____________________, _________________RGB_UP____________________,
+ _________________RGB_CENTER________________, _________________RGB_CENTER________________,
+ _________________RGB_DOWN__________________, _________________RGB_DOWN__________________
+ ),
+
+ [_PLOVER] = LAYOUT_wrapper(\
+ KC_1, _________________PLOVER_L1_________________, _______, _________________PLOVER_R1_________________, KC_1,
+ KC_NO, _________________PLOVER_L2_________________, _______, _________________PLOVER_R2_________________, KC_NO,
+ KC_NO, _________________PLOVER_L3_________________, _______, _________________PLOVER_R3_________________, _______
+ ),
+
+ [_MODS] = LAYOUT_wrapper(\
+ KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RALT,
+ KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL,
+ KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_LOWER] = LAYOUT_wrapper(\
+ KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC,
+ KC_F11, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE,
+ KC_F12, _________________LOWER_L3__________________, _______, _________________LOWER_R3__________________, _______
+ ),
+
+ [_RAISE] = LAYOUT_wrapper(\
+ KC_GRV, _________________RAISE_L1__________________, _______, _________________RAISE_R1__________________, KC_BSPC,
+ _______, _________________RAISE_L2__________________, _______, _________________RAISE_R2__________________, KC_BSLS,
+ _______, _________________RAISE_L3__________________, _______, _________________RAISE_R3__________________, _______
+ ),
+
+ [_ADJUST] = LAYOUT_wrapper(\
+ KC_MAKE, _________________ADJUST_L1_________________, _______, _________________ADJUST_R1_________________, KC_RESET,
+ VRSN, _________________ADJUST_L2_________________, _______, _________________ADJUST_R2_________________, EEP_RST,
+ DEBUG, _________________ADJUST_L3_________________, _______, _________________ADJUST_R3_________________, _______
+ )
+
+};
+
+void matrix_init_keymap(void) {
+ #ifndef CONVERT_TO_PROTON_C
+ setPinOutput(D5);
+ writePinHigh(D5);
+ setPinOutput(B0);
+ writePinHigh(B0);
+ #endif
+}
+
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md
new file mode 100644
index 0000000000..ff01fb5ffa
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md
@@ -0,0 +1,10 @@
+# Personal keymap for the collide39
+
+## Features:
+
+- leader key
+- combos
+- tap dance
+- rgb backlight for the space key using a chameleon 4x WS28xx leds
+
+#
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk
new file mode 100644
index 0000000000..a6304cdf4a
--- /dev/null
+++ b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk
@@ -0,0 +1,20 @@
+BOOTLOADER = caterina
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+LEADER_ENABLE = yes # default is yes
+TAP_DANCE_ENABLE = no #(+1254)
+COMBO_ENABLE = yes
+UNICODE_ENABLE = no #(+1134)
+UNICODEMAP_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+AUDIO_ENABLE = no
+NKRO_ENABLE = yes
+
+INDICATOR_LIGHTS = yes
+MACROS_ENABLED = no
+RGBLIGHT_STARTUP_ANIMATION = yes
+
+NO_SECRETS = no
diff --git a/keyboards/maple_computing/c39/readme.md b/keyboards/maple_computing/c39/readme.md
new file mode 100755
index 0000000000..c74294e300
--- /dev/null
+++ b/keyboards/maple_computing/c39/readme.md
@@ -0,0 +1,16 @@
+# C39
+=======
+
+![C39](https://i.imgur.com/KuWIIuW.png)
+
+A compact 39 key keyboard.
+
+Keyboard Maintainer: [Maple Computing]()
+Hardware Supported: C39 PCB
+Hardware Availability: [SpaceCat.design](https://spacecat.design)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/c39: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).
diff --git a/keyboards/maple_computing/c39/rules.mk b/keyboards/maple_computing/c39/rules.mk
new file mode 100755
index 0000000000..4b65b7b9de
--- /dev/null
+++ b/keyboards/maple_computing/c39/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+RGBLIGHT_ENABLE = no # RGB Enable / Disable
diff --git a/keyboards/maple_computing/christmas_tree/.noci b/keyboards/maple_computing/christmas_tree/.noci
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/.noci
diff --git a/keyboards/maple_computing/christmas_tree/V2017/V2017.c b/keyboards/maple_computing/christmas_tree/V2017/V2017.c
new file mode 100644
index 0000000000..e367270592
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/V2017/V2017.c
@@ -0,0 +1 @@
+#include "V2017.h" \ No newline at end of file
diff --git a/keyboards/maple_computing/christmas_tree/V2017/V2017.h b/keyboards/maple_computing/christmas_tree/V2017/V2017.h
new file mode 100644
index 0000000000..f779c0ed47
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/V2017/V2017.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#include "christmas_tree.h"
diff --git a/keyboards/maple_computing/christmas_tree/V2017/config.h b/keyboards/maple_computing/christmas_tree/V2017/config.h
new file mode 100644
index 0000000000..abc94749a8
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/V2017/config.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#include "config_common.h"
+
+#define DEVICE_VER 0x2017
diff --git a/keyboards/maple_computing/christmas_tree/V2017/rules.mk b/keyboards/maple_computing/christmas_tree/V2017/rules.mk
new file mode 100644
index 0000000000..184a1f2247
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/V2017/rules.mk
@@ -0,0 +1,3 @@
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+AUDIO_ENABLE = no # Audio output \ No newline at end of file
diff --git a/keyboards/maple_computing/christmas_tree/christmas_tree.c b/keyboards/maple_computing/christmas_tree/christmas_tree.c
new file mode 100644
index 0000000000..c03670a3a5
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/christmas_tree.c
@@ -0,0 +1 @@
+#include "christmas_tree.h"
diff --git a/keyboards/maple_computing/christmas_tree/christmas_tree.h b/keyboards/maple_computing/christmas_tree/christmas_tree.h
new file mode 100644
index 0000000000..68eefca6a8
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/christmas_tree.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k00, k10, k20, k30, k40, k50 \
+) { \
+ { k00 }, \
+ { k10 }, \
+ { k20 }, \
+ { k30 }, \
+ { k40 }, \
+ { k50 } \
+}
diff --git a/keyboards/maple_computing/christmas_tree/config.h b/keyboards/maple_computing/christmas_tree/config.h
new file mode 100644
index 0000000000..531c5996d2
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/config.h
@@ -0,0 +1,54 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0xFEED
+#define PRODUCT_ID 0x3070
+#define MANUFACTURER Maple Computing
+#define PRODUCT Christmas Tree
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 1
+
+/* Planck PCB default pin-out */
+#define MATRIX_ROW_PINS { D3, F4, D0, F6, F5, D4 }
+#define MATRIX_COL_PINS { D1 }
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN D2
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* 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
diff --git a/keyboards/maple_computing/christmas_tree/info.json b/keyboards/maple_computing/christmas_tree/info.json
new file mode 100644
index 0000000000..5d24218c70
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "Christmas Tree",
+ "url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/",
+ "maintainer": "That-Canadian",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"x":1, "y":0}, {"x":0.5, "y":1}, {"x":1.5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/christmas_tree/keymaps/default/keymap.c b/keyboards/maple_computing/christmas_tree/keymaps/default/keymap.c
new file mode 100644
index 0000000000..6931b91a61
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/keymaps/default/keymap.c
@@ -0,0 +1,82 @@
+/* Copyright 2015-2017 Jack Humbert
+ *
+ * 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
+
+
+enum layers {
+ _BASE,
+ _FUNC
+};
+
+enum custom_keycodes {
+ FUNC = SAFE_RANGE,
+ BACKLIT
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Base
+ * ,------.
+ * | 1 |
+ * ,------+------.
+ * | 2 | 3 |
+ * ,------+------+------.
+ * | 4 | FUNC | 6 |
+ * `--------------------'
+ */
+ [_BASE] = LAYOUT(
+ KC_1,
+ KC_2, KC_3,
+ KC_4, MO(_FUNC), KC_6
+ ),
+
+ /* Func
+ * ,------.
+ * |BCKLIT|
+ * ,------+------.
+ * | 8 | 9 |
+ * ,------+------+------.
+ * | 0 | FUNC | RESET|
+ * `--------------------'
+ */
+ [_FUNC] = LAYOUT(
+ BACKLIT,
+ KC_8, KC_9,
+ KC_0, _______, RESET
+ )
+
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ register_code(KC_LSFT);
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ unregister_code(KC_LSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/christmas_tree/keymaps/default/readme.md b/keyboards/maple_computing/christmas_tree/keymaps/default/readme.md
new file mode 100644
index 0000000000..a9cb4586ef
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/keymaps/default/readme.md
@@ -0,0 +1,2 @@
+# The Default Christmas Tree Layout
+
diff --git a/keyboards/maple_computing/christmas_tree/readme.md b/keyboards/maple_computing/christmas_tree/readme.md
new file mode 100644
index 0000000000..3ba255a18c
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/readme.md
@@ -0,0 +1,14 @@
+Christmas Tree
+===
+
+![Christmas Tree](https://i.imgur.com/I9FNdSv.png)
+
+A tiny 6 key macro pad, in the shape of a christmas tree, made by That-Canadian, SpaceCat, and ChillCaps.
+
+Keyboard Maintainer: [That-Canadian](https://github.com/That-Canadian)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/christmas_tree/V2017:default
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/maple_computing/christmas_tree/rules.mk b/keyboards/maple_computing/christmas_tree/rules.mk
new file mode 100644
index 0000000000..45ac883163
--- /dev/null
+++ b/keyboards/maple_computing/christmas_tree/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+
+DEFAULT_FOLDER = maple_computing/christmas_tree/V2017
diff --git a/keyboards/maple_computing/ivy/.noci b/keyboards/maple_computing/ivy/.noci
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/ivy/.noci
diff --git a/keyboards/maple_computing/ivy/config.h b/keyboards/maple_computing/ivy/config.h
new file mode 100644
index 0000000000..2ccf3b8f6f
--- /dev/null
+++ b/keyboards/maple_computing/ivy/config.h
@@ -0,0 +1,66 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x1337
+#define PRODUCT_ID 0x6012
+#define MANUFACTURER Maple Computing
+#define PRODUCT Ivy
+
+/* key matrix size */
+#define MATRIX_ROWS 3
+#define MATRIX_COLS 3
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+#define BACKLIGHT_PIN D2
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/maple_computing/ivy/ivy.c b/keyboards/maple_computing/ivy/ivy.c
new file mode 100644
index 0000000000..007ef67253
--- /dev/null
+++ b/keyboards/maple_computing/ivy/ivy.c
@@ -0,0 +1 @@
+#include "ivy.h"
diff --git a/keyboards/maple_computing/ivy/ivy.h b/keyboards/maple_computing/ivy/ivy.h
new file mode 100644
index 0000000000..645c5e0ef7
--- /dev/null
+++ b/keyboards/maple_computing/ivy/ivy.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#ifdef KEYBOARD_maple_computing_ivy_rev1
+ #include "rev1.h"
+#endif
+
+#include "quantum.h"
diff --git a/keyboards/maple_computing/ivy/keymaps/default/keymap.c b/keyboards/maple_computing/ivy/keymaps/default/keymap.c
new file mode 100644
index 0000000000..f02580f19c
--- /dev/null
+++ b/keyboards/maple_computing/ivy/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
+#include QMK_KEYBOARD_H
+
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum pad_layers {
+ _L1,
+ _FUNC
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Layer 1
+ * ,------.
+ * | 1 |
+ * |------|
+ * | 2 |
+ * |------|
+ * | FN |
+ * `------'
+ */
+[_L1] = LAYOUT(
+ KC_1,
+ KC_2,
+ MO(_FUNC)
+),
+
+[_FUNC] = LAYOUT(
+ CALTDEL,
+ TSKMGR,
+ _______
+)
+
+};
diff --git a/keyboards/maple_computing/ivy/readme.md b/keyboards/maple_computing/ivy/readme.md
new file mode 100644
index 0000000000..a3bc043b77
--- /dev/null
+++ b/keyboards/maple_computing/ivy/readme.md
@@ -0,0 +1,15 @@
+IVY
+===
+
+![Ivy](https://i.imgur.com/fnVQet6.jpg)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/ivy/rev1:default
+
+Install examples:
+
+ make maple_computing/ivy/rev1:default:dfu
+
+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).
diff --git a/keyboards/maple_computing/ivy/rev1/config.h b/keyboards/maple_computing/ivy/rev1/config.h
new file mode 100644
index 0000000000..9b88b89e5e
--- /dev/null
+++ b/keyboards/maple_computing/ivy/rev1/config.h
@@ -0,0 +1,27 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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
+
+#define DEVICE_VER 0x0001
+
+/* Let's Macro V2 pin-out */
+#define MATRIX_ROW_PINS { F1, B2, D3 }
+#define MATRIX_COL_PINS { F5, B3, D5 }
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/maple_computing/ivy/rev1/info.json b/keyboards/maple_computing/ivy/rev1/info.json
new file mode 100644
index 0000000000..c5045bd80f
--- /dev/null
+++ b/keyboards/maple_computing/ivy/rev1/info.json
@@ -0,0 +1,14 @@
+{
+ "keyboard_name": "IVY",
+ "url": "",
+ "maintainer": "That-Canadian",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0}
+ ]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/ivy/rev1/rev1.c b/keyboards/maple_computing/ivy/rev1/rev1.c
new file mode 100644
index 0000000000..007ef67253
--- /dev/null
+++ b/keyboards/maple_computing/ivy/rev1/rev1.c
@@ -0,0 +1 @@
+#include "ivy.h"
diff --git a/keyboards/maple_computing/ivy/rev1/rev1.h b/keyboards/maple_computing/ivy/rev1/rev1.h
new file mode 100644
index 0000000000..ac338368ed
--- /dev/null
+++ b/keyboards/maple_computing/ivy/rev1/rev1.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "ivy.h"
+
+#define LAYOUT( \
+ K00, \
+ K01, \
+ K02 \
+ ) \
+ { \
+ { K00, KC_NO, KC_NO }, \
+ { KC_NO, K01, KC_NO }, \
+ { KC_NO, KC_NO, K02 }, \
+ }
diff --git a/keyboards/maple_computing/ivy/rev1/rules.mk b/keyboards/maple_computing/ivy/rev1/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/ivy/rev1/rules.mk
diff --git a/keyboards/maple_computing/ivy/rules.mk b/keyboards/maple_computing/ivy/rules.mk
new file mode 100644
index 0000000000..66812904cd
--- /dev/null
+++ b/keyboards/maple_computing/ivy/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+
+DEFAULT_FOLDER = ivy/rev1
diff --git a/keyboards/maple_computing/jnao/config.h b/keyboards/maple_computing/jnao/config.h
new file mode 100644
index 0000000000..7598e049ae
--- /dev/null
+++ b/keyboards/maple_computing/jnao/config.h
@@ -0,0 +1,52 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x1337
+#define PRODUCT_ID 0x6017
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Maple Computing
+#define PRODUCT JNAO Keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 12
+
+#define MATRIX_ROW_PINS { E6, F0, F5, F6, F7 }
+#define MATRIX_COL_PINS { F1, F4, B1, B2, B3, B7, D1, D2, D4, D6, D7, B4 }
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN D0
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* 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
+
diff --git a/keyboards/maple_computing/jnao/info.json b/keyboards/maple_computing/jnao/info.json
new file mode 100644
index 0000000000..4d8f332391
--- /dev/null
+++ b/keyboards/maple_computing/jnao/info.json
@@ -0,0 +1,123 @@
+{
+ "keyboard_name": "JNAO",
+ "url": "",
+ "maintainer": "That-Canadian",
+ "layouts": {
+ "LAYOUT_ortho_5x12": {
+ "layout": [
+ {"label":"`", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"Backspace", "x":11, "y":0},
+ {"label":"Tab", "x":0, "y":1},
+ {"label":"Q", "x":1, "y":1},
+ {"label":"W", "x":2, "y":1},
+ {"label":"E", "x":3, "y":1},
+ {"label":"R", "x":4, "y":1},
+ {"label":"T", "x":5, "y":1},
+ {"label":"Y", "x":6, "y":1},
+ {"label":"U", "x":7, "y":1},
+ {"label":"I", "x":8, "y":1},
+ {"label":"O", "x":9, "y":1},
+ {"label":"P", "x":10, "y":1},
+ {"label":"Delete", "x":11, "y":1},
+ {"label":"Esc", "x":0, "y":2},
+ {"label":"A", "x":1, "y":2},
+ {"label":"S", "x":2, "y":2},
+ {"label":"D", "x":3, "y":2},
+ {"label":"F", "x":4, "y":2},
+ {"label":"G", "x":5, "y":2},
+ {"label":"H", "x":6, "y":2},
+ {"label":"J", "x":7, "y":2},
+ {"label":"K", "x":8, "y":2},
+ {"label":"L", "x":9, "y":2},
+ {"label":";", "x":10, "y":2},
+ {"label":"'", "x":11, "y":2},
+ {"label":"Shift", "x":0, "y":3},
+ {"label":"Z", "x":1, "y":3},
+ {"label":"X", "x":2, "y":3},
+ {"label":"C", "x":3, "y":3},
+ {"label":"V", "x":4, "y":3},
+ {"label":"B", "x":5, "y":3},
+ {"label":"N", "x":6, "y":3},
+ {"label":"M", "x":7, "y":3},
+ {"label":",", "x":8, "y":3},
+ {"label":".", "x":9, "y":3},
+ {"label":"/", "x":10, "y":3},
+ {"label":"Enter", "x":11, "y":3},
+ {"label":"Fn", "x":0, "y":4},
+ {"label":"Ctrl", "x":1, "y":4},
+ {"label":"Alt", "x":2, "y":4},
+ {"label":"Meta", "x":3, "y":4},
+ {"label":"Lower", "x":4, "y":4},
+ {"label":"Space", "x":5, "y":4},
+ {"label":"Space", "x":6, "y":4},
+ {"label":"Raise", "x":7, "y":4},
+ {"label":"Left", "x":8, "y":4},
+ {"label":"Down", "x":9, "y":4},
+ {"label":"Up", "x":10, "y":4},
+ {"label":"Right", "x":11, "y":4}
+ ]
+ },
+ "LAYOUT_ortho_4x12": {
+ "layout": [
+ {"label":"Tab", "x":0, "y":0},
+ {"label":"Q", "x":1, "y":0},
+ {"label":"W", "x":2, "y":0},
+ {"label":"E", "x":3, "y":0},
+ {"label":"R", "x":4, "y":0},
+ {"label":"T", "x":5, "y":0},
+ {"label":"Y", "x":6, "y":0},
+ {"label":"U", "x":7, "y":0},
+ {"label":"I", "x":8, "y":0},
+ {"label":"O", "x":9, "y":0},
+ {"label":"P", "x":10, "y":0},
+ {"label":"Delete", "x":11, "y":0},
+ {"label":"Esc", "x":0, "y":1},
+ {"label":"A", "x":1, "y":1},
+ {"label":"S", "x":2, "y":1},
+ {"label":"D", "x":3, "y":1},
+ {"label":"F", "x":4, "y":1},
+ {"label":"G", "x":5, "y":1},
+ {"label":"H", "x":6, "y":1},
+ {"label":"J", "x":7, "y":1},
+ {"label":"K", "x":8, "y":1},
+ {"label":"L", "x":9, "y":1},
+ {"label":";", "x":10, "y":1},
+ {"label":"'", "x":11, "y":1},
+ {"label":"Shift", "x":0, "y":2},
+ {"label":"Z", "x":1, "y":2},
+ {"label":"X", "x":2, "y":2},
+ {"label":"C", "x":3, "y":2},
+ {"label":"V", "x":4, "y":2},
+ {"label":"B", "x":5, "y":2},
+ {"label":"N", "x":6, "y":2},
+ {"label":"M", "x":7, "y":2},
+ {"label":",", "x":8, "y":2},
+ {"label":".", "x":9, "y":2},
+ {"label":"/", "x":10, "y":2},
+ {"label":"Enter", "x":11, "y":2},
+ {"label":"Fn", "x":0, "y":3},
+ {"label":"Ctrl", "x":1, "y":3},
+ {"label":"Alt", "x":2, "y":3},
+ {"label":"Meta", "x":3, "y":3},
+ {"label":"Lower", "x":4, "y":3},
+ {"label":"Space", "x":5, "y":3},
+ {"label":"Space", "x":6, "y":3},
+ {"label":"Raise", "x":7, "y":3},
+ {"label":"Left", "x":8, "y":3},
+ {"label":"Down", "x":9, "y":3},
+ {"label":"Up", "x":10, "y":3},
+ {"label":"Right", "x":11, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/jnao/jnao.c b/keyboards/maple_computing/jnao/jnao.c
new file mode 100644
index 0000000000..8a49c747a1
--- /dev/null
+++ b/keyboards/maple_computing/jnao/jnao.c
@@ -0,0 +1 @@
+#include "jnao.h"
diff --git a/keyboards/maple_computing/jnao/jnao.h b/keyboards/maple_computing/jnao/jnao.h
new file mode 100644
index 0000000000..357a025f91
--- /dev/null
+++ b/keyboards/maple_computing/jnao/jnao.h
@@ -0,0 +1,32 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_ortho_5x12( \
+ k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, \
+ k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, \
+ k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, \
+ k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412 \
+) \
+{ \
+ { k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012 }, \
+ { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112 }, \
+ { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212 }, \
+ { k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312 }, \
+ { k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412 } \
+}
+
+#define LAYOUT_ortho_4x12( \
+ k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, \
+ k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, \
+ k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312 \
+) \
+{ \
+ {k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012}, \
+ {k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112}, \
+ {k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212}, \
+ {k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312}, \
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \
+}
diff --git a/keyboards/maple_computing/jnao/keymaps/default/keymap.c b/keyboards/maple_computing/jnao/keymaps/default/keymap.c
new file mode 100644
index 0000000000..356f056bdb
--- /dev/null
+++ b/keyboards/maple_computing/jnao/keymaps/default/keymap.c
@@ -0,0 +1,155 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _FUNCTION,
+ _ADJUST,
+};
+
+enum jnao_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Func | A | S | D | F | G | H | J | K | L | ; | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | ` | GUI | ALT |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_5x12(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_5x12(
+ KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE,
+ _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_5x12(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
+ KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
+ _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | ESC | F1 | F2 | F3 |ALTF4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Taskmg| | | | | | | | | | |caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |RESET |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_5x12(
+ KC_ESC, KC_F1, KC_F2, KC_F3, LALT(KC_F4), KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL,
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______,
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET
+),
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | up | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTION] = LAYOUT_ortho_5x12(
+ 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_UP, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+};
diff --git a/keyboards/maple_computing/jnao/keymaps/default_4x12/keymap.c b/keyboards/maple_computing/jnao/keymaps/default_4x12/keymap.c
new file mode 100644
index 0000000000..8861a36b23
--- /dev/null
+++ b/keyboards/maple_computing/jnao/keymaps/default_4x12/keymap.c
@@ -0,0 +1,150 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _FUNCTION,
+ _ADJUST,
+};
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Func | A | S | D | F | G | H | J | K | L | ; | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | ` | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12(
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE,
+ _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
+ KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
+ _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |Taskmg| | | | | | | | | | |caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | RESET|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12(
+ TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL,
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______,
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET
+),
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | Up | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTION] = LAYOUT_ortho_4x12(
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/jnao/keymaps/via/keymap.c b/keyboards/maple_computing/jnao/keymaps/via/keymap.c
new file mode 100644
index 0000000000..00305db81d
--- /dev/null
+++ b/keyboards/maple_computing/jnao/keymaps/via/keymap.c
@@ -0,0 +1,145 @@
+ /* Copyright 2020 Matthew Dias
+ *
+ * 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
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+enum jnao_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | A | S | D | F | G | H | J | K | L | ; | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | ` | GUI | ALT |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_5x12(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_5x12(
+ KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE,
+ _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_5x12(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
+ KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
+ _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | ESC | F1 | F2 | F3 |ALTF4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Taskmg| | | | | | | | | | |caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |RESET |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_5x12(
+ KC_ESC, KC_F1, KC_F2, KC_F3, LALT(KC_F4), KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL,
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______,
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET
+)
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ }
+ return true;
+};
diff --git a/keyboards/maple_computing/jnao/keymaps/via/rules.mk b/keyboards/maple_computing/jnao/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/maple_computing/jnao/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/maple_computing/jnao/readme.md b/keyboards/maple_computing/jnao/readme.md
new file mode 100644
index 0000000000..dd7b280a08
--- /dev/null
+++ b/keyboards/maple_computing/jnao/readme.md
@@ -0,0 +1,14 @@
+JNAO
+====
+
+An no-frills 5x12 or 4x12 ortholinear keyboard
+
+Keyboard Maintainer: [That-Canadian](https://github.com/that-canadian)
+Hardware Supported: JNAO PCB
+Hardware Availability: [SpaceCat](https://spacecat.design) and [Keebio](https://keeb.io/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/jnao: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).
diff --git a/keyboards/maple_computing/jnao/rules.mk b/keyboards/maple_computing/jnao/rules.mk
new file mode 100644
index 0000000000..e50247dfb6
--- /dev/null
+++ b/keyboards/maple_computing/jnao/rules.mk
@@ -0,0 +1,25 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = ortho_5x12 ortho_4x12
+LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
diff --git a/keyboards/maple_computing/launchpad/.noci b/keyboards/maple_computing/launchpad/.noci
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/.noci
diff --git a/keyboards/maple_computing/launchpad/config.h b/keyboards/maple_computing/launchpad/config.h
new file mode 100644
index 0000000000..327d67016b
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/config.h
@@ -0,0 +1,66 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x1337
+#define PRODUCT_ID 0x6007
+#define MANUFACTURER Maple Computing
+#define PRODUCT Launch Pad
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 2
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#ifdef SUBPROJECT_rev1
+ #include "rev1/config.h"
+#endif
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h
new file mode 100644
index 0000000000..6aaf996e57
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h
@@ -0,0 +1,32 @@
+/* Copyright 2020 Brandon Schlack
+ *
+ * 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
+
+/* Underlight Configuration */
+#ifdef RGB_DI_PIN
+ #undef RGB_DI_PIN
+ #define RGB_DI_PIN F4
+ #undef RGBLED_NUM
+ #define RGBLED_NUM 2 // Number of LEDs
+#endif
+#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+/* Mouse Keys Configuration */
+#define MK_3_SPEED
+#define MK_W_INTERVAL_UNMOD 20
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c
new file mode 100644
index 0000000000..1ef77ccc6e
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,213 @@
+/* Copyright 2020 Brandon Schlack
+ *
+ * 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
+#include "brandonschlack.h"
+
+/**
+ * Layer Names
+ */
+#define _REEDER _BASE
+enum bdn9_layers {
+ _MEDIA = KEYMAP_LAYERS,
+ _NAVI,
+ _KARABINER
+};
+
+/**
+ * Keycodes & Macros
+ */
+#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
+#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
+#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
+#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
+
+// Tap Dances
+enum launchpad_dances {
+ TD_SHLD_LGHT = 0,
+ TD_SHLD_ADJT,
+ TD_REDR_H
+};
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_SHLD_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _LIGHT),
+ [TD_SHLD_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _ADJUST),
+ [TD_REDR_H] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_R)
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Reeder
+ * ┌──────┬──────┐
+ * │CmdTab│ View │
+ * ├──────┼──────┤
+ * │PrvSub│PrvItm│
+ * ├──────┼──────┤
+ * │NxtSub│NxtItm│
+ * ├──────┼──────┤
+ * │ Clr │ Sync │
+ * └──────┴──────┘
+ */
+[_REEDER] = LAYOUT( \
+ CMD_TAB, TD(TD_REDR_H), \
+ KC_P, KC_K, \
+ KC_N, KC_J, \
+ TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
+),
+
+/* Media
+ * ┌──────┬──────┐
+ * │ Mute │ Play │
+ * ├──────┼──────┤
+ * │ Vol+ │PrvTrk│
+ * ├──────┼──────┤
+ * │ Vol- │NxtTrk│
+ * ├──────┼──────┤
+ * │ Spce │ Plyr │
+ * └──────┴──────┘
+ */
+[_MEDIA] = LAYOUT( \
+ KC_MUTE, KC_MPLY, \
+ KC_VOLU, KC_MNXT, \
+ KC_VOLD, KC_MPRV, \
+ TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
+),
+
+/* Navigation
+ * ┌──────┬──────┐
+ * │ PTab │ NTab │
+ * ├──────┼──────┤
+ * │ SclL │ SclU │
+ * ├──────┼──────┤
+ * │ SclR │ SclD │
+ * ├──────┼──────┤
+ * │LstTab│ClsTab│
+ * └──────┴──────┘
+ */
+[_NAVI] = LAYOUT( \
+ PRV_TAB, NXT_TAB, \
+ MC_WH_L, MC_WH_U, \
+ MC_WH_R, MC_WH_D, \
+ TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
+),
+
+/* Macro
+ * ┌──────┬──────┐
+ * │ 1 │ 2 │
+ * ├──────┼──────┤
+ * │ 3 │ 4 │
+ * ├──────┼──────┤
+ * │ 5 │ 6 │
+ * ├──────┼──────┤
+ * │ 7 │ 8 │
+ * └──────┴──────┘
+ */
+[_KARABINER] = LAYOUT( \
+ KC_P1, KC_P2, \
+ KC_P3, KC_P4, \
+ KC_P5, KC_P6, \
+ TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
+),
+
+/* Lights
+ * ┌──────┬──────┐
+ * │ THM+ │ HUE+ │
+ * ├──────┼──────┤
+ * │ SAT- │ SAT+ │
+ * ├──────┼──────┤
+ * │ VAL- │ VAL+ │
+ * ├──────┼──────┤
+ * │ XXXX │ Mde+ │
+ * └──────┴──────┘
+ */
+[_LIGHT] = LAYOUT( \
+ RGB_THM, RGB_HUI, \
+ RGB_SAD, RGB_SAI, \
+ RGB_VAD, RGB_VAI, \
+ XXXXXXX, RGB_MOD \
+),
+
+/* Adjust
+ * ┌──────┬──────┐
+ * │ Make │ Rset │
+ * ├──────┼──────┤
+ * │ Redr │ Meda │
+ * ├──────┼──────┤
+ * │ Navi │ Mcro │
+ * ├──────┼──────┤
+ * │ Lght │ XXXX │
+ * └──────┴──────┘
+ */
+[_ADJUST] = LAYOUT( \
+ QM_MAKE, RESET, \
+ DF_REDR, DF_MEDA, \
+ DF_NAVI, DF_KBNR, \
+ TG_LGHT, XXXXXXX \
+)
+
+};
+
+void matrix_init_keymap(void) {
+}
+
+// Runs once after keyboard initializes
+void keyboard_post_init_keymap(void) {
+};
+
+/**
+ * Tap Dances
+ */
+void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
+ uint16_t keycode = 0;
+ switch (toggle_layer) {
+ case _LIGHT:
+ switch (get_highest_layer(layer_state)) {
+ case _REEDER:
+ keycode = KC_L;
+ break;
+ case _MEDIA:
+ keycode = KC_SPC;
+ break;
+ case _NAVI:
+ keycode = REO_TAB;
+ break;
+ case _KARABINER:
+ keycode = KC_P7;
+ break;
+ }
+ break;
+ case _ADJUST:
+ switch (get_highest_layer(layer_state)) {
+ case _REEDER:
+ keycode = KC_R;
+ break;
+ case _MEDIA:
+ keycode = MC_PLYR;
+ break;
+ case _NAVI:
+ keycode = CLS_TAB;
+ break;
+ case _KARABINER:
+ keycode = KC_P8;
+ break;
+ }
+ break;
+ }
+ if (!reset) {
+ register_code16(keycode);
+ } else {
+ unregister_code16(keycode);
+ }
+}
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md
new file mode 100644
index 0000000000..a91a1b80ac
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md
@@ -0,0 +1,31 @@
+# brandonschlack's layout for Launchpad
+Fun little macropad build, with an awesome case from [StrataKB](https://stratakb.com/store/cases/launchpad-v2-full-case).
+
+## Media Layer
+This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/)
+| | |
+|:-:|:-:|
+| Mute | Play/Pause |
+| Vol + | Next Track |
+| Vol - | Prev Track |
+| | Current Player |
+---
+
+## Keypad Layer
+This layer is used to send keypad keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/)
+| | |
+|:-:|:-:|
+| 1 | 2 |
+| 3 | 4 |
+| 5 | 6 |
+| 7 | 8 |
+---
+
+## Magic Layer
+This layer is used as a meta layer for the pad. This layer is accessed by holding key in Row 3, Col 0
+| | |
+|:-:|:-:|
+| MAKE | RESET |
+| **Media** Layer | **Keypad** Layer|
+| XXX | XXX |
+| ___ | XXX |
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk
new file mode 100644
index 0000000000..31c8f7b39d
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,13 @@
+# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
+IS_MACROPAD = yes
+
+# Use dfu bootloader for Elite-C
+BOOTLOADER = atmel-dfu
+
+# Build Options
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+CONSOLE_ENABLE = yes # Console for debug(+400)
+MOUSEKEY_ENABLE = yes # Use mouse keys for scrolling.
+COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant.
+TAP_DANCE_ENABLE = yes # Use tap dance
diff --git a/keyboards/maple_computing/launchpad/keymaps/default/keymap.c b/keyboards/maple_computing/launchpad/keymaps/default/keymap.c
new file mode 100644
index 0000000000..62dee131f8
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/default/keymap.c
@@ -0,0 +1,55 @@
+// Below layout is based upon /u/That-Canadian's planck layout
+#include QMK_KEYBOARD_H
+
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+
+#define _FUNC 15
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-------------.
+ * | 1 | 2 |
+ * |------+------|
+ * | 3 | 4 |
+ * |------+------|
+ * | 5 | 6 |
+ * |------+------|
+ * | FUNC | 8 |
+ * `-------------'
+ */
+[_QWERTY] = LAYOUT(
+ KC_1, KC_2,
+ KC_3, KC_4,
+ KC_5, KC_6,
+ MO(_FUNC), KC_8
+),
+
+/* Function
+ * ,-------------.
+ * | Q |CALDEL|
+ * |------+------|
+ * | A |TSKMGR|
+ * |------+------|
+ * | Z | X |
+ * |------+------|
+ * | | C |
+ * `-------------'
+ */
+[_FUNC] = LAYOUT(
+ KC_Q, CALTDEL,
+ KC_A, TSKMGR,
+ KC_Z, KC_X,
+ _______, KC_C
+)
+
+};
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h b/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h
new file mode 100644
index 0000000000..cae1450c15
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/config.h
@@ -0,0 +1,9 @@
+#pragma once
+
+/* Underlight Configuration */
+#define RGB_DI_PIN F4
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 2 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17 \ No newline at end of file
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c b/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c
new file mode 100644
index 0000000000..529fa91f65
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/keymap.c
@@ -0,0 +1,76 @@
+// Below layout is based upon /u/That-Canadian's planck layout
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _RGB 1
+#define _FUNC 15
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,-------------.
+ * | 1 | 2 |
+ * |------+------|
+ * | 3 | 4 |
+ * |------+------|
+ * | 5 | 6 |
+ * |------+------|
+ * | FUNC | RGB |
+ * `-------------'
+ */
+ [_QWERTY] = LAYOUT(
+ KC_1, KC_2,
+ KC_3, KC_4,
+ KC_5, KC_6,
+ MO(_FUNC), TG(_RGB)
+ ),
+
+ /* RGB
+ * ,-------------.
+ * | Mode-| Mode+|
+ * |------+------|
+ * | HUE- | HUE+ |
+ * |------+------|
+ * | SAT- | SAT+ |
+ * |------+------|
+ * |RGBTOG| |
+ * `-------------'
+ */
+ [_RGB] = LAYOUT(
+ RGB_RMOD, RGB_MOD,
+ RGB_HUD, RGB_HUI,
+ RGB_SAD, RGB_SAI,
+ RGB_TOG, KC_TRNS
+ ),
+
+ /* Function
+ * ,-------------.
+ * | Q |CALDEL|
+ * |------+------|
+ * | A |TSKMGR|
+ * |------+------|
+ * | Z | X |
+ * |------+------|
+ * | | C |
+ * `-------------'
+ */
+ [_FUNC] = LAYOUT(
+ KC_Q, CALTDEL,
+ KC_A, TSKMGR,
+ KC_Z, KC_X,
+ _______, KC_C
+ )
+
+};
+
+void matrix_init_user(void) {}
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md b/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md
new file mode 100644
index 0000000000..3f15ff9bc3
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/readme.md
@@ -0,0 +1,41 @@
+# Launch Pad
+
+![Launch Pad](https://i.imgur.com/WVTe0Ku.png)
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+A budget-minded, 4-8 key macro-pad with built in legs, plate & case.
+
+Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row.
+
+Supports 2u PCB-Mount stabilizers.
+
+Runs off of 1x Pro Micro & 8x diodes (1n4148).
+
+Optional "Reset" switch can be used on the PCB.
+
+A fantastic project for beginners to learn to solder, veteran's of the hobby who want to add an easy macro-pad to their collection, and everyone in between.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+Make example for this keyboard (after setting up your build environment):
+
+ make launchpad/rev1:default
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+
+# Under Glow
+
+![Underglow](https://i.imgur.com/3zFIOmu.jpg)
+
+SpaceCat now provides an underglow add-on kit. Please refer to the picture above for wiring.
+
+Make example for this keyboard (after setting up your build environment):
+
+ make launchpad/rev1:default_rgb
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+Due to PCB tolerance issues outside of our control, the snap-apart legs included on the PCB may need extra padding to prevent a small amount of wobbling once placed properly. We have included small, clear, and semi-permanent "glue dots" in each order (PCB Only -and- Full Kit) to help with this. You may also use plastic wrap, tape, Elmer's glue, hot glue, rubber cement, etc. We advise against using anything more "permanent" in case you wish to make changes to your Launch Pad in the future. It is also best to attach legs after all of your soldering and building is finished, to get the most accurate feel for your Launch Pad.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk b/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk
new file mode 100644
index 0000000000..1e3cebb145
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/default_rgb/rules.mk
@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/config.h b/keyboards/maple_computing/launchpad/keymaps/drashna/config.h
new file mode 100644
index 0000000000..b14becc25b
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/drashna/config.h
@@ -0,0 +1,31 @@
+/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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
+
+/* Underlight Configuration */
+#undef RGB_DI_PIN
+#define RGB_DI_PIN F5
+#define RGBLIGHT_ANIMATIONS
+#undef RGBLED_NUM
+#define RGBLED_NUM 8 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+#define DRIVER_LED_TOTAL RGBLED_NUM
+#define AUDIO_PIN B7
+#define AUDIO_CLICKY
diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c b/keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c
new file mode 100644
index 0000000000..f8e4d1a414
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c
@@ -0,0 +1,107 @@
+/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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
+
+enum local_layers {
+ _QWERTY,
+ _RGB,
+ _FUNC,
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,-------------.
+ * | 1 | 2 |
+ * |------+------|
+ * | 3 | 4 |
+ * |------+------|
+ * | 5 | 6 |
+ * |------+------|
+ * | FUNC | RGB |
+ * `-------------'
+ */
+ [_QWERTY] = LAYOUT( \
+ KC_1, KC_2, \
+ KC_3, KC_4, \
+ KC_5, KC_6, \
+ MO(_FUNC), TG(_RGB) \
+ ),
+
+ /* RGB
+ * ,-------------.
+ * | Mode-| Mode+|
+ * |------+------|
+ * | HUE- | HUE+ |
+ * |------+------|
+ * | SAT- | SAT+ |
+ * |------+------|
+ * |RGBTOG| |
+ * `-------------'
+ */
+ [_RGB] = LAYOUT( \
+ RGB_RMOD, RGB_MOD, \
+ RGB_HUD, RGB_HUI, \
+ RGB_SAD, RGB_SAI, \
+ RGB_TOG, KC_TRNS \
+ ),
+
+ /* Function
+ * ,-------------.
+ * | Q |CALDEL|
+ * |------+------|
+ * | A |TSKMGR|
+ * |------+------|
+ * | Z | X |
+ * |------+------|
+ * | | C |
+ * `-------------'
+ */
+ [_FUNC] = LAYOUT( \
+ KC_Q, CALTDEL, \
+ KC_A, TSKMGR, \
+ KC_Z, KC_X, \
+ _______, RESET \
+ )
+
+};
+
+
+
+
+#ifdef RGB_MATRIX_ENABLE
+ led_config_t g_led_config = {
+ {
+ { 7, 0 },
+ { 6, 1 },
+ { 5, 2 },
+ { 4, 3 },
+ },{
+ { 121, 2 }, { 121, 23 },
+ { 121, 41 }, { 121, 60 },
+ { 103, 2 }, { 103, 23 },
+ { 103, 41 }, { 103, 60 },
+ },{
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ }
+ };
+#endif
diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk b/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk
new file mode 100644
index 0000000000..c3b1e0a8b9
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk
@@ -0,0 +1,7 @@
+BOOTLOADER = atmel-dfu
+
+RGBLIGHT_ENABLE = no
+AUDIO_ENABLE = no
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/maple_computing/launchpad/keymaps/via/keymap.c b/keyboards/maple_computing/launchpad/keymaps/via/keymap.c
new file mode 100644
index 0000000000..ac25fa1e1e
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/via/keymap.c
@@ -0,0 +1,94 @@
+// Below layout is based upon /u/That-Canadian's planck layout
+#include QMK_KEYBOARD_H
+
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layer_names {
+ _QWERTY,
+ _FUNC,
+ _RGB,
+ _LAYER3
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-------------.
+ * | 1 | 2 |
+ * |------+------|
+ * | 3 | 4 |
+ * |------+------|
+ * | 5 | 6 |
+ * |------+------|
+ * | FUNC | 8 |
+ * `-------------'
+ */
+[_QWERTY] = LAYOUT(
+ KC_1, KC_2,
+ KC_3, KC_4,
+ KC_5, KC_6,
+ MO(_FUNC), TG(_RGB)
+),
+
+/* Function
+ * ,-------------.
+ * | Q |CALDEL|
+ * |------+------|
+ * | A |TSKMGR|
+ * |------+------|
+ * | Z | X |
+ * |------+------|
+ * | | C |
+ * `-------------'
+ */
+[_FUNC] = LAYOUT(
+ KC_Q, CALTDEL,
+ KC_A, TSKMGR,
+ KC_Z, KC_X,
+ KC_TRNS, KC_C
+),
+
+/* RGB
+ * ,-------------.
+ * | MODE-| MODE+|
+ * |------+------|
+ * | HUE- | HUE+ |
+ * |------+------|
+ * | SAT- | SAT+ |
+ * |------+------|
+ * |TOGGLE| |
+ * `-------------'
+ */
+[_RGB] = LAYOUT(
+ RGB_RMOD, RGB_MOD,
+ RGB_HUD, RGB_HUI,
+ RGB_SAD, RGB_SAI,
+ RGB_TOG, KC_TRNS
+),
+
+/* Layer 3
+ * ,-------------.
+ * | | |
+ * |------+------|
+ * | | |
+ * |------+------|
+ * | | |
+ * |------+------|
+ * | | |
+ * `-------------'
+ */
+[_LAYER3] = LAYOUT(
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS
+)
+
+};
diff --git a/keyboards/maple_computing/launchpad/keymaps/via/rules.mk b/keyboards/maple_computing/launchpad/keymaps/via/rules.mk
new file mode 100644
index 0000000000..37484844f5
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/maple_computing/launchpad/launchpad.c b/keyboards/maple_computing/launchpad/launchpad.c
new file mode 100644
index 0000000000..cc2812a76c
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/launchpad.c
@@ -0,0 +1 @@
+#include "launchpad.h"
diff --git a/keyboards/maple_computing/launchpad/launchpad.h b/keyboards/maple_computing/launchpad/launchpad.h
new file mode 100644
index 0000000000..f2a1b40588
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/launchpad.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#if defined(KEYBOARD_maple_computing_launchpad_rev1)
+# include "rev1.h"
+#endif
+
+#include "quantum.h"
diff --git a/keyboards/maple_computing/launchpad/readme.md b/keyboards/maple_computing/launchpad/readme.md
new file mode 100644
index 0000000000..1dc7a9b4cf
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/readme.md
@@ -0,0 +1,32 @@
+Launch Pad
+===
+
+![Launch Pad](https://i.imgur.com/WVTe0Ku.png)
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+A budget-minded, 4-8 key macro-pad with built in legs, plate & case.
+
+Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row.
+
+Supports 2u PCB-Mount stabilizers.
+
+Runs off of 1x Pro Micro & 8x diodes (1n4148).
+
+Optional "Reset" switch can be used on the PCB.
+
+A fantastic project for beginners to learn to solder, veteran's of the hobby who want to add an easy macro-pad to their collection, and everyone in between.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/launchpad/rev1:default
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+Due to PCB tolerance issues outside of our control, the snap-apart legs included on the PCB may need extra padding to prevent a small amount of wobbling once placed properly. We have included small, clear, and semi-permanent "glue dots" in each order (PCB Only -and- Full Kit) to help with this. You may also use plastic wrap, tape, Elmer's glue, hot glue, rubber cement, etc. We advise against using anything more "permanent" in case you wish to make changes to your Launch Pad in the future. It is also best to attach legs after all of your soldering and building is finished, to get the most accurate feel for your Launch Pad.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/keyboards/maple_computing/launchpad/rev1/config.h b/keyboards/maple_computing/launchpad/rev1/config.h
new file mode 100644
index 0000000000..debc28fab3
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/rev1/config.h
@@ -0,0 +1,33 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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.h"
+
+#define DEVICE_VER 0x0001
+
+/* Let's Macro V2 pin-out */
+#define MATRIX_ROW_PINS { C6, B1, B3, D7 }
+#define MATRIX_COL_PINS { D2, F7 }
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
+
+#define RGBLED_NUM 10
+#define RGB_DI_PIN F6
+#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/maple_computing/launchpad/rev1/info.json b/keyboards/maple_computing/launchpad/rev1/info.json
new file mode 100644
index 0000000000..c8ba35c966
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/rev1/info.json
@@ -0,0 +1,22 @@
+{
+ "keyboard_name": "Launch Pad rev1",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/launchpad/rev1/rev1.c b/keyboards/maple_computing/launchpad/rev1/rev1.c
new file mode 100644
index 0000000000..cc2812a76c
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/rev1/rev1.c
@@ -0,0 +1 @@
+#include "launchpad.h"
diff --git a/keyboards/maple_computing/launchpad/rev1/rev1.h b/keyboards/maple_computing/launchpad/rev1/rev1.h
new file mode 100644
index 0000000000..2ea6e7e775
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/rev1/rev1.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include "../launchpad.h"
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k00, k01, \
+ k10, k11, \
+ k20, k21, \
+ k30, k31 \
+) { \
+ { k00, k01 }, \
+ { k10, k11 }, \
+ { k20, k21 }, \
+ { k30, k31 } \
+}
diff --git a/keyboards/maple_computing/launchpad/rev1/rules.mk b/keyboards/maple_computing/launchpad/rev1/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/rev1/rules.mk
diff --git a/keyboards/maple_computing/launchpad/rules.mk b/keyboards/maple_computing/launchpad/rules.mk
new file mode 100644
index 0000000000..67e76c6244
--- /dev/null
+++ b/keyboards/maple_computing/launchpad/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+
+DEFAULT_FOLDER = maple_computing/launchpad/rev1
diff --git a/keyboards/maple_computing/lets_split_eh/.noci b/keyboards/maple_computing/lets_split_eh/.noci
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/.noci
diff --git a/keyboards/maple_computing/lets_split_eh/config.h b/keyboards/maple_computing/lets_split_eh/config.h
new file mode 100644
index 0000000000..787b9783b8
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/config.h
@@ -0,0 +1,35 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0xFEED
+#define PRODUCT_ID 0xE401
+#define DEVICE_VER 0x0100
+#define MANUFACTURER That-Canadian
+#define PRODUCT Lets Split Eh?
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
diff --git a/keyboards/maple_computing/lets_split_eh/eh/config.h b/keyboards/maple_computing/lets_split_eh/eh/config.h
new file mode 100644
index 0000000000..43e0266502
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/eh/config.h
@@ -0,0 +1,47 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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"
+
+/* Let's Split EH? pin-out */
+#define MATRIX_ROW_PINS { B1, B3, D7, B4 }
+#define MATRIX_COL_PINS { F4, F5, C6, B6, B5, D5 }
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN B7
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN B2
+#define RGBLED_NUM 12 // Number of LEDs (each hand)
+#define RGBLED_SPLIT { 6, 6 }
+#define RGBLIGHT_ANIMATIONS
+
+/* Split Defines */
+#define SPLIT_HAND_PIN D3
+#define SOFT_SERIAL_PIN D0
+
+// The 'EH' has previously forced use of I2C so this default has been kept
+// however users can undef to use serial
+#define USE_I2C
diff --git a/keyboards/maple_computing/lets_split_eh/eh/eh.c b/keyboards/maple_computing/lets_split_eh/eh/eh.c
new file mode 100644
index 0000000000..d5a312085d
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/eh/eh.c
@@ -0,0 +1 @@
+#include "lets_split_eh.h"
diff --git a/keyboards/maple_computing/lets_split_eh/eh/eh.h b/keyboards/maple_computing/lets_split_eh/eh/eh.h
new file mode 100644
index 0000000000..ff37229787
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/eh/eh.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "lets_split_eh.h"
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
+ L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05 }, \
+ { L10, L11, L12, L13, L14, L15 }, \
+ { L20, L21, L22, L23, L24, L25 }, \
+ { L30, L31, L32, L33, L34, L35 }, \
+ { R00, R01, R02, R03, R04, R05 }, \
+ { R10, R11, R12, R13, R14, R15 }, \
+ { R20, R21, R22, R23, R24, R25 }, \
+ { R30, R31, R32, R33, R34, R35 } \
+ }
+
+#define LAYOUT_ortho_4x12 LAYOUT
diff --git a/keyboards/maple_computing/lets_split_eh/eh/info.json b/keyboards/maple_computing/lets_split_eh/eh/info.json
new file mode 100644
index 0000000000..c241fa3813
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/eh/info.json
@@ -0,0 +1,62 @@
+{
+ "keyboard_name": "Let's Split",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+ {"x":12, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3},
+ {"x":12, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/lets_split_eh/eh/rules.mk b/keyboards/maple_computing/lets_split_eh/eh/rules.mk
new file mode 100644
index 0000000000..0c7e1cb04e
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/eh/rules.mk
@@ -0,0 +1,5 @@
+BACKLIGHT_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/README.md b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/README.md
new file mode 100644
index 0000000000..fcb7037937
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/README.md
@@ -0,0 +1,7 @@
+# Lets Split Eh Layout
+
+Check out [user readme](../../../../users/bbaserdem/README.md) for more info.
+
+# Usage
+
+Fill in after flashing
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/config.h b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/config.h
new file mode 100755
index 0000000000..47be76567e
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/config.h
@@ -0,0 +1,4 @@
+#ifndef CONFIG_KEYMAP_H
+#define CONFIG_KEYMAP_H
+#include "../../config.h"
+#endif
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c
new file mode 100755
index 0000000000..92e72bbf1c
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c
@@ -0,0 +1,27 @@
+#include "lets_split_eh.h"
+#include "bbaserdem.h"
+
+
+void matrix_init_keymap (void) {
+}
+
+uint32_t layer_state_set_keymap(uint32_t state) {
+ return state;
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // Main Dvorak layer
+ [_DV] = LAYOUT_letssplit_wrapper(DVORAK),
+ // Turkish and special character overlay
+ [_AL] = LAYOUT_letssplit_wrapper(ALTCHAR),
+ // Gaming layer
+ [_GA] = LAYOUT_letssplit_wrapper(GAME),
+ // Numbers layer
+ [_NU] = LAYOUT_letssplit_wrapper(NUMBERS),
+ // Settings layer
+ [_SE] = LAYOUT_letssplit_wrapper(SETTINGS),
+ // Mouse emulation layer
+ [_MO] = LAYOUT_letssplit_wrapper(MOUSE),
+ // Music layer
+ [_MU] = LAYOUT_letssplit_wrapper(MUSIC),
+};
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/rules.mk
new file mode 100755
index 0000000000..7a37e989d8
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/rules.mk
@@ -0,0 +1,8 @@
+# Build options
+
+BACKLIGHT_ENABLE = no # Switch LEDs
+MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
+RGBLIGHT_ENABLE = yes # LED strips
+TAP_DANCE_ENABLE = no # Use multi-tap features
+AUDIO_ENABLE = no # Audio stuff
+
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/default/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/default/keymap.c
new file mode 100644
index 0000000000..3f41051cf6
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/default/keymap.c
@@ -0,0 +1,120 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _FUNCTION,
+ _ADJUST,
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define FUNCTION MO(_FUNCTION)
+#define ADJUST MO(_ADJUST)
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Func | A | S | D | F | G | H | J | K | L | ; | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | ` | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ FUNCTION, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT(
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE,
+ _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
+ KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
+ _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |Taskmg| | | | | | |RGBMOD|RGBVAI|RGBSAI|RGBHUI|caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | |RGBRMO|RGBVAD|RGBSAD|RGBHUD|RGBTOG|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | |BLSTEP|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | RESET|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT(
+ TSKMGR, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL,
+ _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET
+),
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | Up | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTION] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/config.h b/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/config.h
new file mode 100644
index 0000000000..526c0837c7
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/config.h
@@ -0,0 +1,21 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/keymap.c
new file mode 100644
index 0000000000..06ddace84c
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/keymap.c
@@ -0,0 +1,159 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _DVORAK 0
+
+#define _LOWER 3
+#define _RAISE 4
+#define _FUNCTION 15
+#define _ADJUST 16
+
+enum custom_keycodes {
+ DVORAK = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | ' | , | . | P | Y | Tab | Bksp | F | G | C | R | L |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | A | O | E | U | I | Enter| Enter| D | H | T | N | S |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | ; | Q | J | K | X | Shift| Shift| B | M | W | V | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | Shift|Space |Lower |Raise |Space | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT( \
+ KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TAB, KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, \
+ KC_A, KC_O, KC_E, KC_U, KC_I, KC_ENT, KC_ENT, KC_D, KC_H, KC_T, KC_N, KC_S, \
+ KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, OSM(MOD_LSFT), OSM(MOD_RSFT), KC_B, KC_M, KC_W, KC_V, KC_Z, \
+ KC_LCTL, KC_LGUI, KC_LALT, OSM(MOD_LSFT), KC_SPC, LOWER, RAISE, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/*[BASE] = LAYOUT(
+ * KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
+ * KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S,
+ * KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z,
+ * OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT)
+ * ),
+ *KC_GRV,
+ */
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT( \
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE, \
+ _______, _______, _______, _______, KC_BSPC, _______, _______, KC_BSPC, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \
+ KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, \
+ _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |Taskmg| | | | | | | |RGBVAI|RGBSAI|RGBHUI|caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | |Qwerty|RGBVAD|RGBSAD|RGBHUD|RGBTOG|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | |BLSTEP|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | RESET|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT( \
+ TSKMGR, _______, _______, _______, _______, _______, KC_DEL, _______, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL, \
+ _______, _______, _______, _______, _______, _______, _______, DVORAK, RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \
+),
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | Up | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTION] = LAYOUT( \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+)
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/doxish_dvorak/rules.mk
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/config.h b/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/config.h
new file mode 100644
index 0000000000..c535299e74
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/config.h
@@ -0,0 +1,23 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+ // place overrides here
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/keymap.c
new file mode 100644
index 0000000000..9e67b7dda8
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/keymap.c
@@ -0,0 +1,120 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _FUNCTION,
+ _ADJUST,
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define FUNCTION MO(_FUNCTION)
+#define ADJUST MO(_ADJUST)
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT( \
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT( \
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | RESET| | | | | | |RGBMOD|RGBVAI|RGBSAI|RGBHUI|caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | |RGBRMO|RGBVAD|RGBSAD|RGBHUD|RGBTOG|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | |BLSTEP|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT( \
+ RESET, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL, \
+ _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+),
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | Up | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTION] = LAYOUT( \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+)
+
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/mikethetiger/rules.mk
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/msiu/config.h b/keyboards/maple_computing/lets_split_eh/keymaps/msiu/config.h
new file mode 100644
index 0000000000..526c0837c7
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/msiu/config.h
@@ -0,0 +1,21 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/msiu/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/msiu/keymap.c
new file mode 100644
index 0000000000..af5c98241a
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/msiu/keymap.c
@@ -0,0 +1,195 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _DVORAK 1
+
+#define _LOWER 3
+#define _RAISE 4
+
+#define _NUMB 14
+#define _FUNC 15
+#define _ADJUST 16
+
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ DVORAK,
+ LOWER,
+ RAISE,
+ ADJUST
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl |Hyper | Alt | GUI |Lower | Func |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT( \
+ LT(_NUMB, KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \
+ KC_LCTL, KC_HYPR, KC_LALT, KC_LGUI, LOWER, MO(_FUNC), KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+// Dvorak
+[_DVORAK] = LAYOUT( \
+ _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______, \
+ _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
+ _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______ , \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+),
+
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT( \
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE, \
+ _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
+ _______, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE, \
+ _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |Taskmg| | | | | | | |RGBVAI|RGBSAI|RGBHUI|caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | |Qwerty|RGBVAD|RGBSAD|RGBHUD|RGBTOG|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | |BLSTEP|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | RESET|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT( \
+ RGB_TOG, RGB_VAI, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, \
+ RGB_MOD, RGB_VAD, RGB_SAD, RGB_HUD, _______, _______, _______, QWERTY, DVORAK, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \
+),
+
+/* FUNC
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | Up | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNC] = LAYOUT( \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_PSCR, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+),
+
+// Numpad
+[_NUMB] = LAYOUT( \
+ _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, KC_BSPC, \
+ _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, _______, _______, _______ \
+)
+
+};
+
+void persistent_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // case QWERTY:
+ // if (record->event.pressed) {
+ // persistent_default_layer_set(1UL<<_QWERTY);
+ // }
+ // return false;
+ // break;
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/resfury/config.h b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/config.h
new file mode 100644
index 0000000000..0055bbf459
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/config.h
@@ -0,0 +1,23 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+#define EE_HANDS \ No newline at end of file
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/resfury/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/keymap.c
new file mode 100644
index 0000000000..17f790675b
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/keymap.c
@@ -0,0 +1,189 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum resfury_layers {
+ _COLEMAK,
+ _DVORAK,
+ _QWERTY
+};
+
+enum resfury_keycodes {
+ COLEMAK = SAFE_RANGE,
+ DVORAK,
+ QWERTY,
+};
+
+#define _LOWER 3
+#define _RAISE 4
+#define _FUNCTION 15
+#define _ADJUST 16
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define FUNCTION MO(_FUNCTION)
+#define ADJUST MO(_ADJUST)
+
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | F | P | G | J | L | U | Y | ; | \ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |F/TAB | A | R | S | T | D | H | N | E | I | O | ' |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | Ent |Lower | Bksp | Spc | Raise| Left | Up | Down |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT( \
+ KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \
+ LT(_FUNCTION,KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT), \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \
+),
+
+ /* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | ' | , | . | P | Y | F | G | C | R | L | / |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |F/TAB | A | O | E | U | I | D | H | T | R | L | - |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | Ent |Lower | Bksp | Spc | Raise| Left | Up | Down |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT( \
+ KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, \
+ LT(_FUNCTION,KC_TAB), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
+ OSM(MOD_LSFT), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_RSFT), \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \
+),
+
+
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | \ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |F/TAB | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | Ent |Lower | Bksp | Spc | Raise| Left | Up | Down |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT( \
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \
+ LT(_FUNCTION,KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT), \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | ~ | ` | Mute | Ctl/ | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp | Spc |Adjust| Play | Vol+ | Vol- | Next |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT( \
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_GRV), KC_GRV, KC_MUTE, RCTL(KC_BSLS), KC_PIPE, \
+ _______, _______, _______, _______, _______, KC_BSPC, KC_SPC, ADJUST, KC_MPLY, KC_VOLU, KC_VOLD, KC_MNXT \
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | - | + | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | 7 | 8 | 9 | * | / | * | / | . | Mute | Ctl/ | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Adjust| Bksp | Spc |Raise | Play | Vol+ | Vol- | Next |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \
+ _______, KC_7, KC_8, KC_9, KC_ASTR, KC_SLSH, KC_ASTR, KC_SLSH, KC_DOT, KC_MUTE, RCTL(KC_BSLS), KC_BSLS, \
+ _______, KC_COMM, KC_0, KC_DOT, ADJUST, KC_BSPC, KC_SPC, _______, KC_MPLY, KC_VOLU, KC_VOLD, KC_MNXT \
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |Taskmg| | | | | | | |RGBVAI|RGBSAI|RGBHUI|caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |_COLEMAK| | | | | | | |RGBVAD|RGBSAD|RGBHUD|RGBTOG|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |_DVORAK| | | | | | | | | |RGBMOD|BLSTEP|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |_QWERTY| | | | | | | | | | | RESET|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT( \
+ TSKMGR, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL, \
+ DF(_COLEMAK), _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \
+ DF(_DVORAK), _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, BL_STEP, \
+ DF(_QWERTY), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \
+),
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * | Caps | | | | | | S(Hm)| Home | Up | End |S(End)| |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | Ctrl | Shift| Alt | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTION] = LAYOUT( \
+ KC_CAPS, _______, _______, _______, _______, _______, S(KC_HOME), KC_HOME, KC_UP, KC_END, S(KC_END), _______, \
+ _______, KC_LCTL, KC_LSFT, KC_LALT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+)
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ break;
+
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ break;
+
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/resfury/readme.md b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/readme.md
new file mode 100644
index 0000000000..6a882307b7
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/readme.md
@@ -0,0 +1,7 @@
+![Let's Split Eh?](https://imgur.com/a/riUxwpl)
+
+# ResFury Let's Split, Eh Layout
+
+This layout specializes the Let's Split, Eh for Colevrak users that occasionally let others play with their toys. Adjust layer allows swapping to Colemak/Dvorak/Qwerty alphas. Heavily influenced by the default planck layout, but with up/down switched, a left hand 10-key, remapped backspace, and a few convenience keys.
+
+Master set by EE_HANDS method. \ No newline at end of file
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/resfury/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/rules.mk
new file mode 100644
index 0000000000..7ad666d1a3
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/resfury/rules.mk
@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md b/keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md
new file mode 100644
index 0000000000..d54ed6856f
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md
@@ -0,0 +1,7 @@
+# Lets Split Eh Layout
+
+Check out [user readme](../../../../users/romus/README.md) for more info.
+
+# Usage
+
+Fill in after flashing
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c
new file mode 100644
index 0000000000..ba5b75a5cf
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c
@@ -0,0 +1,28 @@
+#include QMK_KEYBOARD_H
+#include "romus.h"
+
+
+void matrix_init_keymap (void) {
+}
+
+uint32_t layer_state_set_keymap(uint32_t state) {
+
+ return state;
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // Main Dvorak layer
+ [_DV] = LAYOUT_letssplit_wrapper(DVORAK),
+ // Turkish and special character overlay
+ [_AL] = LAYOUT_letssplit_wrapper(ALTCHAR),
+ // Gaming layer
+ [_GA] = LAYOUT_letssplit_wrapper(GAME),
+ // Numbers layer
+ [_NU] = LAYOUT_letssplit_wrapper(NUMBERS),
+ // Settings layer
+ [_SE] = LAYOUT_letssplit_wrapper(SETTINGS),
+ // Mouse emulation layer
+ [_MO] = LAYOUT_letssplit_wrapper(MOUSE),
+ // Music layer
+ [_MU] = LAYOUT_letssplit_wrapper(MUSIC),
+};
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk
new file mode 100644
index 0000000000..ad7dd4c474
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk
@@ -0,0 +1,7 @@
+# Build options
+
+BACKLIGHT_ENABLE = no # Switch LEDs
+MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
+RGBLIGHT_ENABLE = yes # LED strips
+TAP_DANCE_ENABLE = yes # Use multi-tap features
+AUDIO_ENABLE = no # Audio stuff
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/config.h b/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/config.h
new file mode 100644
index 0000000000..a1df337bd9
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/config.h
@@ -0,0 +1,26 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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/>.
+*/
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#endif \ No newline at end of file
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/keymap.c
new file mode 100644
index 0000000000..bba9a02c8c
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/keymap.c
@@ -0,0 +1,166 @@
+#include QMK_KEYBOARD_H
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+
+#define _LOWER 3
+#define _RAISE 4
+#define _FUNCTION 15
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Func | A | S | D | F | G | H | J | K | L | ; | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | ` | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT( \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT( \
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE, \
+ _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
+ _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \
+ KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, \
+ _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |Taskmg| | | | | | | |RGBVAI|RGBSAI|RGBHUI|caltde|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | |Qwerty|RGBVAD|RGBSAD|RGBHUD|RGBTOG|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | |BLSTEP|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | RESET|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT( \
+ TSKMGR, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL, \
+ _______, _______, _______, _______, _______, _______, _______, QWERTY, RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \
+),
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | Up | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | Left | Down |Right | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTION] = LAYOUT( \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+)
+
+};
+
+void persistent_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ persistent_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keymaps/that_canadian/rules.mk
diff --git a/keyboards/maple_computing/lets_split_eh/lets_split_eh.c b/keyboards/maple_computing/lets_split_eh/lets_split_eh.c
new file mode 100644
index 0000000000..37075aa67d
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/lets_split_eh.c
@@ -0,0 +1,16 @@
+#include "lets_split_eh.h"
+
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+
+ {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}},
+ {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}},
+ {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}},
+ {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}},
+ {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
+ {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
+ {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
+ {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
+};
+#endif
diff --git a/keyboards/maple_computing/lets_split_eh/lets_split_eh.h b/keyboards/maple_computing/lets_split_eh/lets_split_eh.h
new file mode 100644
index 0000000000..aae072e0b6
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/lets_split_eh.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include "quantum.h"
+
+#ifdef KEYBOARD_maple_computing_lets_split_eh_eh
+ #include "eh.h"
+#endif
diff --git a/keyboards/maple_computing/lets_split_eh/readme.md b/keyboards/maple_computing/lets_split_eh/readme.md
new file mode 100644
index 0000000000..90ae5393d1
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/readme.md
@@ -0,0 +1,13 @@
+# Let's Split Eh?
+
+![Let's Split Eh?](https://i.imgur.com/VMQG4qw.jpg?1)
+
+This is a split 40% ortho board. It is the exact same footprint and the Let's Split keyboard by wootpatoot. This board has USB-C / RGB Underglow / and is all on-board. Meant as a drop-in replacement for the V2 Let's Split.
+
+Keyboard Maintainer: [Christopher Poole (That-Canadian)](https://github.com/That-Canadian)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/lets_split_eh/eh:default
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/maple_computing/lets_split_eh/rules.mk b/keyboards/maple_computing/lets_split_eh/rules.mk
new file mode 100644
index 0000000000..325d4e278c
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/rules.mk
@@ -0,0 +1,24 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+
+SPLIT_KEYBOARD = yes
+
+LAYOUTS = ortho_4x12
+
+DEFAULT_FOLDER = maple_computing/lets_split_eh/eh
diff --git a/keyboards/maple_computing/minidox/.noci b/keyboards/maple_computing/minidox/.noci
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/maple_computing/minidox/.noci
diff --git a/keyboards/maple_computing/minidox/config.h b/keyboards/maple_computing/minidox/config.h
new file mode 100644
index 0000000000..2c71378961
--- /dev/null
+++ b/keyboards/maple_computing/minidox/config.h
@@ -0,0 +1,61 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0xFEED
+#define PRODUCT_ID 0x3060
+#define MANUFACTURER That-Canadian
+#define PRODUCT MiniDox
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 5
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* 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
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/maple_computing/minidox/keymaps/alairock/config.h b/keyboards/maple_computing/minidox/keymaps/alairock/config.h
new file mode 100644
index 0000000000..6b0069f4b2
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/alairock/config.h
@@ -0,0 +1,39 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+Copyright 2018 Skyler Lewis
+
+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/>.
+*/
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define USE_SERIAL
+
+#define EE_HANDS
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D7
+
+#define RGBLED_NUM 8 // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+#endif
diff --git a/keyboards/maple_computing/minidox/keymaps/alairock/keymap.c b/keyboards/maple_computing/minidox/keymaps/alairock/keymap.c
new file mode 100644
index 0000000000..c592b1a6a9
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/alairock/keymap.c
@@ -0,0 +1,157 @@
+// Note: this is a modification of that_canadian's config, albeit heavily modified.
+// this layout turns your left thumb cluster into something more familiar.
+
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z | X | C | V | B | | N | M | , | . | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | Shift/Esc | GUI/Tab| | | RAISE| LOWER |
+ * `-------------|BSpace| |Space |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_QWERTY] = LAYOUT( \
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
+ SFT_T(KC_ESC), GUI_T(KC_TAB), KC_BSPC, KC_SPC, RAISE, LOWER \
+),
+/* Raise
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Tab | VOLU | VOLD | PLAY | MFFD | | MUTE | - | = | [ | ] |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Ctrl| ` | GUI | Alt | MRWD | | | | | \ | ' |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | CTRL | BSPC | | | | | |
+ * `-------------| Enter| | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_RAISE] = LAYOUT( \
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
+ KC_TAB, KC_VOLD, KC_VOLU, KC_MPLY, KC_MFFD, KC_MUTE, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \
+ _______, KC_GRV, KC_LGUI, KC_LALT, KC_MRWD, _______, _______, _______, KC_BSLS, KC_QUOT, \
+ KC_LCTRL, KC_BSPC, KC_ENT, _______, _______, _______ \
+),
+
+/* Lower
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Esc | VOLU | VOLD | PLAY | MFFD | | MUTE | _ | + | { | } |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Caps| ~ | | | MRWD | | | | | | | " |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | RAISE | DEL | | | | | |
+ * `-------------| | | Enter|------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_LOWER] = LAYOUT( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
+ KC_ESC, KC_VOLD, KC_VOLU, KC_MPLY, KC_MFFD, KC_MUTE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \
+ KC_CAPS, KC_TILD, _______, _______, KC_MRWD, _______, _______, _______, KC_PIPE, KC_DQT, \
+ RAISE, KC_DEL, _______, KC_ENT, _______, _______ \
+),
+
+/* Adjust (Lower + Raise)
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | Up | F9 | F10 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F11 | F12 | |RGBSAI|RGBSAD| | | Left | Down |Right |caltde|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Reset|RGBTOG|RGBMOD|RGBHUI|RGBHUD| |RGBVAI|RGBVAD| F8 |Taskmg| |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_ADJUST] = LAYOUT( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, \
+ KC_F11, KC_F12, RGB_RMOD, RGB_SAI, RGB_SAD, _______, KC_LEFT, KC_DOWN, KC_RGHT, CALTDEL, \
+ RESET, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_F8, TSKMGR, _______, \
+ _______, _______, _______, _______, _______, _______ \
+)
+};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/minidox/keymaps/alairock/rules.mk b/keyboards/maple_computing/minidox/keymaps/alairock/rules.mk
new file mode 100644
index 0000000000..ebada165ae
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/alairock/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+EXTRAKEY_ENABLE = yes
diff --git a/keyboards/maple_computing/minidox/keymaps/bepo/config.h b/keyboards/maple_computing/minidox/keymaps/bepo/config.h
new file mode 100644
index 0000000000..7338c24c68
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/bepo/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define USE_SERIAL
+
+#define EE_HANDS
+#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/maple_computing/minidox/keymaps/bepo/keymap.c b/keyboards/maple_computing/minidox/keymaps/bepo/keymap.c
new file mode 100644
index 0000000000..331a22314d
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/bepo/keymap.c
@@ -0,0 +1,109 @@
+#include QMK_KEYBOARD_H
+#include "keymap_bepo.h"
+
+enum layers {
+ _BEPO,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+#define TABLO LT(_LOWER, KC_TAB)
+#define ENTRA LT(_RAISE, KC_ENTER)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* BEPO
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | B | W | P | O | ’ | | ^ | V | D | L | J |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | U | I | E | , | | C | T | S | R | N |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z/GUI| Y/Alt| X/Ctl| ./Sft| K | | M | Q/Sft| G/Ctl| H/Alt| F/GUI|
+ * `----------------------------------' `----------------------------------'
+ * ,------.------.------. ,------,------.------.
+ * | Del | Tab | | | |Enter |Escape|
+ * | | LOWER| Space| |BckSpc|RAISE | |
+ * `------'------| | | |------'------'
+ * | | | |
+ * `------' `------'
+ */
+[_BEPO] = LAYOUT(
+ BP_B, BP_W, BP_P, BP_O, BP_QUOT, BP_DCIR, BP_V , BP_D, BP_L, BP_J,
+ BP_A, BP_U, BP_I, BP_E, BP_COMM, BP_C, BP_T, BP_S, BP_R, BP_N,
+ LGUI_T(BP_Z), ALT_T(BP_Y), CTL_T(BP_X), SFT_T(BP_DOT), BP_K, BP_M, SFT_T(BP_Q), CTL_T(BP_G), ALT_T(BP_H), LGUI_T(BP_F),
+ KC_DEL, TABLO, KC_SPC, KC_BSPC, ENTRA , KC_ESC
+),
+
+/* Lower.
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | | | É | & | œ | È | | PgUp | Home | Up | End |ScrlUp|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | æ | Ù | ¨ | € | $ | | PgDn | Left | Down | Right|ScrlDn|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | À | Alt | Ctl | Shift| Ç | | | Shift| Ctl | Alt | |
+ * `----------------------------------' `----------------------------------'
+ * ,------,------,------. ,------,------,------.
+ * | | | | | | | |
+ * `------'------| | | |------'------'
+ * | | | |
+ * `------' `------'
+ */
+[_LOWER] = LAYOUT(
+ ALGR(BP_B), BP_EACU, ALGR(BP_P), ALGR(BP_O), BP_EGRV, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_MS_WH_UP,
+ ALGR(BP_A), ALGR(BP_U), ALGR(BP_I), ALGR(BP_E), BP_DLR, KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_DOWN,
+ BP_AGRV, KC_LALT, KC_LCTL, KC_LSFT, BP_CCED, _______, KC_LSFT, KC_LCTL, KC_LALT, _______,
+ _______, _______, _______, _______, _______, _______
+),
+
+/* Raise
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | " | < | > | ( | ) | | @ | + | - | / | * |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ` | { | } | [ | ] | | ~ | = | % | \ | # |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | | | Alt | Ctl | Shift| ' | | | Shift| Ctl | Alt | & |
+ * `----------------------------------' `----------------------------------'
+ * ,------,------,------. ,------,------,------.
+ * | | | | | | | |
+ * `------'------| _ | | |------'------'
+ * | | | |
+ * `------' `------'
+ */
+[_RAISE] = LAYOUT(
+ BP_DQUO, ALGR(BP_LDAQ), ALGR(BP_RDAQ), BP_LPRN, BP_RPRN, BP_AT, BP_PLUS, BP_MINS, BP_SLSH, BP_ASTR,
+ S(BP_PERC), ALGR(BP_Y), ALGR(BP_X), ALGR(BP_LPRN), ALGR(BP_RPRN), ALGR(BP_K), BP_EQL, BP_PERC, ALGR(BP_AGRV), S(BP_DLR),
+ ALGR(BP_B), KC_LALT, KC_LCTL, KC_LSFT, ALGR(BP_COMM), _______, KC_LSFT, KC_LCTL, KC_LALT, ALGR(BP_P),
+ _______, _______, ALGR(KC_SPC), _______, _______, _______
+),
+
+/* Adjust (Lower + Raise)
+ * (GUI, ALT, Ctrl, Shft ONLY on left-hand home row)
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F11 | Alt | Ctl | Shift| | | | Shift| Ctl | Alt | F12 |
+ * `----------------------------------' `----------------------------------'
+ * ,------,------,------. ,------,------,------.
+ * | | | | | | | |
+ * `------'------| | | |------'------'
+ * | | | |
+ * `------' `------'
+ */
+[_ADJUST] = LAYOUT(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ S(BP_DQUO), S(BP_LDAQ), S(BP_RDAQ), S(BP_LPRN), S(BP_RPRN), S(BP_AT), S(BP_PLUS), S(BP_MINS), S(BP_SLSH), S(BP_ASTR),
+ KC_F11, KC_LALT, KC_LCTL, KC_LSFT, _______, _______, KC_LSFT, KC_LCTL, KC_LALT, KC_F12 ,
+ _______, _______, _______, _______, _______, _______
+)
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
diff --git a/keyboards/maple_computing/minidox/keymaps/bepo/readme.md b/keyboards/maple_computing/minidox/keymaps/bepo/readme.md
new file mode 100644
index 0000000000..f928c94471
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/bepo/readme.md
@@ -0,0 +1,31 @@
+# MiniDox Bepo
+
+As the minidox has a restricted number of keys as compared to regular keyboards, some adjustments were made.
+These adjustments allow for improved ergonomics when typing English and programming languages (in particular javascript).
+
+>Keys have been grouped and rearranged to meet the needs of principals programming usages. Most used groups are placed at the opposite of thumb layout-activation key, not to seek the same hand too much:
+ 1. **Arrows/Navigation:** most used with `2.` after standard characters. To navigate comfortably during a long time, the group is placed at the opposite of the thumb-activated layout key.
+ 2. **Programming blocks characters:** most used with `1.` after standard characters. *Group placed at the opposite of the thumb-activated layout key*.
+ 3. **Operators:** less used than navigation. *Same side of the thumb-activated layout key*.
+ 4. **French special characters:** to keep basic characters on main layout and because they are less used in programming and english, french special characters have been moved to a specific layout, counter to Bepo's original main layout. *Same side of the thumb-activated layout key.*
+
+*Here is a list of other ergonomic choices :*
+
+- `Alt` both sides (instead of `AltGr`), as special characters are now handled by layouts, and to comfortably get all shortcuts with both hands (e.g. `alt/tab`...).
+- Numbers on home row, and Function keys on corresponding upper row.
+- Greater/less-than-sign in place of `«` `»`, for easier programming, and because the majority of OS and softwares replace `"` with `«` `»`.
+- Mirror `&` and `|` on little finger, lower row, raise layout (`raiser + &` on little finger is more handy than `raiser + &` on index finger).
+- `’/?` in place of `È` to keep `M` on the right hand side.
+- Better reachability for `W` `Z` `~` `backtick`...
+
+## Firmware :
+[Recent bepo firmware](https://bepo.fr/wiki/Accueil) `1.1rc2` switched generic apostrophe and typographic one.
+As the majority of OS and softwares replace **`'`** with **`’`**, I personnaly do prefer 2008 bepo firmware which keeps generic apostrophe on main layout. In fact, the apostrophe get replaced in text editors, but not in the IDEs while programming.
+Or you also can [switch them by following those instructions.](https://bepo.fr/wiki/Apostrophe)
+
+## Layout :
+![Minidox - Bepo custom layout by dolie](https://user-images.githubusercontent.com/18349922/77227968-f42d9980-6b7b-11ea-9a11-58b1f47842e9.png)
+
+#### N.B.
+I have been using and fine tuned this layout for about a year, and I really enjoy it. 🙂
+
diff --git a/keyboards/maple_computing/minidox/keymaps/default/keymap.c b/keyboards/maple_computing/minidox/keymaps/default/keymap.c
new file mode 100644
index 0000000000..737b53d301
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/default/keymap.c
@@ -0,0 +1,161 @@
+#include QMK_KEYBOARD_H
+
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z | X | C | V | B | | N | M | , | . | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | Ctrl | LOWER| | | | RAISE| Shift|
+ * `-------------| Space| |BckSpc|------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_QWERTY] = LAYOUT_split_3x5_3(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT)
+),
+
+/* Raise
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Tab | Left | Down | Up | Right| | | - | = | [ | ] |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Ctrl| ` | GUI | Alt | | | | | | \ | ' |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_RAISE] = LAYOUT_split_3x5_3(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT,
+ _______, _______, _______, _______, _______, _______
+),
+
+/* Lower
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Esc | | | | | | | _ | + | { | } |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Caps| ~ | | | | | | | | | | " |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| Del |
+ * `-------------| | | Enter|------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_LOWER] = LAYOUT_split_3x5_3(
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
+ KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
+ KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT,
+ _______, _______, _______, KC_ENT, _______, KC_DEL
+),
+
+/* Adjust (Lower + Raise)
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F11 | F12 | | | | | | | |Taskmg|caltde|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Reset| | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_ADJUST] = LAYOUT_split_3x5_3(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL,
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______
+)
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_SONG(tone_qwerty);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/minidox/keymaps/dustypomerleau/README.md b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/README.md
new file mode 100644
index 0000000000..b2ec771257
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/README.md
@@ -0,0 +1,28 @@
+## dustypomerleau, Minidox layout
+
+The rationale behind my layout can be summarized as follows:
+
+- Symmetry is important because use-cases are hard to predict. Whenever possible, modifiers and layer keys should be available from either hand.
+- Inward rolls should be leveraged not just for alphas (Colemak DHm), but also for coding/symbols.
+- Number order—like alpha order—should be designed to favor use of the strongest fingers.
+- One-shot keys can greatly reduce the strain of typing, and should be leveraged.
+
+Some aspects of my layout are optimized for macOS (order of modifiers, manner of producing en and em dashes, coding of micro-volume adjustments, etc.), but can be easily tweaked for the OS of your choice.
+
+Shift can be a tricky modifier when used in `MT()` combinations, particularly for fast typists on split boards using serial. This can be partially mitigated with options in `config.h`, but still requires a relatively strict typing style/accuracy from the fast typist. The tendency is for faster typists to combat mod/tap mistakes by using very short intervals for `TAPPING_TERM`, but this can introduce its own set of complications. Shift is also one of the highest-yield opportunities to use `OSM()`. For these reasons, I pulled Shift onto dedicated keys in the thumbs for use during regular typing (the home row Shifts have been left in place for use during selection and keycuts).
+
+The tapdance code that I used to create mod/tap keys inside my symbol layer allows up to 2 consecutive symbols within `TAPPING_TERM`. If you think you will need to quickly nest more than that, feel free to add more `case`s.
+
+### Special thanks
+
+- Everyone on the QMK Discord, for helping me work out the code for mod/tap keys using shifted symbols.
+- Everyone on the Colemak Discord, for their initial feedback on the layout.
+- @stevep and @DreymaR, for their work on Colemak DH(m), a truly awesome typing experience (and of course Shai Coleman, for starting it all off!).
+- @ckofy, for offering a dramatic improvement on Dvorak's original number order.
+- u/That-Canadian, for designing this awesome keyboard.
+
+### Questions or comments?
+
+- GitHub @dustypomerleau
+- Twitter @duspom
+- Discord @dusty#8897
diff --git a/keyboards/maple_computing/minidox/keymaps/dustypomerleau/config.h b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/config.h
new file mode 100644
index 0000000000..b2169947b7
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/config.h
@@ -0,0 +1,25 @@
+// dustypomerleau, Minidox config
+
+#pragma once
+
+#define EE_HANDS
+#define IGNORE_MOD_TAP_INTERRUPT
+#define ONESHOT_TIMEOUT 1000
+#define TAPPING_TERM 200
+#define USE_SERIAL
+
+// optional configuration:
+
+// #define CONVERT_TO_PROTON_C
+// #define ONESHOT_TAP_TOGGLE 2 // not compatible with TAPPING_FORCE_HOLD
+// #define PERMISSIVE_HOLD
+// #define TAPPING_FORCE_HOLD // allows rapid mod use after tap event, but sacrifices double-tap to repeat
+
+// #define MOUSEKEY_DELAY 0 // delay before cursor movement (high feels sluggish, low makes fine movement difficult)
+// #define MOUSEKEY_INTERVAL 20 // time between movement reports - low settings feel like high mouse speed
+// #define MOUSEKEY_MAX_SPEED 10
+// #define MOUSEKEY_TIME_TO_MAX 60
+// #define MOUSEKEY_WHEEL_DELAY 0
+// #define MOUSEKEY_WHEEL_MAX_SPEED 8
+// #define MOUSEKEY_WHEEL_TIME_TO_MAX 4
+
diff --git a/keyboards/maple_computing/minidox/keymaps/dustypomerleau/keymap.c b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/keymap.c
new file mode 100644
index 0000000000..e93a09f64a
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/keymap.c
@@ -0,0 +1,434 @@
+// Minidox keymap by dustypomerleau
+// Thanks for checking out my keymap. The rationale behind the layout is described in the README.
+
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+enum my_layers {
+ _CMK_DHM,
+ _QWERTY,
+ _SYS,
+ _NAV,
+ _NUM_E,
+ _NUM_N,
+ _SYM
+};
+
+enum my_keycodes {
+ CMK_DHM = SAFE_RANGE,
+ QWERTY,
+ SYS,
+ NAV,
+ NUM_E,
+ NUM_N,
+ SYM
+};
+
+enum td_keycodes {
+ ALT_LP,
+ CTL_RCB,
+ GUI_RP,
+ SFT_LCB,
+ SFT_PLS
+};
+
+typedef enum {
+ SINGLE_TAP,
+ SINGLE_HOLD,
+ DOUBLE_SINGLE_TAP
+} td_state_t;
+
+static td_state_t td_state;
+int cur_dance (qk_tap_dance_state_t *state);
+void altlp_finished (qk_tap_dance_state_t *state, void *user_data);
+void altlp_reset (qk_tap_dance_state_t *state, void *user_data);
+void ctlrcb_finished (qk_tap_dance_state_t *state, void *user_data);
+void ctlrcb_reset (qk_tap_dance_state_t *state, void *user_data);
+void guirp_finished (qk_tap_dance_state_t *state, void *user_data);
+void guirp_reset (qk_tap_dance_state_t *state, void *user_data);
+void sftlcb_finished (qk_tap_dance_state_t *state, void *user_data);
+void sftlcb_reset (qk_tap_dance_state_t *state, void *user_data);
+void sftpls_finished (qk_tap_dance_state_t *state, void *user_data);
+void sftpls_reset (qk_tap_dance_state_t *state, void *user_data);
+
+#define ALT_2 LALT_T(KC_2)
+#define ALT_3 LALT_T(KC_3)
+#define ALT_8 LALT_T(KC_8)
+#define ALT_D LALT_T(KC_D)
+#define ALT_E LALT_T(KC_E)
+#define ALT_K LALT_T(KC_K)
+#define ALT_LB LALT_T(KC_LBRC)
+#define ALT_S LALT_T(KC_S)
+#define CTRL_2 LCTL_T(KC_2)
+#define CTRL_4 LCTL_T(KC_4)
+#define CTRL_5 LCTL_T(KC_5)
+#define CTRL_9 LCTL_T(KC_9)
+#define CTRL_EQ LCTL_T(KC_EQL)
+#define CTRL_I LCTL_T(KC_I)
+#define CTRL_L LCTL_T(KC_L)
+#define CTRL_R LCTL_T(KC_R)
+#define CTRL_S LCTL_T(KC_S)
+#define GUI_0 LGUI_T(KC_0)
+#define GUI_1 LGUI_T(KC_1)
+#define GUI_4 LGUI_T(KC_4)
+#define GUI_7 LGUI_T(KC_7)
+#define GUI_RB LGUI_T(KC_RBRC)
+#define GUI_F LGUI_T(KC_F)
+#define GUI_J LGUI_T(KC_J)
+#define GUI_N LGUI_T(KC_N)
+#define GUI_TEA LGUI_T(KC_T)
+#define MAC_EM S(LALT(KC_MINS))
+#define MAC_EN LALT(KC_MINS)
+#define NAV_BK LT(_NAV, KC_BSPC)
+#define NAV_LK TG(_NAV)
+#define NUME_SPC LT(_NUM_E, KC_SPC)
+#define NUMLK_E TG(_NUM_E)
+#define NUMLK_N TG(_NUM_N)
+#define NUMN_SPC LT(_NUM_N, KC_SPC)
+#define SFT_0 LSFT_T(KC_0)
+#define SFT_1 LSFT_T(KC_1)
+#define SFT_6 LSFT_T(KC_6)
+#define SFT_7 LSFT_T(KC_7)
+#define SFT_A LSFT_T(KC_A)
+#define SFT_O LSFT_T(KC_O)
+#define SFT_OS OSM(MOD_LSFT)
+#define SFT_QOT LSFT_T(KC_QUOT)
+#define SYM_OS OSL(_SYM)
+#define SYS_Z LT(_SYS, KC_Z)
+#define VOL_DN S(LALT(KC__VOLDOWN))
+#define VOL_UP S(LALT(KC__VOLUP))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak DHm
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | F | P | B | | J | L | U | Y | ' |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SFT/A| CTL/R| ALT/S| GUI/T| G | | M | GUI/N| ALT/E| CTL/I| SFT/O|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SYS/Z| X | C | D | V | | K | H | , | . | ; |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,--------------------.
+ * |SFT/OS|NAV/BK| | | |NUM/SP|SFT/OS|
+ * `------+------|SYM/OS| |SYM/OS|------+------'
+ * | | | |
+ * `------' `------'
+ */
+[_CMK_DHM] = LAYOUT( \
+ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
+ SFT_A, CTRL_R, ALT_S, GUI_TEA, KC_G, KC_M, GUI_N, ALT_E, CTRL_I, SFT_O, \
+ SYS_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SCLN, \
+ SFT_OS, NAV_BK, SYM_OS, SYM_OS, NUME_SPC, SFT_OS \
+),
+
+/* QWERTY
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SFT/A| CTL/S| ALT/D| GUI/F| G | | H | GUI/J| ALT/K| CTL/L| SFT/'|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SYS/Z| X | C | V | B | | N | M | , | . | ; |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,--------------------.
+ * |SFT/OS|NAV/BK| | | |NUM/SP|SFT/OS|
+ * `------+------|SYM/OS| |SYM/OS|------+------'
+ * | | | |
+ * `------' `------'
+ */
+[_QWERTY] = LAYOUT( \
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+ SFT_A, CTRL_S, ALT_D, GUI_F, KC_G, KC_H, GUI_J, ALT_K, CTRL_L, SFT_QOT, \
+ SYS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SCLN, \
+ SFT_OS, NAV_BK, SYM_OS, SYM_OS, NUMN_SPC, SFT_OS \
+),
+
+/* System, media, and layer lock keys
+ * If you use QWERTY + the Vanilla numbers primarily, change NUMLK_E to NUMLK_N here.
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | RESET|DEBUG |QWERTY|CMKDHM| | | | VOL--| VOL++|BRITE-|BRITE+|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SHIFT| CTRL | ALT | GUI |NAV LK| | POWER| VOL- | VOL+ | MUTE | MPLY |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | | |AU OFF| AU ON| | | |NUM LK| MRWD | MFFD | |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | | | | | | |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_SYS] = LAYOUT( \
+ RESET, DEBUG, QWERTY, CMK_DHM, _______, _______, KC_VOLD, KC_VOLU, KC_BRID, KC_BRIU, \
+ KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, NAV_LK, KC_POWER, VOL_DN, VOL_UP, KC__MUTE, KC_MPLY, \
+ _______, _______, AU_OFF, AU_ON, _______, _______, NUMLK_E, KC_MRWD, KC_MFFD, _______, \
+ _______, _______, _______, _______, _______, _______ \
+),
+
+/* Navigation + mouse keys
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | PSCR | | WH U | WH D | | | BSPC | PGDN | PGUP | HOME | END |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SHIFT| CTRL | ALT | GUI |NAV LK| | CAPS | LEFT | DOWN | UP | RIGHT|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | | ACL0 | ACL1 | ACL2 | BTN2 | | BTN1 | MS L | MS D | MS U | MS R |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,--------------------.
+ * | | | | | | ENTER| |
+ * `------+------| ESC | | DEL |------+------'
+ * | | | |
+ * `------' `------'
+ */
+[_NAV] = LAYOUT( \
+ KC_PSCR, _______, KC_WH_U, KC_WH_D, _______, KC_BSPC, KC_PGDN, KC_PGUP, KC_HOME, KC_END, \
+ KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, NAV_LK, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
+ _______, KC_ACL0, KC_ACL1, KC_ACL2, KC_BTN2, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, \
+ _______, _______, KC_ESC, KC_DEL, KC_ENT, _______ \
+),
+
+/* Number + function keys (ergonomic number order - default pairing with Colemak)
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SFT/7| CTL/5| ALT/3| GUI/1| 9 | | 8 | GUI/0| ALT/2| CTL/4| SFT/6|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F11 | F12 | - | SPACE| BSPC | | DEL |NUM LK| | | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,--------------------.
+ * | | TAB | | | | | |
+ * `------+------| ESC | | |------+------'
+ * | | | |
+ * `------' `------'
+ */
+[_NUM_E] = LAYOUT( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \
+ SFT_7, CTRL_5, ALT_3, GUI_1, KC_9, KC_8, GUI_0, ALT_2, CTRL_4, SFT_6, \
+ KC_F11, KC_F12, KC_MINS, KC_SPC, KC_BSPC, KC_DEL, NUMLK_E, _______, _______, KC_SLSH, \
+ _______, KC_TAB, KC_ESC, _______, _______, _______ \
+),
+
+/* Number + function keys (numeric number order - default pairing with QWERTY)
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SFT/1| CTL/2| ALT/3| GUI/4| 5 | | 6 | GUI/7| ALT/8| CTL/9| SFT/0|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F11 | F12 | - | SPACE| BSPC | | DEL |NUM LK| | | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,--------------------.
+ * | | TAB | | | | | |
+ * `------+------| ESC | | |------+------'
+ * | | | |
+ * `------' `------'
+ */
+[_NUM_N] = LAYOUT( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \
+ SFT_1, CTRL_2, ALT_3, GUI_4, KC_5, KC_6, GUI_7, ALT_8, CTRL_9, SFT_0, \
+ KC_F11, KC_F12, KC_MINS, KC_SPC, KC_BSPC, KC_DEL, NUMLK_N, _______, _______, KC_SLSH, \
+ _______, KC_TAB, KC_ESC, _______, _______, _______ \
+),
+
+
+/* Symbols
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | # | $ | % | | ^ | & | * | ? | ' |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | SFT/+| CTL/=| ALT/(| GUI/)| " | | : | GUI/]| ALT/[| CTL/}| SFT/{|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | < | | | - | > | \ | | ` | _ | / | ~ | ; |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,--------------------.
+ * | |ENDASH| | | |EMDASH| |
+ * `------+------| | | |------+------'
+ * | | | |
+ * `------' `------'
+ */
+[_SYM] = LAYOUT( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_QUES, KC_QUOT, \
+ TD(SFT_PLS), CTRL_EQ, TD(ALT_LP), TD(GUI_RP), KC_DQT, KC_COLN, GUI_RB, ALT_LB, TD(CTL_RCB), TD(SFT_LCB), \
+ KC_LT, KC_PIPE, KC_MINS, KC_GT, KC_BSLS, KC_GRV, KC_UNDS, KC_SLSH, KC_TILD, KC_SCLN, \
+ _______, MAC_EN, _______, _______, MAC_EM, _______ \
+)
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case CMK_DHM:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_CMK_DHM);
+ }
+ return false;
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ default:
+ return true;
+ }
+};
+
+int cur_dance (qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (state->interrupted || !state->pressed) return SINGLE_TAP;
+ else return SINGLE_HOLD;
+ }
+ if (state->count == 2) return DOUBLE_SINGLE_TAP;
+ else return 3;
+}
+
+void altlp_finished (qk_tap_dance_state_t *state, void *user_data) {
+ td_state = cur_dance(state);
+ switch (td_state) {
+ case SINGLE_TAP:
+ register_code16(KC_LPRN);
+ break;
+ case SINGLE_HOLD:
+ register_mods(MOD_BIT(KC_LALT));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ tap_code16(KC_LPRN);
+ register_code16(KC_LPRN);
+ }
+}
+
+void altlp_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (td_state) {
+ case SINGLE_TAP:
+ unregister_code16(KC_LPRN);
+ break;
+ case SINGLE_HOLD:
+ unregister_mods(MOD_BIT(KC_LALT));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ unregister_code16(KC_LPRN);
+ }
+}
+
+void ctlrcb_finished (qk_tap_dance_state_t *state, void *user_data) {
+ td_state = cur_dance(state);
+ switch (td_state) {
+ case SINGLE_TAP:
+ register_code16(KC_RCBR);
+ break;
+ case SINGLE_HOLD:
+ register_mods(MOD_BIT(KC_LCTL));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ tap_code16(KC_RCBR);
+ register_code16(KC_RCBR);
+ }
+}
+
+void ctlrcb_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (td_state) {
+ case SINGLE_TAP:
+ unregister_code16(KC_RCBR);
+ break;
+ case SINGLE_HOLD:
+ unregister_mods(MOD_BIT(KC_LCTL));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ unregister_code16(KC_RCBR);
+ }
+}
+
+void guirp_finished (qk_tap_dance_state_t *state, void *user_data) {
+ td_state = cur_dance(state);
+ switch (td_state) {
+ case SINGLE_TAP:
+ register_code16(KC_RPRN);
+ break;
+ case SINGLE_HOLD:
+ register_mods(MOD_BIT(KC_LGUI));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ tap_code16(KC_RPRN);
+ register_code16(KC_RPRN);
+ }
+}
+
+void guirp_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (td_state) {
+ case SINGLE_TAP:
+ unregister_code16(KC_RPRN);
+ break;
+ case SINGLE_HOLD:
+ unregister_mods(MOD_BIT(KC_LGUI));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ unregister_code16(KC_RPRN);
+ }
+}
+
+void sftlcb_finished (qk_tap_dance_state_t *state, void *user_data) {
+ td_state = cur_dance(state);
+ switch (td_state) {
+ case SINGLE_TAP:
+ register_code16(KC_LCBR);
+ break;
+ case SINGLE_HOLD:
+ register_mods(MOD_BIT(KC_LSFT));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ tap_code16(KC_LCBR);
+ register_code16(KC_LCBR);
+ }
+}
+
+void sftlcb_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (td_state) {
+ case SINGLE_TAP:
+ unregister_code16(KC_LCBR);
+ break;
+ case SINGLE_HOLD:
+ unregister_mods(MOD_BIT(KC_LSFT));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ unregister_code16(KC_LCBR);
+ }
+}
+
+void sftpls_finished (qk_tap_dance_state_t *state, void *user_data) {
+ td_state = cur_dance(state);
+ switch (td_state) {
+ case SINGLE_TAP:
+ register_code16(KC_PLUS);
+ break;
+ case SINGLE_HOLD:
+ register_mods(MOD_BIT(KC_LSFT));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ tap_code16(KC_PLUS);
+ register_code16(KC_PLUS);
+ }
+}
+
+void sftpls_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (td_state) {
+ case SINGLE_TAP:
+ unregister_code16(KC_PLUS);
+ break;
+ case SINGLE_HOLD:
+ unregister_mods(MOD_BIT(KC_LSFT));
+ break;
+ case DOUBLE_SINGLE_TAP:
+ unregister_code16(KC_PLUS);
+ }
+}
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [ALT_LP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altlp_finished, altlp_reset),
+ [CTL_RCB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctlrcb_finished, ctlrcb_reset),
+ [GUI_RP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, guirp_finished, guirp_reset),
+ [SFT_LCB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, sftlcb_finished, sftlcb_reset),
+ [SFT_PLS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, sftpls_finished, sftpls_reset)
+};
diff --git a/keyboards/maple_computing/minidox/keymaps/dustypomerleau/rules.mk b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/rules.mk
new file mode 100644
index 0000000000..2a74d95536
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/dustypomerleau/rules.mk
@@ -0,0 +1,5 @@
+# dustypomerleau, Minidox rules
+
+EXTRAKEY_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/maple_computing/minidox/keymaps/haegin/keymap.c b/keyboards/maple_computing/minidox/keymaps/haegin/keymap.c
new file mode 100644
index 0000000000..d95243f10b
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/haegin/keymap.c
@@ -0,0 +1,86 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define LETTERS 0
+#define SYMBOLS 1
+#define MEDIA 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z | X | C | V | B | | N | M | , | . | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | Ctrl | LOWER| | | | RAISE| Shift|
+ * `-------------| Space| |BckSpc|------+------.
+ * | | | |
+ * `------' `------'
+ */
+[LETTERS] = LAYOUT( \
+ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
+ KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
+ KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \
+ CTL_T(KC_ESC), SFT_T(KC_BSPC), GUI_T(KC_SPC), LT(SYMBOLS, KC_ENT), LT(MEDIA, KC_TAB), ALT_T(LCTL(KC_B)) \
+),
+
+/* Raise
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Tab | Left | Down | Up | Right| | | - | = | [ | ] |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Ctrl| ` | GUI | Alt | | | | | | \ | ' |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[SYMBOLS] = LAYOUT( \
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
+ KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \
+ _______, _______, _______, _______, _______, _______ \
+),
+
+/* Lower
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Esc | | | | | | | _ | + | { | } |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Caps| ~ | | | | | | | | | | " |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| Del |
+ * `-------------| | | Enter|------+------.
+ * | | | |
+ * `------' `------'
+ */
+[MEDIA] = LAYOUT( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
+ KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \
+ KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \
+ _______, _______, _______, KC_ENT, _______, KC_DEL \
+)
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
diff --git a/keyboards/maple_computing/minidox/keymaps/khitsule/config.h b/keyboards/maple_computing/minidox/keymaps/khitsule/config.h
new file mode 100644
index 0000000000..645e80ee8f
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/khitsule/config.h
@@ -0,0 +1,6 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#endif
diff --git a/keyboards/maple_computing/minidox/keymaps/khitsule/keymap.c b/keyboards/maple_computing/minidox/keymaps/khitsule/keymap.c
new file mode 100644
index 0000000000..1c6b6749f3
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/khitsule/keymap.c
@@ -0,0 +1,64 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+#define DSK_LFT LGUI(LCTL(KC_LEFT))
+#define DSK_RT LGUI(LCTL(KC_RIGHT))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+[_QWERTY] = LAYOUT( \
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
+ ALT_T(KC_ENT), LT(_LOWER, KC_TAB), CTL_T(KC_SPC), SFT_T(KC_BSPC), LT(_RAISE, KC_DEL), KC_LGUI \
+),
+
+[_RAISE] = LAYOUT( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_0, \
+ KC_CIRC, KC_AMPR, KC_TILD, KC_PIPE, KC_BSLS, KC_MINUS, KC_4, KC_5, KC_6, KC_EQL, \
+ KC_DQT, KC_QUOT, KC_UNDS, KC_GRV, _______, KC_ASTR, KC_1, KC_2, KC_3, _______, \
+ _______, MO(_ADJUST), _______, _______, _______, _______ \
+),
+
+
+[_LOWER] = LAYOUT( \
+ KC_ESC, KC_HOME, KC_UP, KC_END, _______, KC_LPRN, KC_RPRN, _______, _______, _______,
+ KC_VOLU, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGUP, KC_LBRC, KC_RBRC, _______, _______, _______, \
+ KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_PGDN, KC_LCBR, KC_RCBR, _______, _______, _______, \
+ _______, _______, _______, _______, MO(_ADJUST), _______ \
+),
+
+
+[_ADJUST] = LAYOUT( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \
+ _______, DSK_LFT, _______, DSK_RT, _______, TSKMGR, CALTDEL, _______, KC_F11, KC_F12, \
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______ \
+)
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
diff --git a/keyboards/maple_computing/minidox/keymaps/khitsule/readme.md b/keyboards/maple_computing/minidox/keymaps/khitsule/readme.md
new file mode 100644
index 0000000000..92e2527942
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/khitsule/readme.md
@@ -0,0 +1,24 @@
+# Minidox Layout by Khitsule
+![Khitsule](https://i.imgur.com/bEdqotb.png)
+
+[KLE link](http://www.keyboard-layout-editor.com/#/gists/203ed1a6db1997863394e87af8c43bbc)
+
+## Layers
+| Layer | Legend |
+| ----- | ------ |
+| Base | Top left (black) |
+| Lower | Top right (red) |
+| Raise | Bottom right (orange) |
+| Adjust | Front print |
+
+## Features
+* Raise/lower layers focus first on one-handed use
+* Numpad on right hand with raise layer
+* Navigation on left hand with lower layer (ESDF)
+ * D refers to desktop left/right on Win 10 (win+ctrl+left/right)
+* Heavy use of hold/tap dual function keys
+ * Ctrl/Space
+ * Shift/Backspace
+ * Alt/Enter
+ * Lower/Tab
+ * Raise/Delete \ No newline at end of file
diff --git a/keyboards/maple_computing/minidox/keymaps/norman/config.h b/keyboards/maple_computing/minidox/keymaps/norman/config.h
new file mode 100644
index 0000000000..0d3542a03e
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/norman/config.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#define PERMISSIVE_HOLD
+#define QMK_KEYS_PER_SCAN 4
+#define TAPPING_TERM 160
diff --git a/keyboards/maple_computing/minidox/keymaps/norman/keymap.c b/keyboards/maple_computing/minidox/keymaps/norman/keymap.c
new file mode 100644
index 0000000000..2786b7dd93
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/norman/keymap.c
@@ -0,0 +1,69 @@
+#include QMK_KEYBOARD_H
+
+#include <sendstring_norman.h>
+
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layers {
+ _NORMAN,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+#define DSK_LFT LGUI(LCTL(KC_LEFT))
+#define DSK_RT LGUI(LCTL(KC_RIGHT))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+[_NORMAN] = LAYOUT( \
+ NM_Q, NM_W, NM_D, NM_F, NM_K, NM_J, NM_U, NM_R, NM_L, NM_SCLN, \
+ NM_A, NM_S, NM_E, NM_T, NM_G, NM_Y, NM_N, NM_I, NM_O, NM_H, \
+ NM_Z, NM_X, NM_C, NM_V, NM_B, NM_P, NM_M, NM_COMM, NM_DOT, NM_SLSH, \
+ LGUI_T(KC_ENT), LT(_RAISE, KC_ESC), SFT_T(KC_BSPC), CTL_T(KC_SPC), LT(_LOWER, KC_TAB), ALT_T(KC_ENT) \
+),
+
+[_RAISE] = LAYOUT( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_0, \
+ KC_CIRC, KC_AMPR, KC_TILD, KC_PIPE, KC_BSLS, KC_MINUS, KC_4, KC_5, KC_6, KC_EQL, \
+ KC_DQT, KC_QUOT, KC_UNDS, KC_GRV, _______, KC_ASTR, KC_1, KC_2, KC_3, _______, \
+ _______, _______, _______, _______, MO(_ADJUST), _______ \
+),
+
+
+[_LOWER] = LAYOUT( \
+ KC_ESC, KC_HOME, KC_UP, KC_END, _______, _______, KC_LPRN, KC_RPRN, _______, _______,
+ KC_VOLU, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGUP, _______, KC_LBRC, KC_RBRC, _______, _______, \
+ KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_PGDN, _______, KC_LCBR, KC_RCBR, _______, _______, \
+ _______, MO(_ADJUST), _______, _______, _______, _______ \
+),
+
+[_ADJUST] = LAYOUT( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, \
+ _______, DSK_LFT, _______, DSK_RT, _______, TSKMGR, CALTDEL, _______, KC_F11, KC_F12, \
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______ \
+)
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
diff --git a/keyboards/maple_computing/minidox/keymaps/norman/readme.md b/keyboards/maple_computing/minidox/keymaps/norman/readme.md
new file mode 100644
index 0000000000..018e436322
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/norman/readme.md
@@ -0,0 +1,56 @@
+# Minidox Norman Layout by LeHoff
+Based on the QWERTY layout created by Khitsule.
+![lehoff](https://i.imgur.com/rKTdymp.png)
+
+[KLE link](http://www.keyboard-layout-editor.com/#/gists/86ec49f9f820a8b9b36f6e0d2ef8fff7)
+
+## Layers
+| Layer | Legend |
+| ----- | ------ |
+| Base | Top left (black) |
+| Lower | Bottom right (red) |
+| Raise | Top right (orange) |
+| Adjust | Front print |
+
+## Features
+* Raise/lower layers focus first on one-handed use
+* Numpad on right hand with raise layer
+* Navigation on left hand with lower layer (ESDF)
+ * D refers to desktop left/right on Win 10 (win+ctrl+left/right)
+* Heavy use of hold/tap dual function keys - from left to right:
+ * Cmd/Enter
+ * Raise/Esc
+ * Shift/Backspace
+ * Ctrl/Space
+ * Lower/Tab
+ * Alt/Enter
+
+
+## Modifier Placement Rationale
+
+There are several major driving forces at play:
+
+* I use MacOS.
+* I'm Danish so the Alt and Shift-Alt layers in MacOS simply have to work.
+* I use Vim for coding.
+* I use org-mode in Emacs to keep track of my time.
+
+* Space is on the right hand side because I almost exclusively use my right hand thumb for
+ space.
+* Cmd is on the left since I often use Cmd+click to open a link in a new tab in Safari.
+* Due to my usage of Vim Esc got a spot on the modifier row.
+* Tab is on the right to enable easy navigation between winows with Cmd+Tab.
+* Shift is on the left since org-mode uses Ctrl+arrows to manipulate task state quickly,
+ and since the arrow keys are activated using Lower (which has been moved to the right) and S, E, T,
+ and D, it works well that way.
+* Ctrl is on the right since Ctrl+<0-9> is used in MacOS to switch between spaces.
+* Enter is on both sides since Enter is often used together with all of the modifiers. E.g.,
+ Cmd+Enter to send mails in most situations, but Ctrl+Enter is used in Emacs to create a
+ new task in org-mode.
+
+This means that arrows and digits are being modified from the other hand, which could be
+bad for gaming, so if you're into that you might want to re-think a few things, but in
+that case you are probably using a Windows machine and then there are other constraints
+you have to deal with.
+
+
diff --git a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h
new file mode 100644
index 0000000000..1106412b59
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#define USE_SERIAL
+#define EE_HANDS
+
+
+#define COMBO_COUNT 10
+#define COMBO_TERM 100
+#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c
new file mode 100644
index 0000000000..d80febecaf
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c
@@ -0,0 +1,109 @@
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _RSTHD,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+enum combo_events {
+ TOP_L,
+ TOP_R,
+ MID_L,
+ MID_R,
+ BOT_L,
+ BOT_R,
+ HN_QUOT,
+ TOP_CTR,
+ MID_CTR,
+ BOT_CTR,
+};
+
+const uint16_t PROGMEM fk_combo[] = {KC_F, KC_K, COMBO_END};
+const uint16_t PROGMEM zl_combo[] = {KC_Z, KC_L, COMBO_END};
+const uint16_t PROGMEM hd_combo[] = {KC_H, KC_D, COMBO_END};
+const uint16_t PROGMEM mn_combo[] = {KC_M, KC_N, COMBO_END};
+const uint16_t PROGMEM pb_combo[] = {KC_P, KC_B, COMBO_END};
+const uint16_t PROGMEM xw_combo[] = {KC_X, KC_W, COMBO_END};
+const uint16_t PROGMEM hn_combo[] = {KC_H, KC_N, COMBO_END};
+const uint16_t PROGMEM kz_combo[] = {KC_K, KC_Z, COMBO_END};
+const uint16_t PROGMEM dm_combo[] = {KC_D, KC_M, COMBO_END};
+const uint16_t PROGMEM bx_combo[] = {KC_B, KC_X, COMBO_END};
+
+combo_t key_combos[COMBO_COUNT] = {
+ [TOP_L] = COMBO(fk_combo, KC_ESC),
+ [TOP_R] = COMBO(zl_combo, KC_AT),
+ [MID_L] = COMBO(hd_combo, KC_TAB),
+ [MID_R] = COMBO_ACTION(mn_combo),
+ [BOT_L] = COMBO(pb_combo, KC_HASH),
+ [BOT_R] = COMBO(xw_combo, KC_AMPR),
+ [HN_QUOT] = COMBO(hn_combo, KC_QUOT),
+ [TOP_CTR] = COMBO_ACTION(kz_combo),
+ [MID_CTR] = COMBO_ACTION(dm_combo),
+ [BOT_CTR] = COMBO_ACTION(bx_combo),
+};
+
+ void process_combo_event(uint16_t combo_index, bool pressed) {
+ switch(combo_index) {
+ case MID_R:
+ if (pressed) {
+ tap_code16(LALT(KC_3));
+ }
+ break;
+ case TOP_CTR:
+ if (pressed) {
+ set_oneshot_mods(MOD_LGUI);
+ }
+ break;
+ case MID_CTR:
+ if (pressed) {
+ set_oneshot_mods(MOD_LALT);
+ }
+ break;
+ case BOT_CTR:
+ if (pressed) {
+ set_oneshot_mods(MOD_LCTL);
+ }
+ break;
+ }
+ }
+
+// Defines for task manager and such
+// For insertion in keymap
+#define KILL LGUI(LALT(KC_ESC)) //Force quit controls
+#define SCRCAP LCTL(LSFT(LGUI(KC_5))) //Screen capture controls
+#define DSK_LFT LGUI(LCTL(KC_LEFT))
+#define DSK_RT LGUI(LCTL(KC_RIGHT))
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+[_RSTHD] = LAYOUT(
+ KC_J, KC_C, KC_Y, KC_F, KC_K, KC_Z, KC_L, KC_COMM, KC_U, KC_Q,
+ KC_R, KC_S, KC_T, KC_H, KC_D, KC_M, KC_N, KC_A, KC_I , KC_O,
+ LCTL_T(KC_SLSH), LALT_T(KC_V), LGUI_T(KC_G), KC_P, KC_B, KC_X, KC_W, RGUI_T(KC_DOT), RALT_T(KC_SCLN),RCTL_T(KC_MINS),
+ OSM(MOD_LSFT), LT(_LOWER, KC_BSPC), KC_E, KC_SPC, LT(_RAISE, KC_ENT), OSM(MOD_LSFT)
+),
+[_RAISE] = LAYOUT(
+ KC_PAST, KC_7, KC_8, KC_9, KC_PLUS, KC_NUBS, LALT(KC_2), _______, LALT(KC_4), KC_DLR,
+ KC_CIRC, KC_4, KC_5, KC_6, KC_EQL, LSFT(KC_NUBS), KC_GRV, KC_TILD, KC_PIPE, KC_BSLS,
+ _______, RALT_T(KC_1), KC_2, KC_3,KC_PERC, _______, _______, _______, _______, _______,
+ _______, MO(_ADJUST), KC_0, _______, _______, _______
+),
+[_LOWER] = LAYOUT(
+ _______, KC_LBRC, KC_QUES, KC_RBRC, KC_BRMU, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU,
+ KC_ESC, KC_LPRN, KC_EXLM, KC_RPRN, KC_BRMD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_VOLD,
+ _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__MUTE,
+ _______, _______, _______, KC_DEL, MO(_ADJUST), _______
+),
+[_ADJUST] = LAYOUT(
+ _______, KC_F7, KC_F8, KC_F9, SCRCAP, _______, KC_F10, KC_F11, KC_F12, _______,
+ _______, KC_F1, KC_F2, KC_F3, _______, _______, KC_F4, KC_F5, KC_F6, _______,
+ OSM(MOD_LCTL),_______, _______, _______, RESET, KILL, _______, _______, _______, OSM(MOD_RCTL),
+ _______, _______, _______, _______, _______, _______
+)
+
+};
diff --git a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/readme.md b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/readme.md
new file mode 100644
index 0000000000..877d7059e7
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/readme.md
@@ -0,0 +1,22 @@
+# The RSTHD Layout for minidox - Empowered with Combos
+An attempt at porting Xuming Zeng’s [RSTHD](https://xsznix.wordpress.com/2016/05/16/introducing-the-rsthd-layout/) from the Ergodox to the Minidox.
+[KLE Link](http://www.keyboard-layout-editor.com/#/gists/3161700bf3573325804716b2bdafa50f)
+![RSTHD empowered with chords](https://live.staticflickr.com/65535/49926249372_77ab8eba95_z.jpg)
+
+**Symbols and media/system keys work as shown with keyboard identified by MacOS as "International/ISO" hardware (not ANSI) and "Input Source" within Preferences set to "British" (Apple).**
+
+The key feature on this keymap, aside from the layout, is to telescope seven columns into five using combos. The top row and the bottom row form the basis of the number and nav layers respectively. Combos are shown in the above drawing using paired blue legends.
+## Writing specific
+As a hobby writer I have intended to make a layout that favours prose rather than code, with symbols used in everyday writing such as various (Western) currencies in easy reach. Hardcore coders will no doubt move their favourite symbols to where they feel most comfortable!
+The thumb mounted 'E' made it difficult to adapt other keymaps to this letter layout and eventually drove this fundamental redesign. I have strove to minimise the risk of ‘negligent discharge’ of functions whilst typing - whose interruption which can be fatal to creative flow - and which my previous layouts adapted from various ones in the repository seemed prone. To this end hold-tap keys are not placed on the home row nor thumb operated 'space' and 'E' keys, shift gets its own keys, and I use combos to create a useful number of virtual keys.
+## Combos!
+I employ combos to simulate the missing inner and outer columns that the minidox lacks relative to the Ergodox. All combos operate on keys within the inner pair of columns of each side because during normal typing the index finger has to cover both these columns, making press events of adjacent keys unlikely to overlap. They are assigned names within the keymap that relate to their position on the keyboard (not to my assigned functions) so their functions can be changed at will to suit user preference without confusing the keymap.
+- The six chords spanning the neighbouring two columns of each half correspond to keys in the outer columns of the Ergodox.
+- A further four chords span the central divide, using pairs of letters that infrequently occur consecutively.
+ - The three combos spanning adjacent keys over the central divide simulate the mirrored inboard columns of the RSTHD map for Ergodox, and are set to chamber one shot of their respective modifiers.
+ - The quotation mark is a combo of both resting keys of the index fingers. This is inspired by ‘air quotes’ used in conversation.
+I am confident these combos will rarely be accidentally triggered. If this occurs, try reducing the tapping term.
+## Other features
+- Number pad on left. This confers many benefits for the RSTHD layout, such as leaving key symbols on the primary layer uncovered that are useful for numbers (,.:-). On this layer ‘E’ becomes ‘0’.
+- The nav cluster is now on the right hand and, upon activation ’space’ becomes ‘del’, which allows rapid navigation and editing of text.
+- Pair of one shot shift keys, since mod-tap shift assigned to letters is a bad idea IMO. Some users might choose to move the shift onto the bottom left and right combos which corresponds to where shift lives in the outer columns of the ergodox layout.
diff --git a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/rules.mk b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/rules.mk
new file mode 100644
index 0000000000..ab1e438182
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
diff --git a/keyboards/maple_computing/minidox/keymaps/that_canadian/config.h b/keyboards/maple_computing/minidox/keymaps/that_canadian/config.h
new file mode 100644
index 0000000000..b85609127e
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/that_canadian/config.h
@@ -0,0 +1,39 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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/>.
+*/
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define USE_SERIAL
+
+#define EE_HANDS
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D7
+
+#define RGBLED_NUM 8 // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+#endif \ No newline at end of file
diff --git a/keyboards/maple_computing/minidox/keymaps/that_canadian/keymap.c b/keyboards/maple_computing/minidox/keymaps/that_canadian/keymap.c
new file mode 100644
index 0000000000..78ddca30e8
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/that_canadian/keymap.c
@@ -0,0 +1,159 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z | X | C | V | B | | N | M | , | . | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | Shift| LOWER| | | | RAISE| Ctrl |
+ * `-------------| Space| |BckSpc|------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_QWERTY] = LAYOUT( \
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
+ OSM(MOD_LSFT), LOWER, KC_SPC, KC_BSPC, RAISE, KC_LCTL \
+),
+
+/* Raise
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Tab | Left | Down | Up | Right| | | - | = | [ | ] |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Ctrl| ` | GUI | Alt | | | | | | \ | ' |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_RAISE] = LAYOUT( \
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
+ KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \
+ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, \
+ _______, _______, _______, _______, _______, _______ \
+),
+
+/* Lower
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Esc | | | | | | | _ | + | { | } |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Caps| ~ | | | | | | | | | | " |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| Del |
+ * `-------------| | | Enter|------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_LOWER] = LAYOUT( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
+ KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \
+ KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, \
+ _______, _______, _______, KC_ENT, _______, KC_DEL \
+),
+
+/* Adjust (Lower + Raise)
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | Up | F9 | F10 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F11 | F12 | |RGBSAI|RGBSAD| | | Left | Down |Right |caltde|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Reset|RGBTOG|RGBMOD|RGBHUI|RGBHUD| |RGBVAI|RGBVAD| F8 |Taskmg| |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | LOWER| | | | RAISE| |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_ADJUST] = LAYOUT( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, \
+ KC_F11, KC_F12, _______, RGB_SAI, RGB_SAD, _______, KC_LEFT, KC_DOWN, KC_RGHT, CALTDEL, \
+ RESET, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_F8, TSKMGR, _______, \
+ _______, _______, _______, _______, _______, _______ \
+)
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/minidox/keymaps/that_canadian/rules.mk b/keyboards/maple_computing/minidox/keymaps/that_canadian/rules.mk
new file mode 100644
index 0000000000..f1ef68387f
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/that_canadian/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+
diff --git a/keyboards/maple_computing/minidox/keymaps/tomb0y/README.md b/keyboards/maple_computing/minidox/keymaps/tomb0y/README.md
new file mode 100644
index 0000000000..c00cca1c5b
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/tomb0y/README.md
@@ -0,0 +1,49 @@
+```
+/* Base layer - workman
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | q | d | r | w | b | | j | f | u | p | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | a | s | h | t | g | | y | n | e | o | i |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | z | x | m | c | v | | k | l | dead | . | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,---------------------.
+ * | tab | esc | enter| |bckspc| space| tab |
+ * | shift | ctrl | alt | | gui | fn | shift |
+ * `-------+------+ | | |------+-------.
+ * `------' `------'
+ */
+
+/* Dead key layer
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | % | & | ? | + | @ | | $ | _ | [ | ] | ! |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | # | ( | = | 0 | { | | } | 1 | * | ) | - |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | 6 | 7 | 8 | 9 | | | | \ | 2 | 3 | 4 | 5 |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,---------------------.
+ * | tab | esc | comma| |bckspc| comma| tab |
+ * | shift | ctrl |+enter| | gui |+space| shift |
+ * `-------+------+ | | |------+-------.
+ * `------' `------'
+ */
+
+/* Function layer
+ *
+ * ,----------------------------------. ,---------------------------------.
+ * | | del |⌃← | ⌃→ | | | mute | vol- | vol+ | ⌘⌃p | |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ` | end | pgup | pgdn | home | | ← | ↓ | ↑ | → | ' |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ⌥⇥ | |⇧⌃⇥| ⌃⇥ | | | | br- | , | br+ | ^ |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,---------------------.
+ * | tab | | enter| |bckspc| | tab |
+ * | shift | | alt | | gui | | shift |
+ * `-------+------+ | | |------+-------.
+ * `------' `------'
+ */
+```
diff --git a/keyboards/maple_computing/minidox/keymaps/tomb0y/keymap.c b/keyboards/maple_computing/minidox/keymaps/tomb0y/keymap.c
new file mode 100644
index 0000000000..cb7cd4d0a5
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/tomb0y/keymap.c
@@ -0,0 +1,142 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#define _WM 0
+#define _DK 1
+#define _FUN 2
+
+#define _DK_ACT 0
+#define _DK_REL 1
+#define _KC_COMS 2
+#define _KC_CENT 3
+
+#define DK_ACT M(_DK_ACT) // activate dead key layer
+#define DK_REL M(_DK_REL) // release dead key layer
+#define KC_COMS M(_KC_COMS) // comma + space
+#define KC_CENT M(_KC_CENT) // comma + enter
+#define KC_ENOP ALT_T(KC_ENT) // press for enter, hold for option
+#define KC_BSCM GUI_T(KC_BSPC) // press for backspace, hold for command
+#define KC_CTES CTL_T(KC_ESC) // press for escape, hold for control
+#define KC_SHTB SFT_T(KC_TAB) // press for tab, hold for shift
+#define KC_SPFN LT(_FUN, KC_SPC) // press for space, hold for function layer (aka spacefn)
+#define KC_OPTB RALT(KC_TAB) // option + tab
+#define KC_CCSP RGUI(RCTL(KC_P)) // control + command + p
+#define KC_CSTB S(RCTL(KC_TAB)) // shift + control + tab
+#define KC_C_TB RCTL(KC_TAB) // control + tab
+#define KC_C_LF RCTL(KC_LEFT) // control + left
+#define KC_C_RT RCTL(KC_RGHT) // control + right
+#define KC_BRUP KC_F15 // brightness up on osx
+#define KC_BRDN KC_F14 // brightness down on osx
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Base layer - workman
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | q | d | r | w | b | | j | f | u | p | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | a | s | h | t | g | | y | n | e | o | i |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | z | x | m | c | v | | k | l | dead | . | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,---------------------.
+ * | tab | esc | enter| |bckspc| space| tab |
+ * | shift | ctrl | alt | | gui | fn | shift |
+ * `-------+------+ | | |------+-------.
+ * `------' `------'
+ */
+ [_WM] = LAYOUT( \
+ KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, \
+ KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, \
+ KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, DK_ACT, KC_DOT, KC_SLSH, \
+ KC_SHTB, KC_CTES, KC_ENOP, KC_BSCM, KC_SPFN, KC_SHTB \
+ ),
+
+/* Dead key layer
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | % | & | ? | + | @ | | $ | _ | [ | ] | ! |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | # | ( | = | 0 | { | | } | 1 | * | ) | - |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | 6 | 7 | 8 | 9 | | | | \ | 2 | 3 | 4 | 5 |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,---------------------.
+ * | tab | esc | comma| |bckspc| comma| tab |
+ * | shift | ctrl |+enter| | gui |+space| shift |
+ * `-------+------+ | | |------+-------.
+ * `------' `------'
+ */
+ [_DK] = LAYOUT( \
+ KC_PERC, KC_AMPR, KC_QUES, KC_PLUS, KC_AT, KC_DLR, KC_UNDS, KC_LBRC, KC_RBRC, KC_EXLM, \
+ KC_HASH, KC_LPRN, KC_EQL, KC_0, KC_LCBR, KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, \
+ KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_BSLS, KC_2, DK_REL, KC_4, KC_5, \
+ KC_SHTB, KC_CTES, KC_CENT, KC_BSCM, KC_COMS, KC_SHTB \
+ ),
+
+/* Function layer
+ *
+ * ,----------------------------------. ,---------------------------------.
+ * | | del |⌃← | ⌃→ | | | mute | vol- | vol+ | ⌘⌃p | |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ` | end | pgup | pgdn | home | | ← | ↓ | ↑ | → | ' |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ⌥⇥ | |⇧⌃⇥| ⌃⇥ | | | | br- | , | br+ | ^ |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,---------------------.
+ * | tab | | enter| |bckspc| | tab |
+ * | shift | | alt | | gui | | shift |
+ * `-------+------+ | | |------+-------.
+ * `------' `------'
+ */
+ [_FUN] = LAYOUT( \
+ XXXXXXX, KC_DEL, KC_C_LF, KC_C_RT, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, KC_CCSP, XXXXXXX, \
+ KC_GRV, KC_END, KC_PGUP, KC_PGDN, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, \
+ KC_OPTB, XXXXXXX, KC_CSTB, KC_C_TB, XXXXXXX, XXXXXXX, KC_BRDN, KC_COMM, KC_BRUP, KC_CIRC, \
+ KC_SHTB, XXXXXXX, KC_ENOP, KC_BSCM, _______, KC_SHTB \
+ )
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _KC_COMS:
+ if (record->event.pressed) {
+ return MACRO(T(COMM), T(SPC), END); // comma + space
+ }
+ break;
+ case _KC_CENT:
+ if (record->event.pressed) {
+ return MACRO(T(COMM), T(ENT), END); // comma + enter
+ }
+ break;
+ case _DK_ACT:
+ if (record->event.pressed) {
+ if (keyboard_report->mods & MOD_BIT(KC_LSFT) || keyboard_report->mods & MOD_BIT(KC_RSFT)) { // act as comma when shift is pressed (eg <)
+ register_code(KC_COMM);
+ } else { // activate oneshot dead key layer otherwise
+ layer_on(_DK);
+ set_oneshot_layer(_DK, ONESHOT_START);
+ }
+ } else { // make sure to deactive dead key layer on key release
+ clear_oneshot_layer_state(ONESHOT_PRESSED);
+ unregister_code(KC_COMM);
+ }
+ break;
+ case _DK_REL:
+ if (record->event.pressed) { // act as 3 on keypress
+ register_code(KC_3);
+ } else { // make sure to deactive dead key layer on key release
+ clear_oneshot_layer_state(ONESHOT_PRESSED);
+ unregister_code(KC_3);
+ }
+ break;
+ }
+
+ return MACRO_NONE;
+};
diff --git a/keyboards/maple_computing/minidox/keymaps/tw1t611/keymap.c b/keyboards/maple_computing/minidox/keymaps/tw1t611/keymap.c
new file mode 100644
index 0000000000..f479b10f67
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/tw1t611/keymap.c
@@ -0,0 +1,59 @@
+#include QMK_KEYBOARD_H
+#include "keymap_german.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTZ 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 3
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+// macro keys
+#define CALTDEL LCTL(LALT(KC_DEL)) // ctrl-alt-del
+#define CALTESC LCTL(LSFT(KC_ESC)) // ctrl-alt-esc
+#define CALT LCTL(KC_LALT) // ctrl-alt
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTZ] = LAYOUT( \
+ DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, \
+ DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, KC_SPC, \
+ DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, \
+ KC_LCTRL, MO(_LOWER), MO(_RAISE), KC_LGUI, KC_LSFT, KC_LALT \
+),
+
+[_RAISE] = LAYOUT( \
+ DE_EXLM, DE_QUES, DE_SECT, DE_DLR, DE_HASH, DE_PLUS, DE_7, DE_8, DE_9, DE_0, \
+ DE_CIRC, DE_QUOT, DE_DQUO, DE_GRV, DE_AMPR, DE_ASTR, DE_4, DE_5, DE_6, DE_EQL, \
+ DE_SLSH, DE_PIPE, DE_BSLS, DE_AT, DE_EURO, DE_PERC, DE_1, DE_2, DE_3, KC_TAB, \
+ _______, _______, _______, _______, _______, _______ \
+),
+
+[_LOWER] = LAYOUT( \
+ KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, DE_LBRC, DE_RBRC, KC_AUDIO_VOL_UP, KC_HOME, KC_PGDOWN, KC_PGUP, KC_END, DE_TILD, \
+ KC_ESC, DE_LABK, DE_LPRN, DE_RPRN, DE_RABK, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_ENT, \
+ KC_BSPC, KC_DEL, DE_LCBR, DE_RCBR, KC_PSCR, _______, DE_ADIA, DE_ODIA, DE_UDIA, DE_SS, \
+ _______, _______, _______, _______, MO(_ADJUST), _______ \
+),
+
+[_ADJUST] = LAYOUT( \
+ _______, _______, _______, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, \
+ CALTESC, CALTDEL, _______, CALT, _______, _______, KC_F4, KC_F5, KC_F6, KC_F11, \
+ RESET, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, \
+ _______, _______, _______, _______, _______, _______ \
+)};
+
+void matrix_init_user(void) {
+ set_single_persistent_default_layer(_QWERTZ);
+};
diff --git a/keyboards/maple_computing/minidox/keymaps/tw1t611/readme.md b/keyboards/maple_computing/minidox/keymaps/tw1t611/readme.md
new file mode 100644
index 0000000000..7ab4526fbc
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/tw1t611/readme.md
@@ -0,0 +1,23 @@
+# Minidox Layout by tw1t611
+![](https://imgur.com/M95KSke.png)
+
+This is a german layout with support for umlauts and the euro sign.
+You need to set your system layout to german.
+
+[keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/#/gists/d58a82d8017d0c0cca044ef385def165)
+
+## Layers
+| Layer | Legend |
+| ----- | ------ |
+| Base | Top left (white) |
+| Lower | Top right (organge) |
+| Raise | Bottom right (blue) |
+| Adjust | Front print (orange + shift) |
+
+## Features
+* German layout with support for umlauts and the euro sign
+* Raise/lower layers focus first on one-handed use
+* Numpad on right hand with raise layer
+* Vim optimized
+ * Easy reachable Esc
+ * arrow keys on h, j, k, l
diff --git a/keyboards/maple_computing/minidox/keymaps/tw1t611/rules.mk b/keyboards/maple_computing/minidox/keymaps/tw1t611/rules.mk
new file mode 100644
index 0000000000..fcfd2225bc
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/tw1t611/rules.mk
@@ -0,0 +1 @@
+EXTRAKEY_ENABLE = yes
diff --git a/keyboards/maple_computing/minidox/keymaps/xyverz/config.h b/keyboards/maple_computing/minidox/keymaps/xyverz/config.h
new file mode 100644
index 0000000000..ae26f94999
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/xyverz/config.h
@@ -0,0 +1,42 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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/>.
+*/
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define USE_SERIAL
+
+#define EE_HANDS
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D7
+
+#define RGBLED_NUM 8 // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+#define IGNORE_MOD_TAP_INTERRUPT
+#undef PERMISSIVE_HOLD
+
+#endif
diff --git a/keyboards/maple_computing/minidox/keymaps/xyverz/keymap.c b/keyboards/maple_computing/minidox/keymaps/xyverz/keymap.c
new file mode 100644
index 0000000000..4c7a05227f
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/xyverz/keymap.c
@@ -0,0 +1,193 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST };
+
+enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, LOWER, RAISE, ADJUST };
+
+// Adding macros to make the keymaps below much easier to read.
+/*
+ Visit https://github.com/qmk/qmk_firmware/blob/master/docs/feature_advanced_keycodes.md#mod-tap
+ to read why these macros below are side-aware (LALT, RCTL, etc).
+*/
+#define CTLSCLN RCTL_T(KC_SCLN)
+#define CTLSLSH LCTL_T(KC_SLSH)
+#define RCTLZED RCTL_T(KC_Z)
+#define LCTLZED LCTL_T(KC_Z)
+#define ALTDOT RALT_T(KC_DOT)
+#define ALTX LALT_T(KC_X)
+#define ALTQ LALT_T(KC_Q)
+#define ALTV RALT_T(KC_V)
+#define GUICOMM RGUI_T(KC_COMM)
+#define GUIJ LGUI_T(KC_J)
+#define GUIC LGUI_T(KC_C)
+#define GUIW RGUI_T(KC_W)
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Dvorak
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ' | , | . | P | Y | | F | G | C | R | L |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | O | E | U | I | | D | H | T | N | S |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * |CTL/ ;|ALT/ Q|GUI/ J| K | X | | B | M |GUI/ W|ALT/ V|CTL/ Z|
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | LOWER| BSPC | | | | Spc |RAISE |
+ * `-------------| SHFT | | Ent |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_DVORAK] = LAYOUT ( \
+ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
+ KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
+ CTLSCLN, ALTQ, GUIJ, KC_K, KC_X, KC_B, KC_M, GUIW, ALTV, RCTLZED, \
+ LOWER, KC_BSPC, KC_LSFT, KC_ENT, KC_SPC, RAISE \
+),
+
+/* Qwerty
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * |CTL/ Z|ALT/ X|GUI/ C| V | B | | N | M |GUI/ ,|ALT/ .|CTL/ /|
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | LOWER| BSPC | | | | Spc |RAISE |
+ * `-------------| SHFT | | Ent |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_QWERTY] = LAYOUT ( \
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
+ LCTLZED, ALTX, GUIC, KC_V, KC_B, KC_N, KC_M, GUICOMM, ALTDOT, CTLSLSH, \
+ LOWER, KC_BSPC, KC_LSFT, KC_ENT, KC_SPC, RAISE \
+),
+
+/* Colemak
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | F | P | G | | J | L | U | Y | L |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | R | S | T | D | | H | N | E | I | S |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * |CTL/ Z|ALT/ X|GUI/ C| V | B | | K | M |GUI/ ,|ALT/ .|CTL/ /|
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | LOWER| BSPC | | | | Spc |RAISE |
+ * `-------------| SHFT | | Ent |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_COLEMAK] = LAYOUT ( \
+ KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, \
+ KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
+ LCTLZED, ALTX, GUIC, KC_V, KC_B, KC_K, KC_M, GUICOMM, ALTDOT, CTLSLSH, \
+ LOWER, KC_BSPC, KC_LSFT, KC_ENT, KC_SPC, RAISE \
+),
+
+/* Lower
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | CAPS | | UP | | Home | | PgDn | + | { | } | _ |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ~ | Left | Down | Right| End | | PgUp | Mute | Vol- | Vol+ | / |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | Del | | | | | | |
+ * `-------------| Esc | | Tab |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_LOWER] = LAYOUT ( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
+ KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, KC_PLUS, KC_LCBR, KC_RCBR, KC_UNDS, \
+ KC_TILD, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_SLSH, \
+ _______, KC_DEL, KC_ESC, KC_TAB, KC_PIPE, _______ \
+),
+
+/* Raise
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | CAPS | | UP | | Home | | PgDn | = | [ | ] | - |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ` | Left | Down | Right| End | | PgUp | Prev | Play | Next | ? |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | Del | | | | \ | |
+ * `-------------| Esc | | Tab |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_RAISE] = LAYOUT ( \
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
+ KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, KC_EQL, KC_LBRC, KC_RBRC, KC_MINS, \
+ KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_QUES, \
+ _______, KC_DEL, KC_ESC, KC_TAB, KC_BSLS, _______ \
+),
+
+/* Adjust (Lower + Raise)
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F11 | | | | | | | PrSc | ScLk | Paus | F12 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | |QWERTY|COLEMK|DVORAK| | |RESET | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------------. ,------,-------------.
+ * | | | | | | | |
+ * `-------------| | | |------+------.
+ * | | | |
+ * `------' `------'
+ */
+[_ADJUST] = LAYOUT ( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, \
+ KC_F11, RESET, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_F12, \
+ _______, QWERTY, COLEMAK, DVORAK, _______, RESET, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______ \
+ )
+};
+// clang-format on
+
+#ifdef AUDIO_ENABLE
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+#endif
+
+void matrix_init_user(void) {
+#ifdef BOOTLOADER_CATERINA
+ // This will disable the red LEDs on the ProMicros
+ setPinInput(D5);
+ setPinInput(B0);
+#endif
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); };
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case QWERTY:
+ set_single_persistent_default_layer(_QWERTY);
+ return false;
+ case COLEMAK:
+ set_single_persistent_default_layer(_COLEMAK);
+ return false;
+ case DVORAK:
+ set_single_persistent_default_layer(_DVORAK);
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/minidox/keymaps/xyverz/rules.mk b/keyboards/maple_computing/minidox/keymaps/xyverz/rules.mk
new file mode 100644
index 0000000000..c777cb1b9f
--- /dev/null
+++ b/keyboards/maple_computing/minidox/keymaps/xyverz/rules.mk
@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
diff --git a/keyboards/maple_computing/minidox/minidox.c b/keyboards/maple_computing/minidox/minidox.c
new file mode 100644
index 0000000000..b4bffbb3e4
--- /dev/null
+++ b/keyboards/maple_computing/minidox/minidox.c
@@ -0,0 +1 @@
+#include "minidox.h" \ No newline at end of file
diff --git a/keyboards/maple_computing/minidox/minidox.h b/keyboards/maple_computing/minidox/minidox.h
new file mode 100644
index 0000000000..bae36b5560
--- /dev/null
+++ b/keyboards/maple_computing/minidox/minidox.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#ifdef KEYBOARD_maple_computing_minidox_rev1
+ #include "rev1.h"
+#endif
+
+#include "quantum.h"
diff --git a/keyboards/maple_computing/minidox/readme.md b/keyboards/maple_computing/minidox/readme.md
new file mode 100644
index 0000000000..934985348c
--- /dev/null
+++ b/keyboards/maple_computing/minidox/readme.md
@@ -0,0 +1,27 @@
+# MiniDox
+
+![MiniDox](http://i.imgur.com/iWb3yO0.jpg)
+
+A compact version of the ErgoDox
+
+* Keyboard Maintainer: That-Canadian
+* Hardware Supported: MiniDox PCB rev1 Pro Micro
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/minidox/rev1:default
+
+Flashing example for this keyboard ([using the command line](https://docs.qmk.fm/#/newbs_flashing?id=flash-your-keyboard-from-the-command-line)):
+
+ make maple_computing/minidox/rev1:default:flash
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+
+## Build Guide
+
+A build guide for putting together the MiniDox v1 can be found here: [MiniDox Build Log / Guide](http://imgur.com/a/vImo6)
+
+
+## Choosing which board to plug the USB cable into (choosing Master)
+
+Because the two boards are identical, the firmware has logic to differentiate the left and right board. It uses two strategies to figure things out, [EE_HANDS](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom) or [by define](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-define). See [setting-handedness](https://docs.qmk.fm/#/config_options?id=setting-handedness) for more information.
diff --git a/keyboards/maple_computing/minidox/rev1/config.h b/keyboards/maple_computing/minidox/rev1/config.h
new file mode 100644
index 0000000000..734ca562fd
--- /dev/null
+++ b/keyboards/maple_computing/minidox/rev1/config.h
@@ -0,0 +1,30 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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
+
+#define DEVICE_VER 0x0001
+
+// wiring of each half
+#define MATRIX_ROW_PINS { B2, B6, B4, B5 }
+#define MATRIX_COL_PINS { F4, D3, D2, D1, D4 }
+
+#define SOFT_SERIAL_PIN D0
+
+#define USE_SERIAL
+
+//#define EE_HANDS
diff --git a/keyboards/maple_computing/minidox/rev1/info.json b/keyboards/maple_computing/minidox/rev1/info.json
new file mode 100644
index 0000000000..47ed14dab0
--- /dev/null
+++ b/keyboards/maple_computing/minidox/rev1/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "MiniDox",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT_split_3x5_3": {
+ "layout": [{"x":0, "y":0.375}, {"x":1, "y":0.125}, {"x":2, "y":0}, {"x":3, "y":0.125}, {"x":4, "y":0.25}, {"x":7, "y":0.25}, {"x":8, "y":0.125}, {"x":9, "y":0}, {"x":10, "y":0.125}, {"x":11, "y":0.375}, {"x":0, "y":1.375}, {"x":1, "y":1.125}, {"x":2, "y":1}, {"x":3, "y":1.125}, {"x":4, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.125}, {"x":9, "y":1}, {"x":10, "y":1.125}, {"x":11, "y":1.375}, {"x":0, "y":2.375}, {"x":1, "y":2.125}, {"x":2, "y":2}, {"x":3, "y":2.125}, {"x":4, "y":2.25}, {"x":7, "y":2.25}, {"x":8, "y":2.125}, {"x":9, "y":2}, {"x":10, "y":2.125}, {"x":11, "y":2.375}, {"x":2.5, "y":4.75}, {"x":3.5, "y":4.75}, {"x":4.5, "y":3.75, "h":2}, {"x":6.5, "y":3.75, "h":2}, {"x":7.5, "y":4.75}, {"x":8.5, "y":4.75}]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/minidox/rev1/rev1.c b/keyboards/maple_computing/minidox/rev1/rev1.c
new file mode 100644
index 0000000000..72b473933e
--- /dev/null
+++ b/keyboards/maple_computing/minidox/rev1/rev1.c
@@ -0,0 +1 @@
+#include "minidox.h"
diff --git a/keyboards/maple_computing/minidox/rev1/rev1.h b/keyboards/maple_computing/minidox/rev1/rev1.h
new file mode 100644
index 0000000000..bb8bd64666
--- /dev/null
+++ b/keyboards/maple_computing/minidox/rev1/rev1.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "quantum.h"
+
+// readability
+#define ___ KC_NO
+
+#define LAYOUT_split_3x5_3( \
+ k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, \
+ k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, \
+ k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, \
+ k33, k34, k35, k75, k74, k73 \
+ ) \
+ { \
+ { k01, k02, k03, k04, k05 }, \
+ { k11, k12, k13, k14, k15 }, \
+ { k21, k22, k23, k24, k25 }, \
+ { ___, ___, k33, k34, k35 }, \
+ { k41, k42, k43, k44, k45 }, \
+ { k51, k52, k53, k54, k55 }, \
+ { k61, k62, k63, k64, k65 }, \
+ { ___, ___, k73, k74, k75 } \
+ }
+
+#define LAYOUT LAYOUT_split_3x5_3
diff --git a/keyboards/maple_computing/minidox/rev1/rules.mk b/keyboards/maple_computing/minidox/rev1/rules.mk
new file mode 100644
index 0000000000..8ec0de6f7f
--- /dev/null
+++ b/keyboards/maple_computing/minidox/rev1/rules.mk
@@ -0,0 +1,3 @@
+BACKLIGHT_ENABLE = no
+
+LAYOUTS = split_3x5_3
diff --git a/keyboards/maple_computing/minidox/rules.mk b/keyboards/maple_computing/minidox/rules.mk
new file mode 100644
index 0000000000..175ed0f6be
--- /dev/null
+++ b/keyboards/maple_computing/minidox/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+SPLIT_KEYBOARD = yes
+
+DEFAULT_FOLDER = maple_computing/minidox/rev1
diff --git a/keyboards/maple_computing/the_ruler/config.h b/keyboards/maple_computing/the_ruler/config.h
new file mode 100644
index 0000000000..bcb7441140
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/config.h
@@ -0,0 +1,107 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x1337
+#define PRODUCT_ID 0x6007
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Maple Computing
+#define PRODUCT The PCB Ruler
+
+/* key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 6
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { C7 }
+#define MATRIX_COL_PINS { D6, D7, B4, B5, B6, C6}
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* 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
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#define RGB_DI_PIN E6 // The pin your RGB strip is wired to
+#define RGBLED_NUM 1 // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
diff --git a/keyboards/maple_computing/the_ruler/info.json b/keyboards/maple_computing/the_ruler/info.json
new file mode 100644
index 0000000000..5f2b9fba8f
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "The Ruler",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0, "w":2}]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/the_ruler/keymaps/default/keymap.c b/keyboards/maple_computing/the_ruler/keymaps/default/keymap.c
new file mode 100644
index 0000000000..898881fc3c
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/keymaps/default/keymap.c
@@ -0,0 +1,63 @@
+#include QMK_KEYBOARD_H
+
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _DEFAULT 0
+#define _FN_1 1
+#define _FN_2 2
+
+enum custom_keycodes {
+ DEFAULT = SAFE_RANGE,
+ FN_1,
+ FN_2
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Default Layer
+ * ,-----------------------------------------------.
+ * | FN_2 | 2 |TSKMGR |CALTDEL| ESC | FN_1 |
+ * `-----------------------------------------------'
+ */
+[_DEFAULT] = LAYOUT(
+ MO(_FN_2), KC_2, TSKMGR, CALTDEL, KC_ESC, MO(_FN_1)
+),
+
+/* FN 1 Layer
+ * ,-----------------------------------------------.
+ * |RGB_TOG|RGB_HUD|RGB_HUI|RGB_SAD|RGB_SAI| FN_1 |
+ * `-----------------------------------------------'
+ */
+[_FN_1] = LAYOUT(
+ RGB_TOG, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______
+),
+
+/* FN 2 Layer
+ * ,-----------------------------------------------.
+ * | FN_2 |RGB_VAD|RGB_VAI|RGB_MOD|TSKMGR | RESET |
+ * `-----------------------------------------------'
+ */
+[_FN_2] = LAYOUT(
+ _______, RGB_VAD, RGB_VAI, RGB_MOD, TSKMGR, RESET
+)
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // NONE
+ }
+ return true;
+}
diff --git a/keyboards/maple_computing/the_ruler/keymaps/default/readme.md b/keyboards/maple_computing/the_ruler/keymaps/default/readme.md
new file mode 100644
index 0000000000..b515c1d48e
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for the ruler \ No newline at end of file
diff --git a/keyboards/maple_computing/the_ruler/readme.md b/keyboards/maple_computing/the_ruler/readme.md
new file mode 100644
index 0000000000..ff958db029
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/readme.md
@@ -0,0 +1,13 @@
+# The Ruler PCB
+
+A custom keyboard PCB ruler, that can also function as a macro pad.
+
+Keyboard Maintainer: Maple Computing
+Hardware Supported: PCB Ruler V1 by That-Canadian and Bishop Keyboards
+Hardware Availability: [Bishop Keyboards](https://bishopkeyboards.com/product/pcb-ruler-gloss-black-silver/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make maple_computing/the_ruler: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).
diff --git a/keyboards/maple_computing/the_ruler/rules.mk b/keyboards/maple_computing/the_ruler/rules.mk
new file mode 100644
index 0000000000..986f0f277a
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
diff --git a/keyboards/maple_computing/the_ruler/the_ruler.c b/keyboards/maple_computing/the_ruler/the_ruler.c
new file mode 100644
index 0000000000..29a8248924
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/the_ruler.c
@@ -0,0 +1 @@
+#include "the_ruler.h"
diff --git a/keyboards/maple_computing/the_ruler/the_ruler.h b/keyboards/maple_computing/the_ruler/the_ruler.h
new file mode 100644
index 0000000000..171d21a072
--- /dev/null
+++ b/keyboards/maple_computing/the_ruler/the_ruler.h
@@ -0,0 +1,8 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05 ) { \
+ { K00, K01, K02, K03, K04, K05 } \
+}