aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2019-02-16 18:30:14 -0800
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-02-16 18:30:14 -0800
commit16226274c9d217ebca0fefdd957b1e07181d3b46 (patch)
tree83af9d11b6a600d9393b41c9008550cab3037984
parentcbb7e91851fea0174a5e950c22c35a4384eac8e7 (diff)
downloadqmk_firmware-16226274c9d217ebca0fefdd957b1e07181d3b46.tar.gz
qmk_firmware-16226274c9d217ebca0fefdd957b1e07181d3b46.zip
Add numpad_5x6 layout support for Prime M keyboard (#5149)
* Add numpad_5x6 layout support for Prime M keyboard * fix default layout
-rw-r--r--keyboards/primekb/prime_m/info.json40
-rw-r--r--keyboards/primekb/prime_m/keymaps/default/keymap.c38
-rw-r--r--keyboards/primekb/prime_m/keymaps/numpad/config.h19
-rw-r--r--keyboards/primekb/prime_m/keymaps/numpad/keymap.c33
-rw-r--r--keyboards/primekb/prime_m/keymaps/numpad/readme.md1
-rw-r--r--keyboards/primekb/prime_m/prime_m.h20
-rw-r--r--keyboards/primekb/prime_m/rules.mk2
-rw-r--r--layouts/default/numpad_5x6/default_numpad_5x6/keymap.c18
-rw-r--r--layouts/default/numpad_5x6/layout.json6
-rw-r--r--layouts/default/numpad_5x6/readme.md3
10 files changed, 155 insertions, 25 deletions
diff --git a/keyboards/primekb/prime_m/info.json b/keyboards/primekb/prime_m/info.json
index 533252202..822823e62 100644
--- a/keyboards/primekb/prime_m/info.json
+++ b/keyboards/primekb/prime_m/info.json
@@ -1,3 +1,4 @@
1
1{ 2{
2 "keyboard_name": "Prime_M", 3 "keyboard_name": "Prime_M",
3 "url": "https://www.primekb.com", 4 "url": "https://www.primekb.com",
@@ -5,8 +6,43 @@
5 "width": 6, 6 "width": 6,
6 "height": 5, 7 "height": 5,
7 "layouts": { 8 "layouts": {
8 "LAYOUT": { 9 "LAYOUT_ortho_5x6": {
9 "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "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":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}] 10 "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "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":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}]
11 },
12 "LAYOUT_numpad_5x6": {
13 "layout": [
14 {"x":0, "y":0},
15 {"x":1, "y":0},
16 {"x":2, "y":0},
17 {"x":3, "y":0},
18 {"x":4, "y":0},
19 {"x":5, "y":0},
20
21 {"x":0, "y":1},
22 {"x":1, "y":1},
23 {"x":2, "y":1},
24 {"x":3, "y":1},
25 {"x":4, "y":1},
26
27 {"x":0, "y":2},
28 {"x":1, "y":2},
29 {"x":2, "y":2},
30 {"x":3, "y":2},
31 {"x":4, "y":2},
32 {"x":5, "y":1, "h":2},
33
34 {"x":0, "y":3},
35 {"x":1, "y":3},
36 {"x":2, "y":3},
37 {"x":3, "y":3},
38 {"x":4, "y":3},
39
40 {"x":0, "y":4},
41 {"x":1, "y":4},
42 {"x":2, "y":4, "w":2},
43 {"x":4, "y":4},
44 {"x":5, "y":3, "h":2}
45 ]
10 } 46 }
11 } 47}
12} 48}
diff --git a/keyboards/primekb/prime_m/keymaps/default/keymap.c b/keyboards/primekb/prime_m/keymaps/default/keymap.c
index d230439d0..6834624d8 100644
--- a/keyboards/primekb/prime_m/keymaps/default/keymap.c
+++ b/keyboards/primekb/prime_m/keymaps/default/keymap.c
@@ -22,28 +22,28 @@ enum custom_keycodes {
22}; 22};
23 23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 [0] = LAYOUT( 25 [0] = LAYOUT_ortho_5x6(
26 KC_ESC, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, LT(2, KC_BSPC), 26 KC_ESC, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, LT(2, KC_BSPC),
27 KC_F1, KC_F2, KC_P7, KC_P8, KC_P9, KC_DEL, 27 KC_F1, KC_F2, KC_P7, KC_P8, KC_P9, KC_DEL,
28 KC_F3, KC_F4, KC_P4, KC_P5, KC_P6, KC_PMNS, 28 KC_F3, KC_F4, KC_P4, KC_P5, KC_P6, KC_PMNS,
29 KC_F5, KC_F6, KC_P1, KC_P2, KC_P3, KC_PPLS, 29 KC_F5, KC_F6, KC_P1, KC_P2, KC_P3, KC_PPLS,
30 KC_LCTL, KC_LALT, TO(1), KC_P0, KC_PDOT, KC_ENT 30 KC_LCTL, KC_LALT, TO(1), KC_P0, KC_PDOT, KC_PENT
31 ), 31 ),
32 32
33 [1] = LAYOUT( 33 [1] = LAYOUT_ortho_5x6(
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, LT(2, KC_F9), 34 KC_ESC, KC_1, KC_2, KC_3, KC_4, LT(2, KC_F9),
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, 35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
36 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, 36 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, 37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
38 KC_LCTL, KC_LALT, TO(0), KC_P, KC_H, KC_SPC 38 KC_LCTL, KC_LALT, TO(0), KC_P, KC_H, KC_SPC
39 ), 39 ),
40 40
41 [2] = LAYOUT( 41 [2] = LAYOUT_ortho_5x6(
42 BL_TOGG, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 42 BL_TOGG, BL_STEP, _______, _______, _______, _______,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 43 _______, _______, _______, _______, _______, _______,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 44 _______, _______, _______, _______, _______, _______,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, 45 _______, _______, _______, _______, _______, KC_VOLU,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD 46 _______, _______, _______, _______, KC_MUTE, KC_VOLD
47 ) 47 )
48}; 48};
49 49
diff --git a/keyboards/primekb/prime_m/keymaps/numpad/config.h b/keyboards/primekb/prime_m/keymaps/numpad/config.h
new file mode 100644
index 000000000..95917a65c
--- /dev/null
+++ b/keyboards/primekb/prime_m/keymaps/numpad/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2018 Jumail Mundekkat
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
diff --git a/keyboards/primekb/prime_m/keymaps/numpad/keymap.c b/keyboards/primekb/prime_m/keymaps/numpad/keymap.c
new file mode 100644
index 000000000..35ff30a0c
--- /dev/null
+++ b/keyboards/primekb/prime_m/keymaps/numpad/keymap.c
@@ -0,0 +1,33 @@
1/* Copyright 2018 Jumail Mundekkat
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_numpad_5x6(
20 KC_ESC, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, KC_PMNS,
21 KC_A, KC_B, KC_P7, KC_P8, KC_P9,
22 KC_C, KC_D, KC_P4, KC_P5, KC_P6, KC_PPLS,
23 KC_E, KC_F, KC_P1, KC_P2, KC_P3,
24 KC_LCTL, TG(1), KC_P0, KC_PDOT, KC_PENT
25 ),
26 [1] = LAYOUT_numpad_5x6(
27 RESET, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, KC_PMNS,
28 KC_A, KC_B, KC_HOME, KC_UP, KC_PGUP,
29 KC_C, KC_D, KC_LEFT, KC_NO, KC_RGHT, KC_PPLS,
30 KC_E, KC_F, KC_END, KC_DOWN, KC_PGDN,
31 KC_LCTL, _______, KC_INS, KC_DEL, KC_PENT
32 ),
33};
diff --git a/keyboards/primekb/prime_m/keymaps/numpad/readme.md b/keyboards/primekb/prime_m/keymaps/numpad/readme.md
new file mode 100644
index 000000000..5654918ab
--- /dev/null
+++ b/keyboards/primekb/prime_m/keymaps/numpad/readme.md
@@ -0,0 +1 @@
# The default keymap for prime_m \ No newline at end of file
diff --git a/keyboards/primekb/prime_m/prime_m.h b/keyboards/primekb/prime_m/prime_m.h
index 0449a66d9..58d17eb6f 100644
--- a/keyboards/primekb/prime_m/prime_m.h
+++ b/keyboards/primekb/prime_m/prime_m.h
@@ -13,12 +13,12 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#ifndef PRIME_M_H 16#pragma once
17#define PRIME_M_H
18 17
19#include "quantum.h" 18#include "quantum.h"
19#define ___ KC_NO
20 20
21#define LAYOUT( \ 21#define LAYOUT_ortho_5x6( \
22 K00, K01, K02, K03, K04, K05, \ 22 K00, K01, K02, K03, K04, K05, \
23 K10, K11, K12, K13, K14, K15, \ 23 K10, K11, K12, K13, K14, K15, \
24 K20, K21, K22, K23, K24, K25, \ 24 K20, K21, K22, K23, K24, K25, \
@@ -32,4 +32,16 @@
32 { K40, K41, K42, K43, K44, K45 } \ 32 { K40, K41, K42, K43, K44, K45 } \
33} 33}
34 34
35#endif 35#define LAYOUT_numpad_5x6( \
36 K00, K01, K02, K03, K04, K05, \
37 K10, K11, K12, K13, K14, \
38 K20, K21, K22, K23, K24, K15, \
39 K30, K31, K32, K33, K34, \
40 K40, K41, K42, K44, K35 \
41) { \
42 { K00, K01, K02, K03, K04, K05 }, \
43 { K10, K11, K12, K13, K14, K15 }, \
44 { K20, K21, K22, K23, K24, ___ }, \
45 { K30, K31, K32, K33, K34, K35 }, \
46 { K40, K41, K42, ___, K44, ___ } \
47}
diff --git a/keyboards/primekb/prime_m/rules.mk b/keyboards/primekb/prime_m/rules.mk
index 8d3b835f1..72ad8325d 100644
--- a/keyboards/primekb/prime_m/rules.mk
+++ b/keyboards/primekb/prime_m/rules.mk
@@ -78,3 +78,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
78AUDIO_ENABLE = no # Audio output on port C6 78AUDIO_ENABLE = no # Audio output on port C6
79FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 79FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
80HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) 80HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
81
82LAYOUTS = ortho_5x6 numpad_5x6
diff --git a/layouts/default/numpad_5x6/default_numpad_5x6/keymap.c b/layouts/default/numpad_5x6/default_numpad_5x6/keymap.c
new file mode 100644
index 000000000..527d08905
--- /dev/null
+++ b/layouts/default/numpad_5x6/default_numpad_5x6/keymap.c
@@ -0,0 +1,18 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = LAYOUT_numpad_5x6(
5 KC_ESC, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, KC_PMNS,
6 KC_A, KC_B, KC_P7, KC_P8, KC_P9,
7 KC_C, KC_D, KC_P4, KC_P5, KC_P6, KC_PPLS,
8 KC_E, KC_F, KC_P1, KC_P2, KC_P3,
9 KC_LCTL, TG(1), KC_P0, KC_PDOT, KC_PENT
10 ),
11 [1] = LAYOUT_numpad_5x6(
12 RESET, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, KC_PMNS,
13 KC_A, KC_B, KC_HOME, KC_UP, KC_PGUP,
14 KC_C, KC_D, KC_LEFT, KC_NO, KC_RGHT, KC_PPLS,
15 KC_E, KC_F, KC_END, KC_DOWN, KC_PGDN,
16 KC_LCTL, _______, KC_INS, KC_DEL, KC_PENT
17 ),
18};
diff --git a/layouts/default/numpad_5x6/layout.json b/layouts/default/numpad_5x6/layout.json
new file mode 100644
index 000000000..7264cd5a6
--- /dev/null
+++ b/layouts/default/numpad_5x6/layout.json
@@ -0,0 +1,6 @@
1["","","",""],
2[{y:0.5},"","","",""],
3["","","",{h:2},""],
4["","",""],
5["","","",{h:2},""],
6[{w:2},"",""]
diff --git a/layouts/default/numpad_5x6/readme.md b/layouts/default/numpad_5x6/readme.md
new file mode 100644
index 000000000..147097c83
--- /dev/null
+++ b/layouts/default/numpad_5x6/readme.md
@@ -0,0 +1,3 @@
1# numpad_5x6
2
3 LAYOUT_numpad_5x6