From b62829031de1ae2e5e1efaa35606981c04c443c3 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Fri, 7 Feb 2020 19:15:35 -0800
Subject: [PATCH] [Keyboard] YMDK NP21: matrix and keymap refactor (#8112)
* YMDK NP21: matrix and keymap refactor
- refactored layout macros
- LAYOUT_ortho_6x4 orients the keyboard with the USB port to the back instead of to the right
- LAYOUT uses the previous sideways orientation (included for backwards compatibility)
- removed redundant includes from ymdk_np21.h
- added a readme for the default keymap
* add Configurator layout support
---
keyboards/ymdk_np21/info.json | 69 +++++++++++++++++++
keyboards/ymdk_np21/keymaps/default/keymap.c | 56 ++++++---------
keyboards/ymdk_np21/keymaps/default/readme.md | 26 +++++++
keyboards/ymdk_np21/ymdk_np21.h | 32 ++++++---
4 files changed, 137 insertions(+), 46 deletions(-)
create mode 100644 keyboards/ymdk_np21/info.json
create mode 100644 keyboards/ymdk_np21/keymaps/default/readme.md
diff --git a/keyboards/ymdk_np21/info.json b/keyboards/ymdk_np21/info.json
new file mode 100644
index 0000000000..b17059a1cd
--- /dev/null
+++ b/keyboards/ymdk_np21/info.json
@@ -0,0 +1,69 @@
+{
+ "keyboard_name": "YMDK NP21",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT_ortho_6x4": {
+ "width": 4,
+ "height": 6.25,
+ "key_count": 24,
+ "layout": [
+ {"label":"K06", "x":0, "y":0},
+ {"label":"K16", "x":1, "y":0},
+ {"label":"K26", "x":2, "y":0},
+ {"label":"K36", "x":3, "y":0},
+ {"label":"K05", "x":0, "y":1.25},
+ {"label":"K15", "x":1, "y":1.25},
+ {"label":"K25", "x":2, "y":1.25},
+ {"label":"K35", "x":3, "y":1.25},
+ {"label":"K04", "x":0, "y":2.25},
+ {"label":"K14", "x":1, "y":2.25},
+ {"label":"K24", "x":2, "y":2.25},
+ {"label":"K34", "x":3, "y":2.25},
+ {"label":"K03", "x":0, "y":3.25},
+ {"label":"K13", "x":1, "y":3.25},
+ {"label":"K23", "x":2, "y":3.25},
+ {"label":"K33", "x":3, "y":3.25},
+ {"label":"K02", "x":0, "y":4.25},
+ {"label":"K12", "x":1, "y":4.25},
+ {"label":"K22", "x":2, "y":4.25},
+ {"label":"K32", "x":3, "y":4.25},
+ {"label":"K01", "x":0, "y":5.25},
+ {"label":"K11", "x":1, "y":5.25},
+ {"label":"K21", "x":2, "y":5.25},
+ {"label":"K31", "x":3, "y":5.25}
+ ]
+ },
+ "LAYOUT": {
+ "width": 6.25,
+ "height": 4,
+ "key_count": 24,
+ "layout": [
+ {"label":"K01", "x":0, "y":0},
+ {"label":"K02", "x":1, "y":0},
+ {"label":"K03", "x":2, "y":0},
+ {"label":"K04", "x":3, "y":0},
+ {"label":"K05", "x":4, "y":0},
+ {"label":"K06", "x":5.25, "y":0},
+ {"label":"K11", "x":0, "y":1},
+ {"label":"K12", "x":1, "y":1},
+ {"label":"K13", "x":2, "y":1},
+ {"label":"K14", "x":3, "y":1},
+ {"label":"K15", "x":4, "y":1},
+ {"label":"K16", "x":5.25, "y":1},
+ {"label":"K21", "x":0, "y":2},
+ {"label":"K22", "x":1, "y":2},
+ {"label":"K23", "x":2, "y":2},
+ {"label":"K24", "x":3, "y":2},
+ {"label":"K25", "x":4, "y":2},
+ {"label":"K26", "x":5.25, "y":2},
+ {"label":"K31", "x":0, "y":3},
+ {"label":"K32", "x":1, "y":3},
+ {"label":"K33", "x":2, "y":3},
+ {"label":"K34", "x":3, "y":3},
+ {"label":"K35", "x":4, "y":3},
+ {"label":"K36", "x":5.25, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/ymdk_np21/keymaps/default/keymap.c b/keyboards/ymdk_np21/keymaps/default/keymap.c
index 3ade30479f..143f4f61bb 100644
--- a/keyboards/ymdk_np21/keymaps/default/keymap.c
+++ b/keyboards/ymdk_np21/keymaps/default/keymap.c
@@ -1,7 +1,7 @@
#include QMK_KEYBOARD_H
#define _NP 0
-#define _BL 1
+#define _BL 1
enum custom_keycodes {
NP = SAFE_RANGE,
@@ -9,38 +9,24 @@ enum custom_keycodes {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------.
- * | 0 | 1 | 4 | 7 | NUM | ESC |
- * |------+------+------+------+------+------|
- * | . | 2 | 5 | 8 | / | TAB |---,
- * |------+------+------+------+------+------|USB|
- * | DOT | 3 | 6 | 9 | * | BS |---'
- * |------+------+------+------+------+------|
- * | Enter| Enter| + | + | - | FN |
- * `-----------------------------------------'
- */
-[_NP] = LAYOUT( \
- KC_KP_0, KC_KP_1, KC_KP_4, KC_KP_7, KC_NUMLOCK, KC_ESC, \
- KC_DOT, KC_KP_2, KC_KP_5, KC_KP_8, KC_KP_SLASH, KC_TAB, \
- KC_KP_DOT, KC_KP_3, KC_KP_6, KC_KP_9, KC_KP_ASTERISK, KC_BSPACE, \
- KC_KP_ENTER, KC_KP_ENTER, KC_KP_PLUS, KC_KP_PLUS, KC_KP_MINUS, MO(_BL) \
-),
-/* Qwerty
- * ,---------------------------------------------.
- * | BL_BRTG | | | | | |
- * |---------+--------+---------+--------+---+---|
- * | | BL_OFF | BL_TOGG | BL_ON | | |---,
- * |---------+--------+---------+--------+---+---|USB|
- * | | | | | | |---'
- * |---------+--------+---------+--------+---+---|
- * | BL_DEC | BL_DEC | BL_INC | BL_INC | | |
- * `---------------------------------------------'
- */
-[_BL] = LAYOUT( \
- BL_BRTG, _______, _______, _______, _______, _______, \
- _______, BL_OFF, BL_TOGG, BL_ON, _______, _______, \
- _______, _______, _______, _______, _______, _______, \
- BL_DEC, BL_DEC, BL_INC, BL_INC, _______, _______ \
-)
+ /* Qwerty */
+
+ [_NP] = LAYOUT_ortho_6x4(
+ KC_ESC, KC_TAB, KC_BSPC, MO(_BL),
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_DOT, KC_PDOT, KC_PENT
+ ),
+
+ [_BL] = LAYOUT_ortho_6x4(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, BL_ON, _______, BL_INC,
+ _______, BL_TOGG, _______, BL_INC,
+ _______, BL_OFF, _______, BL_DEC,
+ BL_BRTG, _______, _______, BL_DEC
+ )
+
};
diff --git a/keyboards/ymdk_np21/keymaps/default/readme.md b/keyboards/ymdk_np21/keymaps/default/readme.md
new file mode 100644
index 0000000000..aca4c0caba
--- /dev/null
+++ b/keyboards/ymdk_np21/keymaps/default/readme.md
@@ -0,0 +1,26 @@
+# default
+
+The default keymap for the YMDK NP21 keypad.
+
+ Base Layer Function Layer
+ .-----. .-----.
+ | USB | | USB |
+ ,-------------------------------. ,-------------------------------.
+ | Esc | Tab | Back | Fn | | | | |▒▒▒▒▒▒▒|
+ | | | Space | | | | | |▒▒▒▒▒▒▒|
+ |-------+-------+-------+-------| |-------+-------+-------+-------|
+ | Num | / | * | - | | | | | |
+ | Lock | | | | | | | | |
+ |-------+-------+-------+-------| |-------+-------+-------+-------|
+ | 7 | 8 | 9 | + | | | BL | | BL |
+ | Home | Up | PgUp | | | | On | | Inc |
+ |-------+-------+-------+-------| |-------+-------+-------+-------|
+ | 4 | 5 | 6 | + | | | BL | | BL |
+ | Left | | Right | | | | Togg | | Inc |
+ |-------+-------+-------+-------| |-------+-------+-------+-------|
+ | 1 | 2 | 3 | Ent | | | BL | | BL |
+ | End | Down | PgDn | | | | Off | | Dec |
+ |-------+-------+-------+-------| |-------+-------+-------+-------|
+ | 0 | . | . | Ent | | BL | | | BL |
+ | Ins | | Del | | | Brthg | | | Dec |
+ `-------------------------------' `-------------------------------'
diff --git a/keyboards/ymdk_np21/ymdk_np21.h b/keyboards/ymdk_np21/ymdk_np21.h
index 2cd2d13c21..afd3d38c7d 100644
--- a/keyboards/ymdk_np21/ymdk_np21.h
+++ b/keyboards/ymdk_np21/ymdk_np21.h
@@ -15,19 +15,17 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
-#ifndef KEYMAP_COMMON_H
-#define KEYMAP_COMMON_H
+#pragma once
#include "quantum.h"
-#include "quantum_keycodes.h"
-#include "keycode.h"
-#include "action.h"
-#define LAYOUT( \
- K01, K02, K03, K04, K05, K06, \
- K11, K12, K13, K14, K15, K16, \
- K21, K22, K23, K24, K25, K26, \
- K31, K32, K33, K34, K35, K36 \
+#define LAYOUT_ortho_6x4( \
+ K06, K16, K26, K36, \
+ K05, K15, K25, K35, \
+ K04, K14, K24, K34, \
+ K03, K13, K23, K33, \
+ K02, K12, K22, K32, \
+ K01, K11, K21, K31 \
) \
{ \
{ K06, K05, K04, K03, K02, K01 }, \
@@ -36,4 +34,16 @@ along with this program. If not, see .
{ K36, K35, K34, K33, K32, K31 } \
}
-#endif
+#define LAYOUT( \
+ K01, K02, K03, K04, K05, K06, \
+ K11, K12, K13, K14, K15, K16, \
+ K21, K22, K23, K24, K25, K26, \
+ K31, K32, K33, K34, K35, K36 \
+) LAYOUT_ortho_6x4( \
+ K06, K16, K26, K36, \
+ K05, K15, K25, K35, \
+ K04, K14, K24, K34, \
+ K03, K13, K23, K33, \
+ K02, K12, K22, K32, \
+ K01, K11, K21, K31 \
+)