summaryrefslogtreecommitdiffstats
path: root/keyboards/jj50/keymaps/archetype/keymap.c
blob: 0704943e08220471df03d0915ffc9cea54025fd5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
/*
Base Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
Modified 2017 Andrew Novak <ndrw.nvk@gmail.com>
Modified 2018 Wayne Jones (WarmCatUK) <waynekjones@gmail.com>
Modified 2019 Iason Dimitrakopoulos (idimitrakopoulos) <idimitrakopoulos@gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public LicensezZZ
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "rgblight.h"
#include "quantum.h"

#define _QWERTY 0
#define _COLEMAK 1
#define _FN 2
#define _FX 3

enum {
  TD_BSPC_DEL = 0,
  TD_LCTL_LBRC = 1,
  TD_LALT_RBRC = 2,
};


void left_brackets(qk_tap_dance_state_t *state, void *user_data) {
    if (state->count == 1) {
      if (state->interrupted || !state->pressed) {
        register_mods(MOD_LSFT);
        register_code(KC_9);
      } else {
        register_mods(MOD_LCTL);
      }
    } else if (state->count == 2) {
        register_code(KC_LBRC);
    } else if (state->count == 3) {
        register_mods(MOD_LSFT);
        register_code(KC_LBRC);
    }
}

void left_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
    if (state->count == 1) {
      if (state->interrupted || !state->pressed) {
        unregister_mods(MOD_LSFT);
        unregister_code(KC_9);
      } else {
        unregister_mods(MOD_LCTL);
      }
    } else if (state->count == 2) {
        unregister_code(KC_LBRC);
    } else if (state->count == 3) {
        unregister_mods(MOD_LSFT);
        unregister_code(KC_LBRC);
    }
}

void right_brackets(qk_tap_dance_state_t *state, void *user_data) {
    if (state->count == 1) {
      if (state->interrupted || !state->pressed) {
        register_mods(MOD_LSFT);
        register_code(KC_0);
      } else {
        register_mods(MOD_LALT);
      }
    } else if (state->count == 2) {
        register_code(KC_RBRC);
    } else if (state->count == 3) {
        register_mods(MOD_LSFT);
        register_code(KC_RBRC);
    }
}

void right_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
    if (state->count == 1) {
      if (state->interrupted || !state->pressed) {
        unregister_mods(MOD_LSFT);
        unregister_code(KC_0);
      } else {
        unregister_mods(MOD_LALT);
      }
    } else if (state->count == 2) {
        unregister_code(KC_RBRC);
    } else if (state->count == 3) {
        unregister_mods(MOD_LSFT);
        unregister_code(KC_RBRC);
    }
}

qk_tap_dance_action_t tap_dance_actions[] = {
  // Single tap = Backspace | Double tap = Delete
  [TD_BSPC_DEL] = ACTION_TAP_DANCE_DOUBLE(KC_BSPC, KC_DEL),
  // Single tap = ( | Double tap = [ | Triple tap = { | Single hold = KC_LCTL
  [TD_LCTL_LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, left_brackets, left_brackets_reset),
  // Single tap = ) | Double tap = ] | Triple tap = } | Single hold = KC_LALT
  [TD_LALT_RBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, right_brackets, right_brackets_reset),
};


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

    [_QWERTY] = LAYOUT( \

      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            KC_ESC,           KC_1,             KC_2,             KC_3,             KC_4,             KC_5,             KC_6,             KC_7,             KC_8,             KC_9,             KC_0,             KC_BSPC,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            KC_TAB,           KC_Q,             KC_W,             KC_E,             KC_R,             KC_T,             KC_Y,             KC_U,             KC_I,             KC_O,             KC_P,             KC_BSLS,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            KC_CAPS,          KC_A,             KC_S,             KC_D,             KC_F,             KC_G,             KC_H,             KC_J,             KC_K,             KC_L,             KC_SCLN,          KC_QUOT,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            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),  \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
        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       \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
    ),

    [_COLEMAK] = LAYOUT( \

      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          KC_F,             KC_P,             KC_G,             KC_J,             KC_L,             KC_U,             KC_Y,             KC_SCLN,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          KC_R,             KC_S,             KC_T,             KC_D,             _______,          KC_N,             KC_E,             KC_I,             KC_O,             _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          _______,          _______,          _______,          KC_K,             _______,          _______,          _______,          _______,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______       \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
    ),

    [_FN] = LAYOUT( \

      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            KC_GRV,           KC_F1,            KC_F2,            KC_F3,            KC_F4,            KC_F5,            KC_F6,            KC_F7,            KC_F8,            KC_F9,            KC_F10,           KC_DEL,       \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            KC_PSCR,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_EQUAL,     \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            KC_CAPS,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_MINUS,     \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_PGUP,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          KC_HOME,          KC_PGDN,          KC_END        \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
    ),

    [_FX] = LAYOUT( \

      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+.
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          BL_ON,            BL_INC,           RGB_TOG,          RGB_MOD,          _______,          _______,          _______,          _______,          _______,          _______,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          BL_OFF,           BL_DEC,           RGB_HUI,          RGB_SAI,          RGB_VAI,          RGB_SPI,          _______,          _______,          _______,          _______,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          RGB_TOG,          BL_STEP,          RGB_HUD,          RGB_SAD,          RGB_VAD,          RGB_SPD,          _______,          _______,          _______,          _______,          _______,      \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+|
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
            _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______,          _______       \
      //|                |                 |                 |                 |                 |                 |                 |                 |                 |                 |                 |                  |
      //,----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+'
    ),


};