aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny <nooges@users.noreply.github.com>2019-08-24 12:06:27 -0400
committerDrashna Jaelre <drashna@live.com>2019-08-24 09:06:27 -0700
commit2c8d8be7187e800cfd465674449255b25e5d02b9 (patch)
treeb001665e6994e415a3bcedfd9621b9d31b114410
parent70329b4fbb43078cc287203f1e786b5074a8fef9 (diff)
downloadqmk_firmware-2c8d8be7187e800cfd465674449255b25e5d02b9.tar.gz
qmk_firmware-2c8d8be7187e800cfd465674449255b25e5d02b9.zip
[Keyboard] Add JNAO keyboard (#6598)
* Add JNAO keyboard * Use layout macro for default_4x12 * Add bakingpy keymap * Add info.json data * Remove bakingpy keymap from jnao, add ortho_4x12 layout fetching * Clear up default keymaps
-rw-r--r--keyboards/jnao/config.h52
-rw-r--r--keyboards/jnao/info.json125
-rw-r--r--keyboards/jnao/jnao.c1
-rw-r--r--keyboards/jnao/jnao.h32
-rw-r--r--keyboards/jnao/keymaps/default/keymap.c155
-rw-r--r--keyboards/jnao/keymaps/default_4x12/keymap.c150
-rw-r--r--keyboards/jnao/readme.md14
-rw-r--r--keyboards/jnao/rules.mk47
-rw-r--r--layouts/community/ortho_4x12/bakingpy/keymap.c44
-rw-r--r--layouts/community/ortho_4x12/bakingpy/rules.mk2
10 files changed, 605 insertions, 17 deletions
diff --git a/keyboards/jnao/config.h b/keyboards/jnao/config.h
new file mode 100644
index 000000000..f14aa4bb1
--- /dev/null
+++ b/keyboards/jnao/config.h
@@ -0,0 +1,52 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x1337
24#define PRODUCT_ID 0x6017
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maple Computing
27#define PRODUCT JNAO Keyboard
28#define DESCRIPTION A no-frills ortholinear keyboard
29
30/* key matrix size */
31#define MATRIX_ROWS 5
32#define MATRIX_COLS 12
33
34#define MATRIX_ROW_PINS { E6, F0, F5, F6, F7 }
35#define MATRIX_COL_PINS { F1, F4, B1, B2, B3, B7, D1, D2, D4, D6, D7, B4 }
36#define UNUSED_PINS
37
38#define BACKLIGHT_PIN D0
39
40/* COL2ROW or ROW2COL */
41#define DIODE_DIRECTION COL2ROW
42
43/* number of backlight levels */
44#define BACKLIGHT_LEVELS 3
45
46/* Set 0 if debouncing isn't needed */
47#define DEBOUNCE 5
48
49/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
50#define LOCKING_SUPPORT_ENABLE
51/* Locking resynchronize hack */
52#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/jnao/info.json b/keyboards/jnao/info.json
new file mode 100644
index 000000000..177ae4157
--- /dev/null
+++ b/keyboards/jnao/info.json
@@ -0,0 +1,125 @@
1{
2 "keyboard_name": "JNAO",
3 "url": "",
4 "maintainer": "That-Canadian",
5 "width": 12,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_ortho_5x12": {
9 "layout": [
10 {"label":"`", "x":0, "y":0},
11 {"label":"1", "x":1, "y":0},
12 {"label":"2", "x":2, "y":0},
13 {"label":"3", "x":3, "y":0},
14 {"label":"4", "x":4, "y":0},
15 {"label":"5", "x":5, "y":0},
16 {"label":"6", "x":6, "y":0},
17 {"label":"7", "x":7, "y":0},
18 {"label":"8", "x":8, "y":0},
19 {"label":"9", "x":9, "y":0},
20 {"label":"0", "x":10, "y":0},
21 {"label":"Backspace", "x":11, "y":0},
22 {"label":"Tab", "x":0, "y":1},
23 {"label":"Q", "x":1, "y":1},
24 {"label":"W", "x":2, "y":1},
25 {"label":"E", "x":3, "y":1},
26 {"label":"R", "x":4, "y":1},
27 {"label":"T", "x":5, "y":1},
28 {"label":"Y", "x":6, "y":1},
29 {"label":"U", "x":7, "y":1},
30 {"label":"I", "x":8, "y":1},
31 {"label":"O", "x":9, "y":1},
32 {"label":"P", "x":10, "y":1},
33 {"label":"Delete", "x":11, "y":1},
34 {"label":"Esc", "x":0, "y":2},
35 {"label":"A", "x":1, "y":2},
36 {"label":"S", "x":2, "y":2},
37 {"label":"D", "x":3, "y":2},
38 {"label":"F", "x":4, "y":2},
39 {"label":"G", "x":5, "y":2},
40 {"label":"H", "x":6, "y":2},
41 {"label":"J", "x":7, "y":2},
42 {"label":"K", "x":8, "y":2},
43 {"label":"L", "x":9, "y":2},
44 {"label":";", "x":10, "y":2},
45 {"label":"'", "x":11, "y":2},
46 {"label":"Shift", "x":0, "y":3},
47 {"label":"Z", "x":1, "y":3},
48 {"label":"X", "x":2, "y":3},
49 {"label":"C", "x":3, "y":3},
50 {"label":"V", "x":4, "y":3},
51 {"label":"B", "x":5, "y":3},
52 {"label":"N", "x":6, "y":3},
53 {"label":"M", "x":7, "y":3},
54 {"label":",", "x":8, "y":3},
55 {"label":".", "x":9, "y":3},
56 {"label":"/", "x":10, "y":3},
57 {"label":"Enter", "x":11, "y":3},
58 {"label":"Fn", "x":0, "y":4},
59 {"label":"Ctrl", "x":1, "y":4},
60 {"label":"Alt", "x":2, "y":4},
61 {"label":"Meta", "x":3, "y":4},
62 {"label":"Lower", "x":4, "y":4},
63 {"label":"Space", "x":5, "y":4},
64 {"label":"Space", "x":6, "y":4},
65 {"label":"Raise", "x":7, "y":4},
66 {"label":"Left", "x":8, "y":4},
67 {"label":"Down", "x":9, "y":4},
68 {"label":"Up", "x":10, "y":4},
69 {"label":"Right", "x":11, "y":4}
70 ]
71 },
72 "LAYOUT_ortho_4x12": {
73 "layout": [
74 {"label":"Tab", "x":0, "y":0},
75 {"label":"Q", "x":1, "y":0},
76 {"label":"W", "x":2, "y":0},
77 {"label":"E", "x":3, "y":0},
78 {"label":"R", "x":4, "y":0},
79 {"label":"T", "x":5, "y":0},
80 {"label":"Y", "x":6, "y":0},
81 {"label":"U", "x":7, "y":0},
82 {"label":"I", "x":8, "y":0},
83 {"label":"O", "x":9, "y":0},
84 {"label":"P", "x":10, "y":0},
85 {"label":"Delete", "x":11, "y":0},
86 {"label":"Esc", "x":0, "y":1},
87 {"label":"A", "x":1, "y":1},
88 {"label":"S", "x":2, "y":1},
89 {"label":"D", "x":3, "y":1},
90 {"label":"F", "x":4, "y":1},
91 {"label":"G", "x":5, "y":1},
92 {"label":"H", "x":6, "y":1},
93 {"label":"J", "x":7, "y":1},
94 {"label":"K", "x":8, "y":1},
95 {"label":"L", "x":9, "y":1},
96 {"label":";", "x":10, "y":1},
97 {"label":"'", "x":11, "y":1},
98 {"label":"Shift", "x":0, "y":2},
99 {"label":"Z", "x":1, "y":2},
100 {"label":"X", "x":2, "y":2},
101 {"label":"C", "x":3, "y":2},
102 {"label":"V", "x":4, "y":2},
103 {"label":"B", "x":5, "y":2},
104 {"label":"N", "x":6, "y":2},
105 {"label":"M", "x":7, "y":2},
106 {"label":",", "x":8, "y":2},
107 {"label":".", "x":9, "y":2},
108 {"label":"/", "x":10, "y":2},
109 {"label":"Enter", "x":11, "y":2},
110 {"label":"Fn", "x":0, "y":3},
111 {"label":"Ctrl", "x":1, "y":3},
112 {"label":"Alt", "x":2, "y":3},
113 {"label":"Meta", "x":3, "y":3},
114 {"label":"Lower", "x":4, "y":3},
115 {"label":"Space", "x":5, "y":3},
116 {"label":"Space", "x":6, "y":3},
117 {"label":"Raise", "x":7, "y":3},
118 {"label":"Left", "x":8, "y":3},
119 {"label":"Down", "x":9, "y":3},
120 {"label":"Up", "x":10, "y":3},
121 {"label":"Right", "x":11, "y":3}
122 ]
123 }
124 }
125}
diff --git a/keyboards/jnao/jnao.c b/keyboards/jnao/jnao.c
new file mode 100644
index 000000000..8a49c747a
--- /dev/null
+++ b/keyboards/jnao/jnao.c
@@ -0,0 +1 @@
#include "jnao.h"
diff --git a/keyboards/jnao/jnao.h b/keyboards/jnao/jnao.h
new file mode 100644
index 000000000..357a025f9
--- /dev/null
+++ b/keyboards/jnao/jnao.h
@@ -0,0 +1,32 @@
1#pragma once
2
3#include "quantum.h"
4
5#define LAYOUT_ortho_5x12( \
6 k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, \
7 k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, \
8 k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, \
9 k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, \
10 k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412 \
11) \
12{ \
13 { k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012 }, \
14 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112 }, \
15 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212 }, \
16 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312 }, \
17 { k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412 } \
18}
19
20#define LAYOUT_ortho_4x12( \
21 k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, \
22 k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, \
23 k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, \
24 k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312 \
25) \
26{ \
27 {k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012}, \
28 {k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112}, \
29 {k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212}, \
30 {k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312}, \
31 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \
32}
diff --git a/keyboards/jnao/keymaps/default/keymap.c b/keyboards/jnao/keymaps/default/keymap.c
new file mode 100644
index 000000000..04f410057
--- /dev/null
+++ b/keyboards/jnao/keymaps/default/keymap.c
@@ -0,0 +1,155 @@
1#include QMK_KEYBOARD_H
2
3enum layer_names {
4 _QWERTY,
5 _LOWER,
6 _RAISE,
7 _FUNCTION,
8 _ADJUST,
9};
10
11enum jnao_keycodes {
12 QWERTY = SAFE_RANGE,
13 LOWER,
14 RAISE,
15};
16
17// Defines for task manager and such
18#define CALTDEL LCTL(LALT(KC_DEL))
19#define TSKMGR LCTL(LSFT(KC_ESC))
20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22
23/* Qwerty
24 * ,-----------------------------------------------------------------------------------.
25 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
26 * |------+------+------+------+------+------+------+------+------+------+------+------|
27 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
28 * |------+------+------+------+------+-------------+------+------+------+------+------|
29 * | Func | A | S | D | F | G | H | J | K | L | ; | Enter|
30 * |------+------+------+------+------+------|------+------+------+------+------+------|
31 * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
32 * |------+------+------+------+------+------+------+------+------+------+------+------|
33 * | Ctrl | ` | GUI | ALT |Lower | Space |Raise | Left | Down | Up |Right |
34 * `-----------------------------------------------------------------------------------'
35 */
36[_QWERTY] = LAYOUT_ortho_5x12( \
37 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
38 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
39 MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
40 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, \
41 KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
42),
43
44/* Lower
45 * ,-----------------------------------------------------------------------------------.
46 * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
47 * |------+------+------+------+------+-------------+------+------+------+------+------|
48 * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
49 * |------+------+------+------+------+-------------+------+------+------+------+------|
50 * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
51 * |------+------+------+------+------+------|------+------+------+------+------+------|
52 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
53 * |------+------+------+------+------+------+------+------+------+------+------+------|
54 * | | | | |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play |
55 * `-----------------------------------------------------------------------------------'
56 */
57[_LOWER] = LAYOUT_ortho_5x12( \
58 KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
59 KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
60 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
61 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE, \
62 _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
63),
64
65/* Raise
66 * ,-----------------------------------------------------------------------------------.
67 * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
68 * |------+------+------+------+------+------+------+------+------+------+------+------|
69 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
70 * |------+------+------+------+------+-------------+------+------+------+------+------|
71 * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
72 * |------+------+------+------+------+------|------+------+------+------+------+------|
73 * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
74 * |------+------+------+------+------+------+------+------+------+------+------+------|
75 * | | , | 0 | . |Lower | Bksp |Raise | Next | Vol- | Vol+ | Play |
76 * `-----------------------------------------------------------------------------------'
77 */
78[_RAISE] = LAYOUT_ortho_5x12( \
79 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
80 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
81 _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \
82 KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, \
83 _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
84),
85
86/* Adjust (Lower + Raise)
87 * ,-----------------------------------------------------------------------------------.
88 * | ESC | F1 | F2 | F3 |ALTF4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
89 * |------+------+------+------+------+------+------+------+------+------+------+------|
90 * |Taskmg| | | | | | | | | | |caltde|
91 * |------+------+------+------+------+-------------+------+------+------+------+------|
92 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | |
93 * |------+------+------+------+------+------|------+------+------+------+------+------|
94 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
95 * |------+------+------+------+------+------+------+------+------+------+------+------|
96 * | | | | | | | | | | | |RESET |
97 * `-----------------------------------------------------------------------------------'
98 */
99[_ADJUST] = LAYOUT_ortho_5x12( \
100 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, \
101 TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL, \
102 _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, \
103 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \
104 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \
105),
106
107/* Function
108 * ,-----------------------------------------------------------------------------------.
109 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
110 * |------+------+------+------+------+------+------+------+------+------+------+------|
111 * | | | | | | | | | up | | | |
112 * |------+------+------+------+------+-------------+------+------+------+------+------|
113 * | | | | | | | | Left | Down |Right | | |
114 * |------+------+------+------+------+------|------+------+------+------+------+------|
115 * | Caps | | | | | | | | | | | |
116 * |------+------+------+------+------+------+------+------+------+------+------+------|
117 * | | | | | | | | | | | |
118 * `-----------------------------------------------------------------------------------'
119 */
120[_FUNCTION] = LAYOUT_ortho_5x12( \
121 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
122 _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \
123 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
124 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
125 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
126)
127
128
129};
130
131bool process_record_user(uint16_t keycode, keyrecord_t *record) {
132 switch (keycode) {
133 case LOWER:
134 if (record->event.pressed) {
135 layer_on(_LOWER);
136 update_tri_layer(_LOWER, _RAISE, _ADJUST);
137 } else {
138 layer_off(_LOWER);
139 update_tri_layer(_LOWER, _RAISE, _ADJUST);
140 }
141 return false;
142 break;
143 case RAISE:
144 if (record->event.pressed) {
145 layer_on(_RAISE);
146 update_tri_layer(_LOWER, _RAISE, _ADJUST);
147 } else {
148 layer_off(_RAISE);
149 update_tri_layer(_LOWER, _RAISE, _ADJUST);
150 }
151 return false;
152 break;
153 }
154 return true;
155};
diff --git a/keyboards/jnao/keymaps/default_4x12/keymap.c b/keyboards/jnao/keymaps/default_4x12/keymap.c
new file mode 100644
index 000000000..8861a36b2
--- /dev/null
+++ b/keyboards/jnao/keymaps/default_4x12/keymap.c
@@ -0,0 +1,150 @@
1#include QMK_KEYBOARD_H
2
3enum layer_names {
4 _QWERTY,
5 _LOWER,
6 _RAISE,
7 _FUNCTION,
8 _ADJUST,
9};
10
11enum planck_keycodes {
12 QWERTY = SAFE_RANGE,
13 LOWER,
14 RAISE
15};
16
17// Defines for task manager and such
18#define CALTDEL LCTL(LALT(KC_DEL))
19#define TSKMGR LCTL(LSFT(KC_ESC))
20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22
23/* Qwerty
24 * ,-----------------------------------------------------------------------------------.
25 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
26 * |------+------+------+------+------+-------------+------+------+------+------+------|
27 * | Func | A | S | D | F | G | H | J | K | L | ; | Enter|
28 * |------+------+------+------+------+------|------+------+------+------+------+------|
29 * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
30 * |------+------+------+------+------+------+------+------+------+------+------+------|
31 * | Ctrl | ` | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
32 * `-----------------------------------------------------------------------------------'
33 */
34[_QWERTY] = LAYOUT_ortho_4x12(
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
36 MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
37 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,
38 KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
39),
40
41/* Lower
42 * ,-----------------------------------------------------------------------------------.
43 * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
44 * |------+------+------+------+------+-------------+------+------+------+------+------|
45 * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
46 * |------+------+------+------+------+------|------+------+------+------+------+------|
47 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
48 * |------+------+------+------+------+------+------+------+------+------+------+------|
49 * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
50 * `-----------------------------------------------------------------------------------'
51 */
52[_LOWER] = LAYOUT_ortho_4x12(
53 KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
54 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
55 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE,
56 _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
57),
58
59/* Raise
60 * ,-----------------------------------------------------------------------------------.
61 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
62 * |------+------+------+------+------+-------------+------+------+------+------+------|
63 * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
64 * |------+------+------+------+------+------|------+------+------+------+------+------|
65 * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
66 * |------+------+------+------+------+------+------+------+------+------+------+------|
67 * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
68 * `-----------------------------------------------------------------------------------'
69 */
70[_RAISE] = LAYOUT_ortho_4x12(
71 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
72 _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
73 KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
74 _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
75),
76
77/* Adjust (Lower + Raise)
78 * ,-----------------------------------------------------------------------------------.
79 * |Taskmg| | | | | | | | | | |caltde|
80 * |------+------+------+------+------+-------------+------+------+------+------+------|
81 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | |
82 * |------+------+------+------+------+------|------+------+------+------+------+------|
83 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
84 * |------+------+------+------+------+------+------+------+------+------+------+------|
85 * | | | | | | | | | | | | RESET|
86 * `-----------------------------------------------------------------------------------'
87 */
88[_ADJUST] = LAYOUT_ortho_4x12(
89 TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CALTDEL,
90 _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______,
91 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET
93),
94
95/* Function
96 * ,-----------------------------------------------------------------------------------.
97 * | | | | | | | | | Up | | | |
98 * |------+------+------+------+------+-------------+------+------+------+------+------|
99 * | | | | | | | | Left | Down |Right | | |
100 * |------+------+------+------+------+------|------+------+------+------+------+------|
101 * | Caps | | | | | | | | | | | |
102 * |------+------+------+------+------+------+------+------+------+------+------+------|
103 * | | | | | | | | | | | |
104 * `-----------------------------------------------------------------------------------'
105 */
106[_FUNCTION] = LAYOUT_ortho_4x12(
107 _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
108 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
109 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
111)
112
113};
114
115#ifdef AUDIO_ENABLE
116
117float tone_startup[][2] = SONG(STARTUP_SOUND);
118float tone_qwerty[][2] = SONG(QWERTY_SOUND);
119float tone_dvorak[][2] = SONG(DVORAK_SOUND);
120float tone_colemak[][2] = SONG(COLEMAK_SOUND);
121float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
122
123float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
124#endif
125
126bool process_record_user(uint16_t keycode, keyrecord_t *record) {
127 switch (keycode) {
128 case LOWER:
129 if (record->event.pressed) {
130 layer_on(_LOWER);
131 update_tri_layer(_LOWER, _RAISE, _ADJUST);
132 } else {
133 layer_off(_LOWER);
134 update_tri_layer(_LOWER, _RAISE, _ADJUST);
135 }
136 return false;
137 break;
138 case RAISE:
139 if (record->event.pressed) {
140 layer_on(_RAISE);
141 update_tri_layer(_LOWER, _RAISE, _ADJUST);
142 } else {
143 layer_off(_RAISE);
144 update_tri_layer(_LOWER, _RAISE, _ADJUST);
145 }
146 return false;
147 break;
148 }
149 return true;
150}
diff --git a/keyboards/jnao/readme.md b/keyboards/jnao/readme.md
new file mode 100644
index 000000000..08cf10aca
--- /dev/null
+++ b/keyboards/jnao/readme.md
@@ -0,0 +1,14 @@
1JNAO
2====
3
4An no-frills 5x12 or 4x12 ortholinear keyboard
5
6Keyboard Maintainer: [That-Canadian](https://github.com/that-canadian)
7Hardware Supported: JNAO PCB
8Hardware Availability: [SpaceCat](https://spacecat.design) and [Keebio](https://keeb.io/)
9
10Make example for this keyboard (after setting up your build environment):
11
12 make jnao:default
13
14See 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/jnao/rules.mk b/keyboards/jnao/rules.mk
new file mode 100644
index 000000000..396983bc0
--- /dev/null
+++ b/keyboards/jnao/rules.mk
@@ -0,0 +1,47 @@
1# MCU name
2MCU = atmega32u4
3
4
5# Bootloader selection
6# Teensy halfkay
7# Pro Micro caterina
8# Atmel DFU atmel-dfu
9# LUFA DFU lufa-dfu
10# QMK DFU qmk-dfu
11# atmega32a bootloadHID
12BOOTLOADER = atmel-dfu
13
14
15# If you don't know the bootloader type, then you can specify the
16# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
17# Teensy halfKay 512
18# Teensy++ halfKay 1024
19# Atmel DFU loader 4096
20# LUFA bootloader 4096
21# USBaspLoader 2048
22# OPT_DEFS += -DBOOTLOADER_SIZE=4096
23
24
25# Build Options
26# change yes to no to disable
27#
28BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
29MOUSEKEY_ENABLE = no # Mouse keys(+4700)
30EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
31CONSOLE_ENABLE = yes # Console for debug(+400)
32COMMAND_ENABLE = yes # Commands for debug and configuration
33# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
34SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
35# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
36NKRO_ENABLE = no # USB Nkey Rollover
37BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
38RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
39MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
40UNICODE_ENABLE = no # Unicode
41BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
42AUDIO_ENABLE = no # Audio output on port C6
43FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
44HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
45
46LAYOUTS = ortho_5x12 ortho_4x12
47LAYOUTS_HAS_RGB = no
diff --git a/layouts/community/ortho_4x12/bakingpy/keymap.c b/layouts/community/ortho_4x12/bakingpy/keymap.c
index 71672d051..eb3b420ee 100644
--- a/layouts/community/ortho_4x12/bakingpy/keymap.c
+++ b/layouts/community/ortho_4x12/bakingpy/keymap.c
@@ -2,13 +2,15 @@
2 2
3extern keymap_config_t keymap_config; 3extern keymap_config_t keymap_config;
4 4
5#define _MAC 0 5enum layer_names {
6#define _WINDOWS 1 6 _MAC,
7#define _TESTMODE 2 7 _WINDOWS,
8#define _LOWER 3 8 _TESTMODE,
9#define _RAISE 4 9 _LOWER,
10#define _FKEYS 5 10 _RAISE,
11#define _ADJUST 16 11 _FKEYS,
12 _ADJUST,
13};
12 14
13enum custom_keycodes { 15enum custom_keycodes {
14 MAC = SAFE_RANGE, 16 MAC = SAFE_RANGE,
@@ -17,7 +19,6 @@ enum custom_keycodes {
17 LOWER, 19 LOWER,
18 RAISE, 20 RAISE,
19 ADJUST, 21 ADJUST,
20 PLAY_ALLSTAR,
21}; 22};
22 23
23#define KC_ KC_TRNS 24#define KC_ KC_TRNS
@@ -35,6 +36,22 @@ enum custom_keycodes {
35#define KC_BL_T BL_TOGG 36#define KC_BL_T BL_TOGG
36#define KC_RMOD RGB_MOD 37#define KC_RMOD RGB_MOD
37 38
39#ifndef LAYOUT_kc_ortho_4x12
40#define LAYOUT_kc_ortho_4x12( \
41 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
42 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
43 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
44 L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
45 ) \
46 LAYOUT_ortho_4x12( \
47 KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
48 KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
49 KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
50 KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
51 )
52
53#endif
54
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 55const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 56
40 [_MAC] = LAYOUT_kc_ortho_4x12( 57 [_MAC] = LAYOUT_kc_ortho_4x12(
@@ -130,28 +147,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
130 147
131}; 148};
132 149
133void persistent_default_layer_set(uint16_t default_layer) {
134 eeconfig_update_default_layer(default_layer);
135 default_layer_set(default_layer);
136}
137
138bool process_record_user(uint16_t keycode, keyrecord_t *record) { 150bool process_record_user(uint16_t keycode, keyrecord_t *record) {
139 switch (keycode) { 151 switch (keycode) {
140 case MAC: 152 case MAC:
141 if (record->event.pressed) { 153 if (record->event.pressed) {
142 persistent_default_layer_set(1UL<<_MAC); 154 set_single_persistent_default_layer(_MAC);
143 } 155 }
144 return false; 156 return false;
145 break; 157 break;
146 case WINDOWS: 158 case WINDOWS:
147 if (record->event.pressed) { 159 if (record->event.pressed) {
148 persistent_default_layer_set(1UL<<_WINDOWS); 160 set_single_persistent_default_layer(_WINDOWS);
149 } 161 }
150 return false; 162 return false;
151 break; 163 break;
152 case TESTMODE: 164 case TESTMODE:
153 if (record->event.pressed) { 165 if (record->event.pressed) {
154 persistent_default_layer_set(1UL<<_TESTMODE); 166 set_single_persistent_default_layer(_TESTMODE);
155 } 167 }
156 return false; 168 return false;
157 break; 169 break;
diff --git a/layouts/community/ortho_4x12/bakingpy/rules.mk b/layouts/community/ortho_4x12/bakingpy/rules.mk
index 17a589cd1..0da75e0be 100644
--- a/layouts/community/ortho_4x12/bakingpy/rules.mk
+++ b/layouts/community/ortho_4x12/bakingpy/rules.mk
@@ -1,5 +1,5 @@
1ifneq ($(LAYOUTS_HAS_RGB), no) 1ifneq ($(LAYOUTS_HAS_RGB), no)
2 RGBLIGHT_ENABLE = yes 2 RGBLIGHT_ENABLE = yes
3endif 3endif
4AUDIO_ENABLE = no 4AUDIO_ENABLE = no
5ifeq ($(strip $(KEYBOARD)), zlant) 5ifeq ($(strip $(KEYBOARD)), zlant)