Skip to content

Commit 2c8d8be

Browse files
noogesdrashna
authored andcommitted
[Keyboard] Add JNAO keyboard (qmk#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
1 parent 70329b4 commit 2c8d8be

File tree

10 files changed

+605
-17
lines changed

10 files changed

+605
-17
lines changed

keyboards/jnao/config.h

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
Copyright 2012 Jun Wako <[email protected]>
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU General Public License as published by
6+
the Free Software Foundation, either version 2 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU General Public License for more details.
13+
14+
You should have received a copy of the GNU General Public License
15+
along 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

keyboards/jnao/info.json

+125
Original file line numberDiff line numberDiff line change
@@ -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+
}

keyboards/jnao/jnao.c

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "jnao.h"

keyboards/jnao/jnao.h

+32
Original file line numberDiff line numberDiff line change
@@ -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+
}
+155
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
#include QMK_KEYBOARD_H
2+
3+
enum layer_names {
4+
_QWERTY,
5+
_LOWER,
6+
_RAISE,
7+
_FUNCTION,
8+
_ADJUST,
9+
};
10+
11+
enum 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+
21+
const 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+
131+
bool 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+
};

0 commit comments

Comments
 (0)