]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/jj50/keymaps/archetype/keymap.c
archetype keymap for jj50 (#5397)
[qmk_firmware.git] / keyboards / jj50 / keymaps / archetype / keymap.c
1 /*
2 Base Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3 Modified 2017 Andrew Novak <ndrw.nvk@gmail.com>
4 Modified 2018 Wayne Jones (WarmCatUK) <waynekjones@gmail.com>
5 Modified 2019 Iason Dimitrakopoulos (idimitrakopoulos) <idimitrakopoulos@gmail.com>
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public LicensezZZ
18 along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #include QMK_KEYBOARD_H
22 #include "action_layer.h"
23 #include "rgblight.h"
24 #include "quantum.h"
25
26 #define _QWERTY 0
27 #define _COLEMAK 1
28 #define _FN 2
29 #define _FX 3
30
31 enum {
32   TD_BSPC_DEL = 0,
33   TD_LCTL_LBRC = 1,
34   TD_LALT_RBRC = 2,
35 };
36
37
38 void left_brackets(qk_tap_dance_state_t *state, void *user_data) {
39     if (state->count == 1) {
40       if (state->interrupted || !state->pressed) {
41         register_mods(MOD_LSFT);
42         register_code(KC_9);
43       } else {
44         register_mods(MOD_LCTL);
45       }
46     } else if (state->count == 2) {
47         register_code(KC_LBRC);
48     } else if (state->count == 3) {
49         register_mods(MOD_LSFT);
50         register_code(KC_LBRC);
51     }
52 }
53
54 void left_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
55     if (state->count == 1) {
56       if (state->interrupted || !state->pressed) {
57         unregister_mods(MOD_LSFT);
58         unregister_code(KC_9);
59       } else {
60         unregister_mods(MOD_LCTL);
61       }
62     } else if (state->count == 2) {
63         unregister_code(KC_LBRC);
64     } else if (state->count == 3) {
65         unregister_mods(MOD_LSFT);
66         unregister_code(KC_LBRC);
67     }
68 }
69
70 void right_brackets(qk_tap_dance_state_t *state, void *user_data) {
71     if (state->count == 1) {
72       if (state->interrupted || !state->pressed) {
73         register_mods(MOD_LSFT);
74         register_code(KC_0);
75       } else {
76         register_mods(MOD_LALT);
77       }
78     } else if (state->count == 2) {
79         register_code(KC_RBRC);
80     } else if (state->count == 3) {
81         register_mods(MOD_LSFT);
82         register_code(KC_RBRC);
83     }
84 }
85
86 void right_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
87     if (state->count == 1) {
88       if (state->interrupted || !state->pressed) {
89         unregister_mods(MOD_LSFT);
90         unregister_code(KC_0);
91       } else {
92         unregister_mods(MOD_LALT);
93       }
94     } else if (state->count == 2) {
95         unregister_code(KC_RBRC);
96     } else if (state->count == 3) {
97         unregister_mods(MOD_LSFT);
98         unregister_code(KC_RBRC);
99     }
100 }
101
102 qk_tap_dance_action_t tap_dance_actions[] = {
103   // Single tap = Backspace | Double tap = Delete
104   [TD_BSPC_DEL] = ACTION_TAP_DANCE_DOUBLE(KC_BSPC, KC_DEL),
105   // Single tap = ( | Double tap = [ | Triple tap = { | Single hold = KC_LCTL
106   [TD_LCTL_LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, left_brackets, left_brackets_reset),
107   // Single tap = ) | Double tap = ] | Triple tap = } | Single hold = KC_LALT
108   [TD_LALT_RBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, right_brackets, right_brackets_reset),
109 };
110
111
112 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
113
114     [_QWERTY] = LAYOUT( \
115
116       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
117       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
118             KC_ESC,           KC_1,             KC_2,             KC_3,             KC_4,             KC_5,             KC_6,             KC_7,             KC_8,             KC_9,             KC_0,             KC_BSPC,      \
119       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
120       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
121       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
122             KC_TAB,           KC_Q,             KC_W,             KC_E,             KC_R,             KC_T,             KC_Y,             KC_U,             KC_I,             KC_O,             KC_P,             KC_BSLS,      \
123       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
124       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
125       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
126             KC_CAPS,          KC_A,             KC_S,             KC_D,             KC_F,             KC_G,             KC_H,             KC_J,             KC_K,             KC_L,             KC_SCLN,          KC_QUOT,      \
127       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
128       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
129       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
130             KC_LSFT,          KC_Z,             KC_X,             KC_C,             KC_V,             KC_B,             KC_N,             KC_M,             KC_DOT,           KC_SLSH,          KC_UP,          SFT_T(KC_ENT),  \
131       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
132       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
133       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
134         TD(TD_LCTL_LBRC),     KC_LGUI,      TD(TD_LALT_RBRC),     _______,          _______,       LT(_FN, KC_SPC),  LT(_FN, KC_SPC),     _______,          KC_COMM,          KC_LEFT,          KC_DOWN,          KC_RGHT       \
135       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
136       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
137     ),
138
139     [_COLEMAK] = LAYOUT( \
140
141       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
142       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
143             _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,      \
144       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
145       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
146       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
147             _______,          _______,          _______,          KC_F,             KC_P,             KC_G,             KC_J,             KC_L,             KC_U,             KC_Y,             KC_SCLN,          _______,      \
148       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
149       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
150       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
151             _______,          _______,          KC_R,             KC_S,             KC_T,             KC_D,             _______,          KC_N,             KC_E,             KC_I,             KC_O,             _______,      \
152       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
153       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
154       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
155             _______,          _______,          _______,          _______,          _______,          _______,          KC_K,             _______,          _______,          _______,          _______,          _______,      \
156       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
157       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
158       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
159             _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______       \
160       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
161       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
162     ),
163
164     [_FN] = LAYOUT( \
165
166       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
167       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
168             KC_GRV,           KC_F1,            KC_F2,            KC_F3,            KC_F4,            KC_F5,            KC_F6,            KC_F7,            KC_F8,            KC_F9,            KC_F10,           KC_DEL,       \
169       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
170       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
171       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
172             KC_PSCR,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_EQUAL,     \
173       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
174       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
175       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
176             KC_CAPS,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_MINUS,     \
177       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
178       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
179       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
180             _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_PGUP,          _______,      \
181       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
182       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
183       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
184             _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_HOME,          KC_PGDN,          KC_END        \
185       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
186       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
187     ),
188
189     [_FX] = LAYOUT( \
190
191       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
192       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
193             _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,      \
194       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
195       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
196       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
197             _______,          BL_ON,            BL_INC,           RGB_TOG,          RGB_MOD,          _______,          _______,          _______,          _______,          _______,          _______,          _______,      \
198       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
199       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
200       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
201             _______,          BL_OFF,           BL_DEC,           RGB_HUI,          RGB_SAI,          RGB_VAI,          RGB_SPI,          _______,          _______,          _______,          _______,          _______,      \
202       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
203       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
204       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
205             _______,          RGB_TOG,          BL_STEP,          RGB_HUD,          RGB_SAD,          RGB_VAD,          RGB_SPD,          _______,          _______,          _______,          _______,          _______,      \
206       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
207       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
208       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
209             _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______       \
210       //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
211       //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
212     ),
213
214
215 };