diff options
Diffstat (limited to 'keyboards/keebio/fourier/keymaps/jennetters/keymap.c')
-rw-r--r-- | keyboards/keebio/fourier/keymaps/jennetters/keymap.c | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/keyboards/keebio/fourier/keymaps/jennetters/keymap.c b/keyboards/keebio/fourier/keymaps/jennetters/keymap.c new file mode 100644 index 000000000..a6ec95e1e --- /dev/null +++ b/keyboards/keebio/fourier/keymaps/jennetters/keymap.c | |||
@@ -0,0 +1,146 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | |||
3 | extern keymap_config_t keymap_config; | ||
4 | |||
5 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
6 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
7 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
8 | // entirely and just use numbers. | ||
9 | #define _BASE 0 | ||
10 | #define _FN1 1 | ||
11 | #define _FN2 2 | ||
12 | |||
13 | enum custom_keycodes { | ||
14 | QWERTY = SAFE_RANGE, | ||
15 | }; | ||
16 | |||
17 | #define KC_ KC_TRNS | ||
18 | #define KC_FN1 MO(_FN1) | ||
19 | #define KC_FN2 MO(_FN2) | ||
20 | #define KC_SPFN1 LT(_FN1, KC_SPACE) | ||
21 | #define KC_SPFN2 LT(_FN2, KC_SPACE) | ||
22 | #define KC_BSFN1 LT(_FN1, KC_BSPC) | ||
23 | #define KC_BSFN2 LT(_FN2, KC_BSPC) | ||
24 | #define KC_RST RESET | ||
25 | #define KC_DBUG DEBUG | ||
26 | #define KC_RTOG RGB_TOG | ||
27 | #define KC_RMOD RGB_MOD | ||
28 | #define KC_RHUI RGB_HUI | ||
29 | #define KC_RHUD RGB_HUD | ||
30 | #define KC_RSAI RGB_SAI | ||
31 | #define KC_RSAD RGB_SAD | ||
32 | #define KC_RVAI RGB_VAI | ||
33 | #define KC_RVAD RGB_VAD | ||
34 | |||
35 | //Tap Dance Declarations | ||
36 | enum { | ||
37 | ESC_GR = 0, | ||
38 | Q_1, | ||
39 | W_2, | ||
40 | E_3, | ||
41 | R_4, | ||
42 | T_5, | ||
43 | Y_6, | ||
44 | U_7, | ||
45 | I_8, | ||
46 | O_9, | ||
47 | P_0, | ||
48 | MIN_LB, | ||
49 | EQL_RB, | ||
50 | SCL_QUO | ||
51 | }; | ||
52 | |||
53 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
54 | [_BASE] = LAYOUT( | ||
55 | // ,----+----+----+----+----+----|----+----+----+----+----+----+----. | ||
56 | // |ESC | Q1 | W2 | E3 | R4 | T5 | Y6 | U7 | I8 | O9 | P0 | -[ | =] | | ||
57 | // |----`----`----`----`----`----|----`----`----`----`----`----`----| | ||
58 | // | TAB | A | S | D | F | G | H | H | J | K | L | BKSP | | ||
59 | // |-----`----`----`----`----`----|----`----`----`----`----`--------| | ||
60 | // | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHFT | | ||
61 | // |-------`----`----`----`----`----|----`----`----`----`----`------| | ||
62 | // | CTL | SYS| ALT | SP SPACE | SPACE | FN1 | CTL | \ | ENT | | ||
63 | // `-----+----+-----+----+--------|--------+-----+------+----+------' | ||
64 | |||
65 | TD(ESC_GR), TD(Q_1), TD(W_2), TD(E_3), TD(R_4), TD(T_5), TD(Y_6), TD(U_7), TD(I_8), TD(O_9), TD(P_0),TD(MIN_LB),TD(EQL_RB), \ | ||
66 | KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCL_QUO), KC_BSPC, \ | ||
67 | KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ | ||
68 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_FN1, KC_LCTL, KC_NUBS, KC_ENTER | ||
69 | ), | ||
70 | |||
71 | [_FN1] = LAYOUT_kc( | ||
72 | // ,----+----+----+----+----+----|----+----+----+----+----+----+----. | ||
73 | // | | | UP | | | | | | | | | | | | ||
74 | // |----`----`----`----`----`----|----`----`----`----`----`----`----| | ||
75 | // | | LT | DN | RT | | | | | | | ' | DEL | | ||
76 | // |-----`----`----`----`----`----|----`----`----`----`----`--------| | ||
77 | // | | | | | | | | | | |PIPE| | | ||
78 | // |-------`----`----`----`----`----|----`----`----`----`----`------| | ||
79 | // | | | | | | | | | | | | ||
80 | // `-----+----+-----+----+--------|--------+-----+------+----+------' | ||
81 | |||
82 | , , UP, , , , , , , , , , , \ | ||
83 | , LEFT, DOWN, RIGHT, , , , , , , QUOT, DEL, \ | ||
84 | , , , , , , , , , , NUBS, , \ | ||
85 | , , , , , , , , , | ||
86 | ), | ||
87 | |||
88 | [_FN2] = LAYOUT_kc( | ||
89 | // ,----+----+----+----+----+----|----+----+----+----+----+----+----. | ||
90 | // | | | | | | | | | | | | | | | ||
91 | // |----`----`----`----`----`----|----`----`----`----`----`----`----| | ||
92 | // | | | | | | | | | | | | | | ||
93 | // |-----`----`----`----`----`----|----`----`----`----`----`--------| | ||
94 | // | | | | | | | | | | | | | | ||
95 | // |-------`----`----`----`----`----|----`----`----`----`----`------| | ||
96 | // | | | | | | | | | | | | ||
97 | // `-----+----+-----+----+--------|--------+-----+------+----+------' | ||
98 | |||
99 | , , , , , , , , , , , , , \ | ||
100 | , , , , , , , , , , , , \ | ||
101 | , , , , , , , , , , , , \ | ||
102 | , , , , , , , , , | ||
103 | ) | ||
104 | |||
105 | }; | ||
106 | |||
107 | void esc_gr_finished (qk_tap_dance_state_t *state, void *user_data) { | ||
108 | if (state->count == 1) { | ||
109 | register_code (KC_ESC); | ||
110 | } else if (state->count == 2) { | ||
111 | register_code (KC_GRV); | ||
112 | } else { | ||
113 | register_code (KC_LSFT); | ||
114 | register_code (KC_GRV); | ||
115 | } | ||
116 | } | ||
117 | |||
118 | void esc_gr_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
119 | if (state->count == 1) { | ||
120 | unregister_code (KC_ESC); | ||
121 | } else if (state->count == 2) { | ||
122 | unregister_code (KC_GRV); | ||
123 | } else { | ||
124 | unregister_code (KC_LSFT); | ||
125 | unregister_code (KC_GRV); | ||
126 | } | ||
127 | } | ||
128 | |||
129 | //Tap Dance Definitions | ||
130 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
131 | [ESC_GR] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, esc_gr_finished, esc_gr_reset), //Tap once for ESC, twice for `, thrice for ~ | ||
132 | [Q_1] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_1), //Tap once for Q, twice for 1/! | ||
133 | [W_2] = ACTION_TAP_DANCE_DOUBLE(KC_W, KC_2), //Tap once for W, twice for 2/@ | ||
134 | [E_3] = ACTION_TAP_DANCE_DOUBLE(KC_E, KC_3), //Tap once for E, twice for 3/# | ||
135 | [R_4] = ACTION_TAP_DANCE_DOUBLE(KC_R, KC_4), //Tap once for R, twice for 4/$ | ||
136 | [T_5] = ACTION_TAP_DANCE_DOUBLE(KC_T, KC_5), //Tap once for T, twice for 5/% | ||
137 | [Y_6] = ACTION_TAP_DANCE_DOUBLE(KC_Y, KC_6), //Tap once for Y, twice for 6/^ | ||
138 | [U_7] = ACTION_TAP_DANCE_DOUBLE(KC_U, KC_7), //Tap once for U, twice for 7/& | ||
139 | [I_8] = ACTION_TAP_DANCE_DOUBLE(KC_I, KC_8), //Tap once for I, twice for 8/* | ||
140 | [O_9] = ACTION_TAP_DANCE_DOUBLE(KC_O, KC_9), //Tap once for O, twice for 9/( | ||
141 | [P_0] = ACTION_TAP_DANCE_DOUBLE(KC_P, KC_0), //Tap once for P, twice for 0/) | ||
142 | [MIN_LB] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_LBRC), //Tap once for -, twice for [/{ | ||
143 | [EQL_RB] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_RBRC), //Tap once for =, twice for ]/} | ||
144 | [SCL_QUO] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_QUOT) //Tap once for ;, '/" | ||
145 | // Other declarations would go here, separated by commas, if you have them | ||
146 | }; | ||