aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/README.md106
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/keymap.c348
-rw-r--r--keyboards/lily58/keymaps/ninjonas/README.md136
-rw-r--r--keyboards/lily58/keymaps/ninjonas/config.h31
-rw-r--r--keyboards/lily58/keymaps/ninjonas/keymap.c152
-rw-r--r--keyboards/lily58/keymaps/ninjonas/layer_state_reader.c37
-rw-r--r--keyboards/lily58/keymaps/ninjonas/rules.mk5
-rw-r--r--keyboards/pinky/3/keymaps/ninjonas/README.md142
-rw-r--r--keyboards/pinky/3/keymaps/ninjonas/config.h31
-rw-r--r--keyboards/pinky/3/keymaps/ninjonas/keymap.c135
-rw-r--r--users/ninjonas/.gitignore1
-rw-r--r--users/ninjonas/README.md85
-rw-r--r--users/ninjonas/config.h14
-rw-r--r--users/ninjonas/ninjonas.c68
-rw-r--r--users/ninjonas/ninjonas.h112
-rw-r--r--users/ninjonas/process_records.c98
-rw-r--r--users/ninjonas/process_records.h24
-rw-r--r--users/ninjonas/rules.mk18
-rw-r--r--users/ninjonas/tap_dances.c12
-rw-r--r--users/ninjonas/tap_dances.h22
20 files changed, 1577 insertions, 0 deletions
diff --git a/keyboards/hotdox/keymaps/ninjonas/README.md b/keyboards/hotdox/keymaps/ninjonas/README.md
new file mode 100644
index 000000000..b289651a8
--- /dev/null
+++ b/keyboards/hotdox/keymaps/ninjonas/README.md
@@ -0,0 +1,106 @@
1# ninjonas Keymap for [ErgoDox (HotDox)](https://www.alpacakeyboards.com/)
2
3## Setup
4- Ensure you've cloned the [qmk](https://github.com/qmk/qmk_firmware) repo
5- Create directory `ninjonas` on `/keyboards/hotdox/keymaps/`
6- Run `copy_keymap.sh`. This copies the contents of this repo into `%qmk_firmware%/ninjonas/` directory
7- To push your keymap to your keyboard run this command `make clean hotdox:ninjonas:dfu`
8 - this compiles your keymap and creates a `hotdox_ninjonas.hex` file and will atempt to flash your board
9 - if you get the following message:
10 ```
11 dfu-programmer: no device present.
12 Error: Bootloader not found. Trying again in 5s.
13 ```
14 - Press the reset button underneath your ErgoDox keyboard
15 - The following messages should show up and your board has successfuly been flashed
16 ```
17 Bootloader Version: 0x00 (0)
18 Erasing flash... Success
19 Checking memory from 0x0 to 0x6FFF... Empty.
20 Checking memory from 0x0 to 0x5D7F... Empty.
21 0% 100% Programming 0x5D80 bytes...
22 [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
23 0% 100% Reading 0x7000 bytes...
24 [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
25 Validating... Success
26 0x5D80 bytes written into 0x7000 bytes memory (83.48%).
27 ```
28 - The alterenative is follow the steps on [Hotdox flashing guide](https://www.alpacakeyboards.com/flash/hot-dox-ergodox-76-flashing-instructions)
29
30## Keymap
31This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](https://github.com/ninjonas/qmk-yonas/tree/master/users/ninjonas).
32
33### QWERTY
34```c
35/* Keymap 0: QWERTY
36 *
37 * ,--------------------------------------------------. ,--------------------------------------------------.
38 * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
39 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
40 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
41 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
42 * | Esc | A | S | D | F | G |------| |-------| H | J | K | L | ; | ' |
43 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
44 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
45 * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
46 * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_ZOOM|M_PYNV|
47 * `----------------------------------' `----------------------------------'
48 * ,-------------. ,-------------.
49 * | Up | Down | | Left | Right|
50 * ,------|------|------| |------+------+------.
51 * | | | Home | | PgUp | | |
52 * | Space|Backsp|------| |------| Del |Enter |
53 * | |ace | End | | PgDn | | |
54 * `--------------------' `--------------------'
55 */
56```
57
58### LOWER
59```c
60/* Keymap 1: LOWER
61 *
62 * ,--------------------------------------------------. ,----------------------------------------------------.
63 * | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
64 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
65 * | | | |KC_BRU| Play | Mute | | | | PgUp | Home | Up | End | | |
66 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
67 * | | | |KC_BRD| Next |VolUp |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
68 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
69 * | | | | | Prev |VolDn | | | | | | | | | |
70 * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
71 * | | | | | | | | | |M_CODE | |
72 * `----------------------------------' `-----------------------------------'
73 * ,-------------. ,-------------.
74 * | | | | | |
75 * ,------|------|------| |------+------+------.
76 * | | | | | | | |
77 * | | |------| |------| | |
78 * | | | | | | | |
79 * `--------------------' `--------------------'
80 */
81```
82
83### RAISE
84```c
85/* Keymap 2: RAISE
86 *
87 * ,--------------------------------------------------. ,----------------------------------------------------.
88 * | | | | |K_CSCN| | | | | | | | | | |
89 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
90 * | M_MAKE | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
91 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
92 * | M_VRSN | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
93 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
94 * | M_FLSH | | | | | | | | | | | | | | |
95 * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
96 * | | | | | | | | | | | |
97 * `----------------------------------' `-----------------------------------'
98 * ,-------------. ,-------------.
99 * | | | | | |
100 * ,------|------|------| |------+------+------.
101 * | | | | | | | |
102 * | | |------| |------| | |
103 * | | | | | | | |
104 * `--------------------' `--------------------'
105 */
106``` \ No newline at end of file
diff --git a/keyboards/hotdox/keymaps/ninjonas/keymap.c b/keyboards/hotdox/keymaps/ninjonas/keymap.c
new file mode 100644
index 000000000..603cc4c11
--- /dev/null
+++ b/keyboards/hotdox/keymaps/ninjonas/keymap.c
@@ -0,0 +1,348 @@
1/* Copyright 2019 @ninjonas
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#include "ninjonas.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* QWERTY
21 *
22 * ,--------------------------------------------------. ,--------------------------------------------------.
23 * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
24 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
25 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
26 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
27 * | Esc | A | S | D | F | G |------| |-------| H | J | K | L | ; | ' |
28 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
29 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
30 * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
31 * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_ZOOM|M_PYNV|
32 * `----------------------------------' `----------------------------------'
33 * ,-------------. ,-------------.
34 * | Up | Down | | Left | Right|
35 * ,------|------|------| |------+------+------.
36 * | | | Home | | PgUp | | |
37 * | Space|Backsp|------| |------| Del |Enter |
38 * | |ace | End | | PgDn | | |
39 * `--------------------' `--------------------'
40 */
41 [_QWERTY] = LAYOUT_ergodox_wrapper(
42 // LEFT HAND
43 _____________________NUM_LEFT_______________________, KC_MPLY,
44 _____________________QWERTY_L1______________________, KC_NO,
45 _____________________QWERTY_L2______________________,
46 _____________________QWERTY_L3______________________, T_LBRC,
47 M_SHFT, KC_NO, ________MOD_LEFT_________,
48 // LEFT THUMB
49 KC_UP, KC_DOWN,
50 KC_HOME,
51 LT_RAI, KC_BSPC,
52 KC_END,
53
54 //RIGHT HAND
55 K_LOCK, _____________________NUM_RIGHT______________________,
56 KC_NO, _____________________QWERTY_R1______________________,
57 _____________________QWERTY_R2______________________,
58 T_RBRC, _____________________QWERTY_R3______________________,
59 ________MOD_RIGHT________, M_ZOOM, M_PYNV,
60 // RIGHT THUMB
61 KC_LEFT, KC_RGHT,
62 KC_PGUP,
63 KC_PGDN,
64 KC_DEL, LT_LOW
65 ),
66
67/* DVORAK
68 *
69 * ,--------------------------------------------------. ,--------------------------------------------------.
70 * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
71 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
72 * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
73 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
74 * | Esc | A | O | E | U | I |------| |-------| D | H | T | N | S | / |
75 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
76 * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | = |
77 * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
78 * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_ZOOM|M_PYNV|
79 * `----------------------------------' `----------------------------------'
80 * ,-------------. ,-------------.
81 * | Up | Down | | Left | Right|
82 * ,------|------|------| |------+------+------.
83 * | | | Home | | PgUp | | |
84 * | Space|Backsp|------| |------| Del |Enter |
85 * | |ace | End | | PgDn | | |
86 * `--------------------' `--------------------'
87 */
88 [_DVORAK] = LAYOUT_ergodox_wrapper(
89 // LEFT HAND
90 _____________________NUM_LEFT_______________________, KC_MPLY,
91 _____________________DVORAK_L1______________________, KC_NO,
92 _____________________DVORAK_L2______________________,
93 _____________________DVORAK_L3______________________, T_LBRC,
94 M_SHFT, KC_NO, ________MOD_LEFT_________,
95 // LEFT THUMB
96 KC_UP, KC_DOWN,
97 KC_HOME,
98 LT_RAI, KC_BSPC,
99 KC_END,
100
101 //RIGHT HAND
102 K_LOCK, _____________________NUM_RIGHT______________________,
103 KC_NO, _____________________DVORAK_R1______________________,
104 _____________________DVORAK_R2______________________,
105 T_RBRC, _____________________DVORAK_R3______________________,
106 ________MOD_RIGHT________, M_ZOOM, M_PYNV,
107 // RIGHT THUMB
108 KC_LEFT, KC_RGHT,
109 KC_PGUP,
110 KC_PGDN,
111 KC_DEL, LT_LOW
112 ),
113
114/* COLEMAK
115 *
116 * ,--------------------------------------------------. ,--------------------------------------------------.
117 * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
118 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
119 * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
120 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
121 * | Esc | A | R | S | T | D |------| |-------| H | N | E | I | O | ' |
122 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
123 * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | = |
124 * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
125 * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_ZOOM|M_PYNV|
126 * `----------------------------------' `----------------------------------'
127 * ,-------------. ,-------------.
128 * | Up | Down | | Left | Right|
129 * ,------|------|------| |------+------+------.
130 * | | | Home | | PgUp | | |
131 * | Space|Backsp|------| |------| Del |Enter |
132 * | |ace | End | | PgDn | | |
133 * `--------------------' `--------------------'
134 */
135 [_COLEMAK] = LAYOUT_ergodox_wrapper(
136 // LEFT HAND
137 _____________________NUM_LEFT_______________________, KC_MPLY,
138 _____________________COLEMAK_L1_____________________, KC_NO,
139 _____________________COLEMAK_L2_____________________,
140 _____________________COLEMAK_L3_____________________, T_LBRC,
141 M_SHFT, KC_NO, ________MOD_LEFT_________,
142 // LEFT THUMB
143 KC_UP, KC_DOWN,
144 KC_HOME,
145 LT_RAI, KC_BSPC,
146 KC_END,
147
148 //RIGHT HAND
149 K_LOCK, _____________________NUM_RIGHT______________________,
150 KC_NO, _____________________COLEMAK_R1_____________________,
151 _____________________COLEMAK_R2_____________________,
152 T_RBRC, _____________________COLEMAK_R3_____________________,
153 ________MOD_RIGHT________, M_ZOOM, M_PYNV,
154 // RIGHT THUMB
155 KC_LEFT, KC_RGHT,
156 KC_PGUP,
157 KC_PGDN,
158 KC_DEL, LT_LOW
159 ),
160
161/* LOWER
162 *
163 * ,--------------------------------------------------. ,----------------------------------------------------.
164 * | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
165 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
166 * | | | |KC_BRU| Play | Mute | | | | PgUp | Home | Up | End | | |
167 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
168 * | | | |KC_BRD| Next |VolUp |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
169 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
170 * | | | | | Prev |VolDn | | | | | | | | | |
171 * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
172 * | | | | | | | | | |M_CODE | |
173 * `----------------------------------' `-----------------------------------'
174 * ,-------------. ,-------------.
175 * | | | | | |
176 * ,------|------|------| |------+------+------.
177 * | | | | | | | |
178 * | | |------| |------| | |
179 * | | | | | | | |
180 * `--------------------' `--------------------'
181 */
182 [_LOWER] = LAYOUT_ergodox_wrapper(
183 //LEFT HAND
184 _____________________FUNC_LEFT______________________, _______,
185 _______, _______, _______, _________MEDIA_1_________, _______,
186 _______, _______, _______, _________MEDIA_2_________,
187 _______, _______, _______, _________MEDIA_3_________, _______,
188 _______, _______, _______, _______, _______,
189 // LEFT THUMB
190 _______, _______,
191 _______,
192 _______, _______,
193 _______,
194
195 //RIGHT HAND
196 _______, _____________________FUNC_RIGHT_____________________,
197 _______, _______________NAV_1______________, _______, _______,
198 _______________NAV_2______________, K_LOCK, _______,
199 _______, _______, _______, _______, _______, _______, _______,
200 _______, _______, _______, M_CODE, _______,
201 // RIGHT THUMB
202 _______, _______,
203 _______,
204 _______,
205 _______, _______
206 ),
207
208/* RAISE
209 *
210 * ,--------------------------------------------------. ,----------------------------------------------------.
211 * | | | | |K_CSCN| | | | | | | | | | |
212 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
213 * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
214 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
215 * | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
216 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
217 * | | | | | | | | | | | | | | | |
218 * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
219 * | | | | | | | | | | | |
220 * `----------------------------------' `-----------------------------------'
221 * ,-------------. ,-------------.
222 * | | | | | |
223 * ,------|------|------| |------+------+------.
224 * | | | | | | | |
225 * | | |------| |------| | |
226 * | | | | | | | |
227 * `--------------------' `--------------------'
228 */
229 [_RAISE] = LAYOUT_ergodox_wrapper(
230 //LEFT HAND
231 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_CSCN, XXXXXXX, XXXXXXX,
232 XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX,
233 XXXXXXX, XXXXXXX, _____________MOUSE_2______________,
234 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
235 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
236 // LEFT THUMB
237 _______, _______,
238 _______,
239 _______, _______,
240 _______,
241
242 //RIGHT HAND
243 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
244 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
245 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
246 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
247 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
248 // RIGHT THUMB
249 _______, _______,
250 _______,
251 _______,
252 _______, _______
253 ),
254
255/* ADJUST
256 *
257 * ,--------------------------------------------------. ,----------------------------------------------------.
258 * | | | | | | | | | | | | |COLMAK|DVORAK |QWERTY |
259 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
260 * | M_MAKE | | | | | | | | | | | | | | |
261 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
262 * | M_VRSN | | | | | |------| |-------| | | | | | |
263 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
264 * | M_FLSH | | | | | | | | | | | | | | |
265 * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
266 * | | | | | | | | | | | |
267 * `----------------------------------' `-----------------------------------'
268 * ,-------------. ,-------------.
269 * | | | | | |
270 * ,------|------|------| |------+------+------.
271 * | | | | | | | |
272 * | | |------| |------| | |
273 * | | | | | | | |
274 * `--------------------' `--------------------'
275 */
276 [_ADJUST] = LAYOUT_ergodox_wrapper(
277 //LEFT HAND
278 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
279 M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
280 M_VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
281 M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
282 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
283 // LEFT THUMB
284 _______, _______,
285 _______,
286 _______, _______,
287 _______,
288
289 //RIGHT HAND
290 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY,
291 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
292 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
293 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
294 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
295 // RIGHT THUMB
296 _______, _______,
297 _______,
298 _______,
299 _______, _______
300 ),
301/* Keymap XX: TEMPLATE
302 *
303 * ,--------------------------------------------------. ,----------------------------------------------------.
304 * | | | | | | | | | | | | | | | |
305 * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
306 * | | | | | | | | | | | | | | | |
307 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
308 * | | | | | | |------| |-------| | | | | | |
309 * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
310 * | | | | | | | | | | | | | | | |
311 * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
312 * | | | | | | | | | | | |
313 * `----------------------------------' `-----------------------------------'
314 * ,-------------. ,-------------.
315 * | | | | | |
316 * ,------|------|------| |------+------+------.
317 * | | | | | | | |
318 * | | |------| |------| | |
319 * | | | | | | | |
320 * `--------------------' `--------------------'
321[_XXLAYER] = LAYOUT_ergodox_wrapper(
322 //LEFT HAND
323 _______, _______, _______, _______, _______, _______, _______,
324 _______, _______, _______, _______, _______, _______, _______,
325 _______, _______, _______, _______, _______, _______,
326 _______, _______, _______, _______, _______, _______, _______,
327 _______, _______, _______, _______, _______,
328 // LEFT THUMB
329 _______, _______,
330 _______,
331 _______, _______,
332 _______,
333
334 //RIGHT HAND
335 _______, _______, _______, _______, _______, _______, _______,
336 _______, _______, _______, _______, _______, _______, _______,
337 _______, _______, _______, _______, _______, _______,
338 _______, _______, _______, _______, _______, _______, _______,
339 _______, _______, _______, _______, _______,
340 // RIGHT THUMB
341 _______, _______,
342 _______,
343 _______,
344 _______, _______
345 ),
346
347 */
348}; \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/ninjonas/README.md b/keyboards/lily58/keymaps/ninjonas/README.md
new file mode 100644
index 000000000..73f7f9d94
--- /dev/null
+++ b/keyboards/lily58/keymaps/ninjonas/README.md
@@ -0,0 +1,136 @@
1# ninjonas Keymap for [Lily58 Pro](https://github.com/kata0510/Lily58)
2
3## Keymap
4This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas).
5
6> Make sure you update QMK's lily58 config.h TAPPING_TERM to 200ms or this won't compile
7
8More information about the Lily58 pro keyboard can be found [here](https://yuchi-kbd.hatenablog.com/entry/2018/12/23/214342)
9
10### QWERTY
11```c
12/* QWERTY
13 * ,-----------------------------------------. ,-----------------------------------------.
14 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
15 * |------+------+------+------+------+------| |------+------+------+------+------+------|
16 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
17 * |------+------+------+------+------+------| |------+------+------+------+------+------|
18 * | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
19 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
20 * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / | = |
21 * `-----------------------------------------/ / \ \-----------------------------------------'
22 * | Alt |  | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
23 * | | | |/ / \ \ | | | |
24 * `----------------------------' '------''--------------------'
25 */
26```
27
28### DVORAK
29```c
30/* DVORAK
31 * ,-----------------------------------------. ,-----------------------------------------.
32 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
33 * |------+------+------+------+------+------| |------+------+------+------+------+------|
34 * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
35 * |------+------+------+------+------+------| |------+------+------+------+------+------|
36 * | ESC | A | O | E | U | I |-------. ,-------| D | H | T | N | S | / |
37 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
38 * |LShift| ; | Q | J | K | X |-------| |-------| B | M | W | V | Z | = |
39 * `-----------------------------------------/ / \ \-----------------------------------------'
40 * | Alt |  | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
41 * | | | |/ / \ \ | | | |
42 * `----------------------------' '------''--------------------'
43 */
44```
45
46### COLEMAK
47```c
48/* COLEMAK
49 * ,-----------------------------------------. ,-----------------------------------------.
50 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
51 * |------+------+------+------+------+------| |------+------+------+------+------+------|
52 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
53 * |------+------+------+------+------+------| |------+------+------+------+------+------|
54 * | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
55 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
56 * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / | = |
57 * `-----------------------------------------/ / \ \-----------------------------------------'
58 * | Alt |  | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
59 * | | | |/ / \ \ | | | |
60 * `----------------------------' '------''--------------------'
61 */
62```
63
64### LOWER
65```c
66/* LOWER
67 * ,------------------------------------------. ,------------------------------------------.
68 * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
69 * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
70 * | | | |KC_BRIU| Play | Mute | | PgUp | Home | Up | End | | |
71 * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
72 * | | | |KC_BRID| Next |VolUp |-------. ,-------| PgDn | Left | Down |Right |K_LOCK | |
73 * |------+------+------+-------+------+------| | | |------+------+------+------+-------+------|
74 * | |M_SHFT| | | Prev |VolDn |-------| |-------| | | | |M_ZOOM |M_PYNV|
75 * `------------------------------------------/ / \ \------------------------------------------'
76 * | | | | / / \ \ | |M_CODE| |
77 * | | | |/ / \ \ | | | |
78 * `----------------------------' '------''--------------------'
79 */
80```
81
82### RAISE
83```c
84/* RAISE
85 * ,-----------------------------------------. ,-----------------------------------------.
86 * | | | | |K_CSCN| | | | | | | | |
87 * |------+------+------+------+------+------| |------+------+------+------+------+------|
88 * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | |
89 * |------+------+------+------+------+------| |------+------+------+------+------+------|
90 * | | | MS_L | MS_D | MS_R | WH_D |-------. ,-------| | | | | | |
91 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
92 * | | | | | | |-------| |-------| | | | | | |
93 * `-----------------------------------------/ / \ \-----------------------------------------'
94 * | | | | / / \ \ | | | |
95 * | | | |/ / \ \ | | | |
96 * `----------------------------' '------''--------------------'
97 */
98```
99
100### ADJUST
101```c
102/* ADJUST
103 * ,------------------------------------------. ,-----------------------------------------.
104 * |EEP_RST| | | | | | | | | |COLMAK|DVORAK|QWERTY|
105 * |-------+------+------+------+------+------| |------+------+------+------+------+------|
106 * |M_MAKE | | | | | | | | | | | | |
107 * |-------+------+------+------+------+------| |------+------+------+------+------+------|
108 * |M_VRSN | | | | | |-------. ,-------| | | | | | |
109 * |-------+------+------+------+------+------| | | |------+------+------+------+------+------|
110 * |M_FLSH | | | | | |-------| |-------| | | | | | |
111 * `------------------------------------------/ / \ \-----------------------------------------'
112 * | | | | / / \ \ | | | |
113 * | | | |/ / \ \ | | | |
114 * `----------------------------' '------''--------------------'
115 */
116```
117
118<!--
119### TEMPLATE
120```c
121/* TEMPLATE
122 * ,-----------------------------------------. ,-----------------------------------------.
123 * | | | | | | | | | | | | | |
124 * |------+------+------+------+------+------| |------+------+------+------+------+------|
125 * | | | | | | | | | | | | | |
126 * |------+------+------+------+------+------| |------+------+------+------+------+------|
127 * | | | | | | |-------. ,-------| | | | | | |
128 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
129 * | | | | | | |-------| |-------| | | | | | |
130 * `-----------------------------------------/ / \ \-----------------------------------------'
131 * | | | | / / \ \ | | | |
132 * | | | |/ / \ \ | | | |
133 * `----------------------------' '------''--------------------'
134 */
135```
136--> \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/ninjonas/config.h b/keyboards/lily58/keymaps/ninjonas/config.h
new file mode 100644
index 000000000..7a5587d56
--- /dev/null
+++ b/keyboards/lily58/keymaps/ninjonas/config.h
@@ -0,0 +1,31 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23/* Select hand configuration */
24
25#define MASTER_LEFT
26// #define MASTER_RIGHT
27// #define EE_HANDS
28
29#define SSD1306OLED
30#define USE_SERIAL_PD2
31#define TAPPING_FORCE_HOLD \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/ninjonas/keymap.c b/keyboards/lily58/keymaps/ninjonas/keymap.c
new file mode 100644
index 000000000..81436aee3
--- /dev/null
+++ b/keyboards/lily58/keymaps/ninjonas/keymap.c
@@ -0,0 +1,152 @@
1/* Copyright 2019 @ninjonas
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#include "ninjonas.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21/* QWERTY
22 * ,-----------------------------------------. ,-----------------------------------------.
23 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
24 * |------+------+------+------+------+------| |------+------+------+------+------+------|
25 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
26 * |------+------+------+------+------+------| |------+------+------+------+------+------|
27 * | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
28 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
29 * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / | = |
30 * `-----------------------------------------/ / \ \-----------------------------------------'
31 * | Alt |  | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
32 * | | | |/ / \ \ | | | |
33 * `----------------------------' '------''--------------------'
34 */
35 [_QWERTY] = LAYOUT_wrapper(
36 _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________, \
37 _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________, \
38 _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________, \
39 _____________________QWERTY_L3______________________, T_LBRC, T_RBRC, _____________________QWERTY_R3______________________, \
40 ________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
41 ),
42
43/* DVORAK
44 * ,-----------------------------------------. ,-----------------------------------------.
45 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
46 * |------+------+------+------+------+------| |------+------+------+------+------+------|
47 * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
48 * |------+------+------+------+------+------| |------+------+------+------+------+------|
49 * | ESC | A | O | E | U | I |-------. ,-------| D | H | T | N | S | / |
50 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
51 * |LShift| ; | Q | J | K | X |-------| |-------| B | M | W | V | Z | = |
52 * `-----------------------------------------/ / \ \-----------------------------------------'
53 * | Alt |  | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
54 * | | | |/ / \ \ | | | |
55 * `----------------------------' '------''--------------------'
56 */
57 [_DVORAK] = LAYOUT_wrapper(
58 _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________, \
59 _____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________, \
60 _____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________, \
61 _____________________DVORAK_L3______________________, T_LBRC, T_RBRC, _____________________DVORAK_R3______________________, \
62 ________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
63 ),
64
65/* COLEMAK
66 * ,-----------------------------------------. ,-----------------------------------------.
67 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
68 * |------+------+------+------+------+------| |------+------+------+------+------+------|
69 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
70 * |------+------+------+------+------+------| |------+------+------+------+------+------|
71 * | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
72 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
73 * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / | = |
74 * `-----------------------------------------/ / \ \-----------------------------------------'
75 * | Alt |  | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
76 * | | | |/ / \ \ | | | |
77 * `----------------------------' '------''--------------------'
78 */
79 [_COLEMAK] = LAYOUT_wrapper(
80 _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________, \
81 _____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________, \
82 _____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________, \
83 _____________________COLEMAK_L3_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R3_____________________, \
84 ________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
85 ),
86
87/* LOWER
88 * ,------------------------------------------. ,------------------------------------------.
89 * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
90 * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
91 * | | | |KC_BRIU| Play | Mute | | PgUp | Home | Up | End | | |
92 * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
93 * | | | |KC_BRID| Next |VolUp |-------. ,-------| PgDn | Left | Down |Right |K_LOCK | |
94 * |------+------+------+-------+------+------| | | |------+------+------+------+-------+------|
95 * |M_SHFT| | | | Prev |VolDn |-------| |-------| | | | |M_ZOOM |M_PYNV|
96 * `------------------------------------------/ / \ \------------------------------------------'
97 * | | | | / / \ \ | |M_CODE| |
98 * | | | |/ / \ \ | | | |
99 * `----------------------------' '------''--------------------'
100 */
101[_LOWER] = LAYOUT_wrapper( \
102 _____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________, \
103 _______, _______, _______, _________MEDIA_1_________, _______________NAV_1______________, _______, _______, \
104 _______, _______, _______, _________MEDIA_2_________, _______________NAV_2______________, K_LOCK, _______, \
105 M_SHFT, _______, _______, _________MEDIA_3_________, _______, _______, _______, _______, _______, _______, M_ZOOM, M_PYNV, \
106 __________________________________, _______, _______, M_CODE, _______ \
107 ),
108
109/* RAISE
110 * ,-----------------------------------------. ,-----------------------------------------.
111 * | | | | |K_CSCN| | | | | | | | |
112 * |------+------+------+------+------+------| |------+------+------+------+------+------|
113 * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | |
114 * |------+------+------+------+------+------| |------+------+------+------+------+------|
115 * | | | MS_L | MS_D | MS_R | WH_D |-------. ,-------| | | | | | |
116 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
117 * | | | | | | |-------| |-------| | | | | | |
118 * `-----------------------------------------/ / \ \-----------------------------------------'
119 * | | | | / / \ \ | | | |
120 * | | | |/ / \ \ | | | |
121 * `----------------------------' '------''--------------------'
122 */
123[_RAISE] = LAYOUT_wrapper( \
124 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_CSCN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
125 XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
126 XXXXXXX, XXXXXXX, _____________MOUSE_2______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
127 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
128 __________________________________, __________________________________ \
129 ),
130
131/* ADJUST
132 * ,------------------------------------------. ,-----------------------------------------.
133 * |EEP_RST| | | | | | | | | |COLMAK|DVORAK|QWERTY|
134 * |-------+------+------+------+------+------| |------+------+------+------+------+------|
135 * | M_MAKE| | | | | | | | | | | | |
136 * |-------+------+------+------+------+------| |------+------+------+------+------+------|
137 * | M_VRSN| | | | | |-------. ,-------| | | | | | |
138 * |-------+------+------+------+------+------| | | |------+------+------+------+------+------|
139 * | M_FLSH| | | | | |-------| |-------| | | | | | |
140 * `------------------------------------------/ / \ \-----------------------------------------'
141 * | | | | / / \ \ | | | |
142 * | | | |/ / \ \ | | | |
143 * `----------------------------' '------''--------------------'
144 */
145[_ADJUST] = LAYOUT_wrapper( \
146 EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY, \
147 M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
148 M_VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
149 M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
150 __________________________________, __________________________________ \
151 ),
152}; \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/ninjonas/layer_state_reader.c b/keyboards/lily58/keymaps/ninjonas/layer_state_reader.c
new file mode 100644
index 000000000..883eaca03
--- /dev/null
+++ b/keyboards/lily58/keymaps/ninjonas/layer_state_reader.c
@@ -0,0 +1,37 @@
1#include QMK_KEYBOARD_H
2#include <stdio.h>
3#include "lily58.h"
4#include "ninjonas.h"
5
6char layer_state_str[24];
7
8const char *read_layer_state(void) {
9 switch (biton32(layer_state))
10 {
11 case _RAISE:
12 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise");
13 break;
14 case _LOWER:
15 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower");
16 break;
17 case _ADJUST:
18 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
19 break;
20 default:
21 switch (biton32(default_layer_state)) {
22 case _COLEMAK:
23 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Colemak");
24 break;
25 case _DVORAK:
26 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Dvorak");
27 break;
28 case _QWERTY:
29 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Qwerty");
30 break;
31 default:
32 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
33 }
34 }
35
36 return layer_state_str;
37} \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/ninjonas/rules.mk b/keyboards/lily58/keymaps/ninjonas/rules.mk
new file mode 100644
index 000000000..4ea023572
--- /dev/null
+++ b/keyboards/lily58/keymaps/ninjonas/rules.mk
@@ -0,0 +1,5 @@
1# If you want to change the display of OLED, you need to change here
2SRC += ./lib/glcdfont.c \
3 layer_state_reader.c \
4 ./lib/logo_reader.c \
5 ./lib/keylogger.c \
diff --git a/keyboards/pinky/3/keymaps/ninjonas/README.md b/keyboards/pinky/3/keymaps/ninjonas/README.md
new file mode 100644
index 000000000..8db995d4e
--- /dev/null
+++ b/keyboards/pinky/3/keymaps/ninjonas/README.md
@@ -0,0 +1,142 @@
1# ninjonas Keymap for [Pinky3](https://github.com/tamanishi/Pinky3)
2
3## Keymap
4This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../../users/ninjonas).
5
6More information about the Pinky3 keyboard can be found [here](https://github.com/tamanishi/Pinky3)
7
8### QWERTY
9```c
10/*
11,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
12| Tab| Q| W| E| R| T| Play| | Mute| Y| U| I| O| P| \|
13|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
14| Esc/Caps| A| S| D| F| G| [| | ]| H| J| K| L| ;| '|
15|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
16| Shift| Z| X| C| V| B| Spc/RAI| | Ent/LOW| N| M| ,| .| /| =|
17`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
18 | ALT| | CTRL| Spc/NUM| | Ent/FUNC| BckSpace| Del| LOWER|
19 `---------------------------------------' `---------------------------------------'
20*/
21```
22
23### DVORAK
24```c
25/*
26,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
27| Tab| '| ,| .| P| Y| Play| | Mute| F| G| C| R| L| \|
28|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
29| Esc/Caps| A| O| E| U| I| [| | ]| D| H| T| N| S| /|
30|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
31| Shift| ;| Q| J| K| X| Spc/RAI| | Ent/LOW| B| M| W| V| Z| =|
32`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
33 | ALT| | CTRL| Spc/NUM| | Ent/FUNC| BckSpace| Del| LOWER|
34 `---------------------------------------' `---------------------------------------'
35*/
36```
37
38### COLEMAK
39```c
40/*
41,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
42| Tab| Q| W| F| P| G| Play| | Mute| J| L| U| Y| ;| \|
43|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
44| Esc/Caps| A| R| S| T| D| [| | ]| H| N| E| I| O| '|
45|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
46| Shift| Z| X| C| V| B| Spc/RAI| | Ent/LOW| K| M| ,| .| /| =|
47`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
48 | ALT| | CTRL| Spc/NUM| | Ent/FUNC| BckSpace| Del| LOWER|
49 `---------------------------------------' `---------------------------------------'
50*/
51```
52
53### LOWER
54```c
55/*
56,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
57| | | | BriUp| Play| Mute| K_CSCN| | | PgUp| Home| Up| End| | |
58|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
59| | | | BriDn| Next| VolUp| | | | PgDn| Left| Down| Right| K_LOCK| |
60|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
61| M_SHFT| | | | Prev| VolDn| | | | | | | | M_ZOOM| M_PYNV|
62`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
63 | | | | | | | | M_CODE| |
64 `---------------------------------------' `---------------------------------------'
65*/
66```
67
68### RAISE
69```c
70/*
71,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
72| | | MS_1| MS_U| MS_2| WH_U| | | | | | | | | |
73|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
74| | | MS_L| MS_D| MS_R| WH_D| | | | | | | | | |
75|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
76| | | | | | | | | | | | | | | |
77`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
78 | | | | | | | | | |
79 `---------------------------------------' `---------------------------------------'
80*/
81```
82
83### ADJUST
84```c
85/*
86,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
87| M_MAKE| EEP_RST| | | | | | | | | | | COLEMAK| DVORAK| QWERTY|
88|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
89| M_VRSN| | | | | | | | | | | | | | |
90|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
91| M_FLSH| | | | | | | | | | | | | | |
92`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
93 | | | | | | | | | |
94 `---------------------------------------' `---------------------------------------'
95*/
96```
97
98### NUMBERS
99```c
100/*
101,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
102| `| 1| 2| 3| 4| 5| | | | 6| 7| 8| 9| 0| -|
103|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
104| ~| !| @| #| $| %| | | | ^| &| *| (| )| _|
105|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
106| | | | | | | | | | | | | | | |
107`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
108 | | | | | | | | | |
109 `---------------------------------------' `---------------------------------------'
110*/
111```
112
113### FUNCTIONS
114```c
115/*
116,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
117| F11| F2| F3| F4| F4| F5| | | | F6| F7| F8| F9| F10| F12|
118|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
119| | | | | | | | | | | | | | | |
120|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
121| | | | | | | | | | | | | | | |
122`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
123 | | | | | | | | | |
124 `---------------------------------------' `---------------------------------------'
125*/
126```
127<!--
128### TEMPLATE
129```c
130/*
131,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
132| | | | | | | | | | | | | | | |
133|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
134| | | | | | | | | | | | | | | |
135|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
136| | | | | | | | | | | | | | | |
137`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
138 | | | | | | | | | |
139 `---------------------------------------' `---------------------------------------'
140*/
141```
142--> \ No newline at end of file
diff --git a/keyboards/pinky/3/keymaps/ninjonas/config.h b/keyboards/pinky/3/keymaps/ninjonas/config.h
new file mode 100644
index 000000000..585bd8cb5
--- /dev/null
+++ b/keyboards/pinky/3/keymaps/ninjonas/config.h
@@ -0,0 +1,31 @@
1/* Copyright 2018 'Masayuki Sunahara'
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//#define USE_MATRIX_I2C
20
21/* Select hand configuration */
22
23#define MASTER_LEFT
24// #define MASTER_RIGHT
25// #define EE_HANDS
26
27#define USE_SERIAL_PD2
28
29#define TAPPING_FORCE_HOLD
30#define TAPPING_TERM 200
31#define RETRO_TAPPPING \ No newline at end of file
diff --git a/keyboards/pinky/3/keymaps/ninjonas/keymap.c b/keyboards/pinky/3/keymaps/ninjonas/keymap.c
new file mode 100644
index 000000000..4d2412fbf
--- /dev/null
+++ b/keyboards/pinky/3/keymaps/ninjonas/keymap.c
@@ -0,0 +1,135 @@
1/* Copyright 2019 @ninjonas
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#include "ninjonas.h"
18
19// Each layer gets a name for readability, which is then used in the keymap matrix below.
20// The underscores don't mean anything - you can have a layer called STUFF or any other name.
21// Layer names don't all need to be of the same length, obviously, and you can also skip them
22// entirely and just use numbers.
23
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_QWERTY] = LAYOUT_wrapper(
27 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
28 _____________________QWERTY_L1______________________, KC_MPLY, KC_MUTE, _____________________QWERTY_R1______________________,\
29 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
30 _____________________QWERTY_L2______________________, T_LBRC, T_RBRC, _____________________QWERTY_R2______________________,\
31 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
32 _____________________QWERTY_L3______________________, LT_RAI, LT_LOW, _____________________QWERTY_R3______________________,\
33 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
34 ________MOD_LEFT_________, LT_NUM, LT_FUNC, ________MOD_RIGHT________ \
35 //`---------------------------------------' `---------------------------------------'
36 ),
37
38 [_DVORAK] = LAYOUT_wrapper(
39 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
40 _____________________DVORAK_L1______________________, KC_MPLY, KC_MUTE, _____________________DVORAK_R1______________________,\
41 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
42 _____________________DVORAK_L2______________________, T_LBRC, T_RBRC, _____________________DVORAK_R2______________________,\
43 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
44 _____________________DVORAK_L3______________________, LT_RAI, LT_LOW, _____________________DVORAK_R3______________________,\
45 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
46 ________MOD_LEFT_________, LT_NUM, LT_FUNC, ________MOD_RIGHT________ \
47 //`---------------------------------------' `---------------------------------------'
48 ),
49
50 [_COLEMAK] = LAYOUT_wrapper(
51 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
52 _____________________COLEMAK_L1_____________________, KC_MPLY, KC_MUTE, _____________________COLEMAK_R1_____________________,\
53 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
54 _____________________COLEMAK_L2_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R2_____________________,\
55 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
56 _____________________COLEMAK_L3_____________________, LT_RAI, LT_LOW, _____________________COLEMAK_R3_____________________,\
57 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
58 ________MOD_LEFT_________, LT_NUM, LT_FUNC, ________MOD_RIGHT________ \
59 //`---------------------------------------' `---------------------------------------'
60 ),
61
62 [_LOWER] = LAYOUT_wrapper( \
63 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
64 XXXXXXX, XXXXXXX, XXXXXXX, _________MEDIA_1_________, K_CSCN, XXXXXXX, _______________NAV_1______________, XXXXXXX, XXXXXXX,\
65 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
66 XXXXXXX, XXXXXXX, XXXXXXX, _________MEDIA_2_________, XXXXXXX, XXXXXXX, _______________NAV_2______________, K_LOCK, XXXXXXX,\
67 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
68 M_SHFT, XXXXXXX, XXXXXXX, _________MEDIA_3_________, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, M_ZOOM, M_PYNV,\
69 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
70 __________________________________, _______, _______, M_CODE, _______ \
71 //`---------------------------------------' `---------------------------------------'
72 ),
73
74 [_RAISE] = LAYOUT_wrapper( \
75 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
76 XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, XXXXXXX, _____________________XXXXXXX________________________,\
77 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
78 XXXXXXX, XXXXXXX, _____________MOUSE_2______________, XXXXXXX, XXXXXXX, _____________________XXXXXXX________________________,\
79 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
80 _____________________XXXXXXX________________________, _______, _______, _____________________XXXXXXX________________________,\
81 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
82 __________________________________, __________________________________ \
83 //`---------------------------------------' `---------------------------------------'
84 ),
85
86 [_ADJUST] = LAYOUT_wrapper( \
87 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
88 M_MAKE, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY,\
89 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
90 M_VRSN, _____________________XXXXXXX________________________, XXXXXXX, _____________________XXXXXXX________________________,\
91 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
92 M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _____________________XXXXXXX________________________,\
93 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
94 __________________________________, __________________________________ \
95 //`---------------------------------------' `---------------------------------------'
96 ),
97
98 [_NUMBERS] = LAYOUT_wrapper( \
99 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
100 _____________________NUM_LEFT_______________________, XXXXXXX, XXXXXXX, _____________________NUM_RIGHT______________________,\
101 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
102 _____________________SYM_LEFT_______________________, XXXXXXX, XXXXXXX, _____________________SYM_RIGHT______________________,\
103 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
104 ____________________________________________________, _______, _______, ____________________________________________________,\
105 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
106 __________________________________, __________________________________ \
107 //`---------------------------------------' `---------------------------------------'
108 ),
109
110 [_FUNCTIONS] = LAYOUT_wrapper( \
111 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
112 _____________________FUNC_LEFT______________________, XXXXXXX, XXXXXXX, _____________________FUNC_RIGHT_____________________,\
113 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
114 _____________________XXXXXXX________________________, XXXXXXX, XXXXXXX, _____________________XXXXXXX________________________,\
115 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
116 _____________________XXXXXXX________________________, _______, _______, _____________________XXXXXXX________________________,\
117 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
118 __________________________________, __________________________________ \
119 //`---------------------------------------' `---------------------------------------'
120 ),
121
122 /*
123 [_TEMPLATE] = LAYOUT( \
124 //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
125 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
126 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
127 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
128 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
129 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
130 //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
131 _______, _______, _______, _______, _______, _______, _______, _______ \
132 //`---------------------------------------' `---------------------------------------'
133 )
134 */
135}; \ No newline at end of file
diff --git a/users/ninjonas/.gitignore b/users/ninjonas/.gitignore
new file mode 100644
index 000000000..c6df8c013
--- /dev/null
+++ b/users/ninjonas/.gitignore
@@ -0,0 +1 @@
secrets.c
diff --git a/users/ninjonas/README.md b/users/ninjonas/README.md
new file mode 100644
index 000000000..82bd5f09a
--- /dev/null
+++ b/users/ninjonas/README.md
@@ -0,0 +1,85 @@
1# QMK User Configuration for [ninjonas](https://github.com/ninjonas/qmk-yonas)
2Tired of copying and pasting the same macros and tap dances for all my keymaps. Utilizing user keymaps functionality.
3See: https://docs.qmk.fm/#/feature_userspace
4
5## [ninjonas.c](ninjonas.c)
6- ninjonas [QMK user configuration](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_userspace.md)
7- On `keymap.c` include `ninjonas.h`
8 ```c
9 #include "ninjonas.h"
10 ```
11
12## Features
13### [Keys](ninjonas.h#L44)
14|Code | Description |
15|---|---|
16|K_LOCK | MacOS shortcut to execute lock command  + ctrl + Q |
17|K_CSCN | MacOS shortcut to copy a portion of the screen to the clipboard |
18
19### [Layers](ninjonas.h#L48)
20|Code | Description |
21|---|---|
22|LT_LOW | Tap for ENTER, hold for RAISE |
23|LT_FUNC | Tap for ENTER, hold for FUNCTIONS |
24|LT_RAI | Tap for SPACE, hold for LOWER |
25|LT_NUM | Tap for SPACE, hold for NUMBERS |
26|LT_LOW + LT_RAI | Hold for ADJUST |
27|L_LOWER | Dedicated key to momentarily toggle to use LOWER layer |
28
29### [Layout Blocks](ninjonas.h#L57)
30Predefined keyboard layout templates to speed up configuring split keyboards
31
32|Code | Description |
33|---|---|
34|QWERTY | Qwerty Layout |
35|DVORAK | Dvorak Layout |
36|COLEMAK | Colemak Layout |
37|NUM | Number Rows |
38|FUNC | Function Rows |
39|SYM | Symbol Rows \(When holding shift on numbers\) |
40|NAV | Navigation Cluster |
41|MOUSE | Mouse Cluster |
42|MEDIA | Media Cluster |
43|MOD | Modifier Cluster |
44
45### [Macros](process_records.c)
46|Code | Description |
47|---|---|
48|M_PYNV | macro to activate pyenv with the name `jira` |
49|M_MAKE | macro to send QMK make command to compile keyboard |
50|M_FLSH | macro to send QMK make command to compile keyboard with the correct bootloader |
51|M_VRSN | macro to send QMK version |
52|M_SHFT | Sends  + alt + shift to a keycode to activate [ShiftIt](https://github.com/fikovnik/ShiftIt) |
53|M_CODE | Opens [Visual Studio Code](https://code.visualstudio.com/) on current directory |
54
55### [Tap-Dance](tap_dances.h)
56|Code | Description |
57|---|---|
58|T_ESC | Tap once for ESC, double tap for CAPS_LOCK |
59|T_LBRC | Tap once for [, double for back browser |
60|T_RBRC | Tap once for ], double for forward browser |
61|T_TAB | Tap once for TAB, double for CTRL + TAB |
62|T_GRV | Tap once for GRV, double for  + GRV |
63|T_GUI | Tap once for , double to open spotlight |
64|T_W | Tap for W, double tap for  + W |
65|T_Q | Tap for Q, double tap for  + Q |
66
67### Secrets
68There's times where you have macros you don't want to share like emails, passwords 😱, & and private strings. Based off [drashna's secret macros](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme_secrets.md), it's now possible to do this. All you need to do is create a `secrets.c` file. Below is an example of how this is used.
69
70```c
71// secrets.c
72#include "ninjonas.h"
73
74bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
75 switch (keycode) {
76 // Sends zoom URL
77 case M_ZOOM:
78 if (record->event.pressed) {
79 SEND_STRING("SECRET_STRING_HERE" SS_TAP(X_ENTER));
80 }
81 break;
82 }
83 return true;
84}
85``` \ No newline at end of file
diff --git a/users/ninjonas/config.h b/users/ninjonas/config.h
new file mode 100644
index 000000000..1166939c6
--- /dev/null
+++ b/users/ninjonas/config.h
@@ -0,0 +1,14 @@
1#ifdef TAPPING_TERM
2 #undef TAPPING_TERM
3 #define TAPPING_TERM 200
4#endif
5
6// Mouse Settings: Smoothing out mouse movement on keypress
7#ifndef MOUSEKEY_INTERVAL
8 #undef MOUSEKEY_INTERVAL
9 #define MOUSEKEY_INTERVAL 16
10#endif
11#define MOUSEKEY_DELAY 0
12#define MOUSEKEY_TIME_TO_MAX 60
13#define MOUSEKEY_MAX_SPEED 7
14#define MOUSEKEY_WHEEL_DELAY 0 \ No newline at end of file
diff --git a/users/ninjonas/ninjonas.c b/users/ninjonas/ninjonas.c
new file mode 100644
index 000000000..6a77ecf8b
--- /dev/null
+++ b/users/ninjonas/ninjonas.c
@@ -0,0 +1,68 @@
1/* Copyright 2019 @ninjonas
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 "ninjonas.h"
17
18layer_state_t layer_state_set_user (layer_state_t state) {
19 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
20}
21
22// BEGIN: SSD1306OLED
23// SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
24#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
25extern uint8_t is_master;
26
27void matrix_init_user(void) {
28 //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
29 iota_gfx_init(!has_usb()); // turns on the display
30}
31
32// When add source files to SRC in rules.mk, you can use functions.
33const char *read_layer_state(void);
34const char *read_logo(void);
35//void set_keylog(uint16_t keycode, keyrecord_t *record); // Moved to process_records.h
36const char *read_keylog(void);
37const char *read_keylogs(void);
38
39void matrix_scan_user(void) {
40 iota_gfx_task();
41}
42
43void matrix_render_user(struct CharacterMatrix *matrix) {
44 if (is_master) {
45 // If you want to change the display of OLED, you need to change here
46 matrix_write_ln(matrix, read_layer_state());
47 matrix_write_ln(matrix, read_keylog());
48 matrix_write_ln(matrix, read_keylogs());
49 } else {
50 matrix_write(matrix, read_logo());
51 }
52}
53
54void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
55 if (memcmp(dest->display, source->display, sizeof(dest->display))) {
56 memcpy(dest->display, source->display, sizeof(dest->display));
57 dest->dirty = true;
58 }
59}
60
61void iota_gfx_task_user(void) {
62 struct CharacterMatrix matrix;
63 matrix_clear(&matrix);
64 matrix_render_user(&matrix);
65 matrix_update(&display, &matrix);
66}
67#endif
68// END: SSD1306OLED \ No newline at end of file
diff --git a/users/ninjonas/ninjonas.h b/users/ninjonas/ninjonas.h
new file mode 100644
index 000000000..50d7c3680
--- /dev/null
+++ b/users/ninjonas/ninjonas.h
@@ -0,0 +1,112 @@
1/* Copyright 2019 @ninjonas
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#pragma once
17#include "quantum.h"
18#include "version.h"
19#include "eeprom.h"
20#include "process_records.h"
21
22#ifdef TAP_DANCE_ENABLE
23 #include "tap_dances.h"
24#endif
25#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
26 #include "lufa.h"
27 #include "split_util.h"
28#endif
29#ifdef SSD1306OLED
30 #include "ssd1306.h"
31#endif
32
33#define _QWERTY 0
34#define _DVORAK 1
35#define _COLEMAK 2
36#define _LOWER 3
37#define _RAISE 4
38#define _ADJUST 5
39#ifdef KEYBOARD_pinky_3
40 #define _NUMBERS 6
41 #define _FUNCTIONS 7
42#endif
43
44// Shortcut Keys
45#define K_LOCK LGUI(LCTL(KC_Q)) // Locks screen on MacOS
46#define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard
47
48// Layer Keys
49#define L_LOWER MO(_LOWER)
50#define LT_LOW LT(_LOWER, KC_ENT)
51#define LT_RAI LT(_RAISE, KC_SPC)
52#ifdef KEYBOARD_pinky_3
53 #define LT_NUM LT(_NUMBERS, KC_SPC)
54 #define LT_FUNC LT(_FUNCTIONS, KC_ENT)
55#endif
56
57// Layout blocks
58#define _____________________QWERTY_L1______________________ T_TAB, T_Q, T_W, KC_E, KC_R, KC_T
59#define _____________________QWERTY_L2______________________ T_ESC, KC_A, KC_S, KC_D, KC_F, KC_G
60#define _____________________QWERTY_L3______________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
61
62#define _____________________QWERTY_R1______________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
63#define _____________________QWERTY_R2______________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
64#define _____________________QWERTY_R3______________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL
65
66#define _____________________DVORAK_L1______________________ T_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
67#define _____________________DVORAK_L2______________________ T_ESC, KC_A, KC_O, KC_E, KC_U, KC_I
68#define _____________________DVORAK_L3______________________ KC_LSFT, KC_SCLN, T_Q, KC_J, KC_K, KC_X
69
70#define _____________________DVORAK_R1______________________ KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS
71#define _____________________DVORAK_R2______________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
72#define _____________________DVORAK_R3______________________ KC_B, KC_M, T_W, KC_V, KC_Z, KC_EQL
73
74#define _____________________COLEMAK_L1_____________________ T_TAB, T_Q, T_W, KC_F, KC_P, KC_G
75#define _____________________COLEMAK_L2_____________________ T_ESC, KC_A, KC_R, KC_S, KC_T, KC_D
76#define _____________________COLEMAK_L3_____________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
77
78#define _____________________COLEMAK_R1_____________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS
79#define _____________________COLEMAK_R2_____________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
80#define _____________________COLEMAK_R3_____________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL
81
82#define _____________________NUM_LEFT_______________________ T_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
83#define _____________________NUM_RIGHT______________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
84
85#define _____________________FUNC_LEFT______________________ KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
86#define _____________________FUNC_RIGHT_____________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12
87
88#define _____________________SYM_LEFT_______________________ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
89#define _____________________SYM_RIGHT______________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS
90
91#define ____________________________________________________ _______, _______, _______, _______, _______, _______
92#define _____________________XXXXXXX________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
93
94#define _______________NAV_1______________ KC_PGUP, KC_HOME, KC_UP, KC_END
95#define _______________NAV_2______________ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT
96
97#define _____________MOUSE_1______________ KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_D
98#define _____________MOUSE_2______________ KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U
99
100#define __________________________________ _______, _______, _______, _______
101#define _____________XXXXXXX______________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
102
103#define _________MEDIA_1_________ KC_BRIU, KC_MPLY, KC_MUTE
104#define _________MEDIA_2_________ KC_BRID, KC_MFFD, KC__VOLUP
105#define _________MEDIA_3_________ XXXXXXX, KC_MRWD, KC__VOLDOWN
106
107#define ________MOD_LEFT_________ KC_LALT, T_GUI, KC_LCTL
108#define ________MOD_RIGHT________ KC_BSPC, KC_DEL, L_LOWER
109
110// Layout wrappers
111#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
112#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) \ No newline at end of file
diff --git a/users/ninjonas/process_records.c b/users/ninjonas/process_records.c
new file mode 100644
index 000000000..1b7958abc
--- /dev/null
+++ b/users/ninjonas/process_records.c
@@ -0,0 +1,98 @@
1#include "ninjonas.h"
2
3__attribute__((weak))
4bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
5
6__attribute__((weak))
7bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
8
9bool process_record_user(uint16_t keycode, keyrecord_t *record) {
10 if (record->event.pressed) {
11 #ifdef SSD1306OLED
12 set_keylog(keycode, record);
13 #endif
14 }
15
16 switch (keycode) {
17
18 // Sends pyenv to activate 'jira' environment
19 case M_PYNV:
20 if (record->event.pressed) {
21 SEND_STRING("pyenv activate jira" SS_TAP(X_ENTER));
22 }
23 break;
24
25 // Sends  + alt + shift to a keycode to activate shiftit. See: https://github.com/fikovnik/ShiftIt
26 case M_SHFT:
27 if (record->event.pressed) {
28 register_code(KC_LGUI);
29 register_code(KC_LALT);
30 register_code(KC_LCTL);
31 } else {
32 unregister_code(KC_LGUI);
33 unregister_code(KC_LALT);
34 unregister_code(KC_LCTL);
35 }
36 break;
37
38 // Sends QMK make command to compile keyboard
39 case M_MAKE:
40 if (record->event.pressed) {
41 SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
42 }
43 break;
44
45 // Sends QMK make command with the correct bootloader
46 case M_FLSH:
47 if (!record->event.pressed) {
48 SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP
49 #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
50 ":dfu "
51 #elif defined(BOOTLOADER_CATERINA)
52 ":avrdude "
53 #endif
54 SS_TAP(X_ENTER)
55 );
56
57 // Send reset_keyboard command instead of pressing reset button
58 #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
59 reset_keyboard();
60 #endif
61 }
62 break;
63
64 // Sends QMK version
65 case M_VRSN:
66 if (record->event.pressed) {
67 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
68 }
69 break;
70
71 // Opens Visual Studio Code on current directory
72 case M_CODE:
73 if (record->event.pressed) {
74 SEND_STRING("code ." SS_TAP(X_ENTER));
75 }
76 break;
77
78 // BEGIN: Layer macros
79 case QWERTY:
80 if (record->event.pressed) {
81 set_single_persistent_default_layer(_QWERTY);
82 }
83 break;
84 case DVORAK:
85 if (record->event.pressed) {
86 set_single_persistent_default_layer(_DVORAK);
87 }
88 break;
89 case COLEMAK:
90 if (record->event.pressed) {
91 set_single_persistent_default_layer(_COLEMAK);
92 }
93 break;
94 // END: Layer macros
95 }
96
97 return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
98}
diff --git a/users/ninjonas/process_records.h b/users/ninjonas/process_records.h
new file mode 100644
index 000000000..6db1d91fb
--- /dev/null
+++ b/users/ninjonas/process_records.h
@@ -0,0 +1,24 @@
1#pragma once
2#include "ninjonas.h"
3
4enum custom_keycodes {
5 // Layer Macros
6 QWERTY = SAFE_RANGE,
7 DVORAK,
8 COLEMAK,
9 // Custom Macros
10 M_ZOOM,
11 M_PYNV,
12 M_SHFT,
13 M_MAKE,
14 M_FLSH,
15 M_VRSN,
16 M_CODE,
17};
18
19#ifdef SSD1306OLED
20void set_keylog(uint16_t keycode, keyrecord_t *record);
21#endif
22
23bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
24bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
diff --git a/users/ninjonas/rules.mk b/users/ninjonas/rules.mk
new file mode 100644
index 000000000..1f2697a0e
--- /dev/null
+++ b/users/ninjonas/rules.mk
@@ -0,0 +1,18 @@
1BOOTMAGIC_ENABLE = no # Disable Boot Magic (https://beta.docs.qmk.fm/features/feature_bootmagic)
2MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
3EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4TAP_DANCE_ENABLE = yes # Enable Tap Dance.
5
6Link_Time_Optimization = no # if firmware size over limit, try this option
7
8ifeq ($(strip $(Link_Time_Optimization)),yes)
9 EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
10endif
11
12SRC += ninjonas.c \
13 process_records.c \
14 tap_dances.c
15
16ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
17 SRC += secrets.c
18endif \ No newline at end of file
diff --git a/users/ninjonas/tap_dances.c b/users/ninjonas/tap_dances.c
new file mode 100644
index 000000000..0665a1607
--- /dev/null
+++ b/users/ninjonas/tap_dances.c
@@ -0,0 +1,12 @@
1#include "ninjonas.h"
2
3qk_tap_dance_action_t tap_dance_actions[] = {
4 [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
5 [TD_LBRC_BACK] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, LGUI(KC_LBRC)),
6 [TD_RBRC_FWD] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, LGUI(KC_RBRC)),
7 [TD_TAB_CTRLTAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, LCTL(KC_TAB)),
8 [TD_GRV_CTRLGRV] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, LGUI(KC_GRV)),
9 [TD_GUI_GUISPC] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, LGUI(KC_SPC)),
10 [TD_W_CTRLW] = ACTION_TAP_DANCE_DOUBLE(KC_W, LGUI(KC_W)),
11 [TD_Q_GUIQ] = ACTION_TAP_DANCE_DOUBLE(KC_Q, LGUI(KC_Q)),
12}; \ No newline at end of file
diff --git a/users/ninjonas/tap_dances.h b/users/ninjonas/tap_dances.h
new file mode 100644
index 000000000..0a781ce4e
--- /dev/null
+++ b/users/ninjonas/tap_dances.h
@@ -0,0 +1,22 @@
1#pragma once
2#include "ninjonas.h"
3
4enum custom_tapdances{
5 TD_ESC_CAPS = 0,
6 TD_LBRC_BACK,
7 TD_RBRC_FWD,
8 TD_TAB_CTRLTAB,
9 TD_GRV_CTRLGRV,
10 TD_GUI_GUISPC,
11 TD_W_CTRLW,
12 TD_Q_GUIQ,
13};
14
15#define T_ESC TD(TD_ESC_CAPS) // Tap for ESC, double tap for CAPSLOCK
16#define T_LBRC TD(TD_LBRC_BACK) // Tap for [, double tap for back browser
17#define T_RBRC TD(TD_RBRC_FWD) // Tap for ], double tap for forward browser
18#define T_TAB TD(TD_TAB_CTRLTAB) // Tap for TAB, double tap for CTRL + TAB
19#define T_GRV TD(TD_GRV_CTRLGRV) // Tap for GRV, double tap for  + GRV
20#define T_GUI TD(TD_GUI_GUISPC) // Tap for , double tap for  + Space
21#define T_W TD(TD_W_CTRLW) // Tap for W, double tap for  + W
22#define T_Q TD(TD_Q_GUIQ) // Tap for Q, double tap for  + Q \ No newline at end of file