nftable-migration
1/* Copyright 2020 ZSA Technology Labs, Inc <@zsa>
2 * Copyright 2020 Jack Humbert <jack.humb@gmail.com>
3 * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19
20
21#include QMK_KEYBOARD_H
22#include "version.h"
23#include "keymap_us.h"
24#include "keymap_us_international_linux.h"
25#include "layermodes.h"
26
27enum layers {
28 BEPO,
29 ERGL,
30 QWER,
31 SYMB,
32 NUMB,
33 NAVI,
34 MOUS,
35 MODS,
36};
37
38enum custom_keycodes {
39 VRSN = SAFE_RANGE,
40 FR_DQUO,
41 FR_QUOT,
42 FR_GRAVE,
43 FR_CIRC,
44 FR_E_AIGU,
45 FR_E_AIGU_CAPS,
46 FR_E_GRAVE,
47 FR_E_GRAVE_CAPS,
48 FR_A_GRAVE,
49 FR_A_GRAVE_CAPS,
50 NUMWORD, // Numword layer activation
51};
52
53const key_override_t circ_exclamation_override = ko_make_with_layers(MOD_MASK_SHIFT, KC_CIRC, KC_EXLM, 1 << BEPO);
54const key_override_t dot_colon_override = ko_make_with_layers(MOD_MASK_SHIFT, KC_DOT, KC_COLN, 1 << BEPO);
55const key_override_t comma_semicolon_override = ko_make_with_layers(MOD_MASK_SHIFT, HM_HYP_COMM, KC_SCLN, 1 << BEPO);
56
57// row 1
58const key_override_t b_pipe_override = ko_make_with_layers_and_negmods(MOD_BIT_RALT, KC_B, KC_PIPE, 1 << BEPO, MOD_MASK_SHIFT);
59const key_override_t b_brkp_override = ko_make_with_layers(MOD_BIT_LSHIFT | MOD_BIT_RALT, KC_B, US_BRKP, 1 << BEPO);
60
61const key_override_t space_underscore_override = ko_make_with_layers_and_negmods(MOD_BIT_RALT, LT(NUMB, KC_SPC), KC_UNDS, 1 << BEPO, MOD_MASK_SHIFT);
62
63const key_override_t *key_overrides[] = {
64 &circ_exclamation_override,
65 &dot_colon_override,
66 &comma_semicolon_override,
67
68 &b_pipe_override,
69 &b_brkp_override,
70 &space_underscore_override,
71};
72
73void leader_start_user(void) {
74}
75
76void leader_end_user(void) {
77 if (leader_sequence_one_key(KC_F)) {
78 // Leader, f => Types the below string
79 SEND_STRING("QMK is awesome.");
80 }
81}
82
83#define COMBO_REF_DEFAULT QWER
84
85uint8_t combo_ref_from_layer(uint8_t layer){
86 switch (get_highest_layer(layer_state)){
87 case BEPO: return QWER;
88 default: return QWER;
89 }
90 return layer; // important if default is not in case.
91}
92
93enum combos {
94 TO_BEPO, TO_ERGOL, TO_QWERTY,
95 TOGGLE_MOUSE,
96 BEPO_ESC, QWERTY_ESC,
97 // Experiments
98 PIPE, AROBASE, HASH, DOLLAR, SLASH, BSLASH, AMPR, MINUS, UNDERSCORE, EQUAL,
99 LEADER,
100 LPRN, RPRN, LCBR, RCBR, LBRC, RBRC, LABK, RABK,
101};
102
103const uint16_t PROGMEM combo_to_bepo[] = {LT(NAVI,KC_BSPC), OS_LSFT, COMBO_END};
104const uint16_t PROGMEM combo_to_ergol[] = {LT(NUMB,KC_SPC), LT(SYMB, KC_ENT), COMBO_END};
105const uint16_t PROGMEM combo_to_qwerty[] = {KC_DEL, KC_RALT, COMBO_END};
106const uint16_t PROGMEM combo_toggle_mouse[] = {KC_Q, KC_R, COMBO_END};
107
108const uint16_t PROGMEM combo_bepo_escape[] = {HM_ALT_R, HM_GUI_N, COMBO_END};
109const uint16_t PROGMEM combo_qwe_escape[] = {HM_ALT_L, HM_GUI_SCLN, COMBO_END};
110
111const uint16_t PROGMEM combo_qwe_pipe[] = {KC_Q, KC_W, COMBO_END}; // |
112const uint16_t PROGMEM combo_qwe_arobase[] = {KC_W, KC_E, COMBO_END}; // @
113const uint16_t PROGMEM combo_qwe_hash[] = {KC_E, KC_R, COMBO_END}; // #
114const uint16_t PROGMEM combo_qwe_ampr[] = {KC_R, KC_T, COMBO_END}; // &
115const uint16_t PROGMEM combo_qwe_dollar[] = {KC_R, HM_CTL_F, COMBO_END}; // $
116const uint16_t PROGMEM combo_qwe_slash[] = {KC_E, HM_SFT_D, COMBO_END}; // /
117const uint16_t PROGMEM combo_qwe_bslash[] = {HM_SFT_D, KC_C, COMBO_END}; // antislash
118const uint16_t PROGMEM combo_qwe_minus[] = {KC_W, HM_ALT_S, COMBO_END}; // -
119const uint16_t PROGMEM combo_qwe_unds[] = {HM_CTL_F, KC_V, COMBO_END}; // _
120const uint16_t PROGMEM combo_qwe_equal[] = {HM_ALT_S, KC_X, COMBO_END}; // =
121
122const uint16_t PROGMEM combo_qwe_leader[] = {HM_SFT_D, HM_CTL_F, COMBO_END}; // FIXME: change this most likely.
123
124const uint16_t PROGMEM combo_qwe_lprn[] = {KC_I, HM_SFT_K, COMBO_END}; // (
125const uint16_t PROGMEM combo_qwe_rprn[] = {HM_SFT_K, KC_COMM, COMBO_END}; // )
126const uint16_t PROGMEM combo_qwe_lcbr[] = {KC_U, HM_CTL_J, COMBO_END}; // {
127const uint16_t PROGMEM combo_qwe_rcbr[] = {HM_CTL_J, KC_M, COMBO_END}; // }
128const uint16_t PROGMEM combo_qwe_lbrc[] = {KC_O, HM_ALT_L, COMBO_END}; // [
129const uint16_t PROGMEM combo_qwe_rbrc[] = {HM_ALT_L, KC_DOT, COMBO_END}; // ]
130const uint16_t PROGMEM combo_qwe_labk[] = {KC_U, KC_I, COMBO_END}; // <
131const uint16_t PROGMEM combo_qwe_rabk[] = {KC_I, KC_O, COMBO_END}; // >
132
133combo_t key_combos[] = {
134 // Layers
135 [TO_BEPO] = COMBO(combo_to_bepo, TO(BEPO)),
136 [TO_ERGOL] = COMBO(combo_to_ergol, TO(ERGL)),
137 [TO_QWERTY] = COMBO(combo_to_qwerty, TO(QWER)),
138 [TOGGLE_MOUSE] = COMBO(combo_toggle_mouse, TG(MOUS)),
139 // Others
140 [QWERTY_ESC] = COMBO(combo_qwe_escape, KC_ESC),
141 [BEPO_ESC] = COMBO(combo_bepo_escape, KC_ESC),
142 // Experiments
143 [PIPE] = COMBO(combo_qwe_pipe, KC_PIPE),
144 [AROBASE] = COMBO(combo_qwe_arobase, KC_AT),
145 [HASH] = COMBO(combo_qwe_hash, KC_HASH),
146 [DOLLAR] = COMBO(combo_qwe_dollar, KC_DLR),
147 [SLASH] = COMBO(combo_qwe_slash, KC_SLSH),
148 [BSLASH] = COMBO(combo_qwe_bslash, KC_BSLS),
149 [AMPR] = COMBO(combo_qwe_ampr, KC_AMPR),
150 [MINUS] = COMBO(combo_qwe_minus, KC_PMNS),
151 [UNDERSCORE] = COMBO(combo_qwe_unds, KC_UNDS),
152 [EQUAL] = COMBO(combo_qwe_equal, KC_EQL),
153
154 [LEADER] = COMBO(combo_qwe_leader, QK_LEAD),
155
156 [LPRN] = COMBO(combo_qwe_lprn, KC_LPRN),
157 [RPRN] = COMBO(combo_qwe_rprn, KC_RPRN),
158 [LCBR] = COMBO(combo_qwe_lcbr, KC_LCBR),
159 [RCBR] = COMBO(combo_qwe_rcbr, KC_RCBR),
160 [LBRC] = COMBO(combo_qwe_lbrc, KC_LBRC),
161 [RBRC] = COMBO(combo_qwe_rbrc, KC_RBRC),
162 [LABK] = COMBO(combo_qwe_labk, KC_LABK),
163 [RABK] = COMBO(combo_qwe_rabk, KC_RABK),
164};
165
166bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
167 switch (combo_index) {
168 case BEPO_ESC:
169 if (layer_state_is(BEPO)) {
170 return true;
171 }
172 return false;
173 case QWERTY_ESC:
174 if (layer_state_is(QWER)) {
175 return true;
176 }
177 return false;
178 }
179 return true;
180}
181
182tap_dance_action_t tap_dance_actions[] = {
183};
184
185const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = LAYOUT(
186 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', 'R',
187 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', 'R',
188 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', 'R',
189 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R',
190 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R',
191 'L', 'L', 'L', 'R', 'R', 'R'
192);
193
194// clang-format off
195const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
196 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
197 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
198 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
199 // │ TAB │ B │ É │ P │ O │ È │ XXXXXXX │ │ XXXXXXX │ ^ │ V │ D │ L │ J │ Z │
200 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
201 // │ NUMWORD │ GUI/A │ ALT/U │ SFT/I │ CTL/E │ HYP/, │ XXXXXXX │ │ XXXXXXX │ HYP/C │ CTL/T │ SFT/S │ ALT/R │ GUI/N │ SYMB/M │
202 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
203 // │ GRV │ À │ Y │ X │ . │ K │ │ ' │ Q │ G │ H │ F │ W │
204 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
205 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ MODS/DEL│ │ REPEAT │ │ ALT-REP │ │ RALT │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
206 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
207 // │ NUMB/SPC│ NAVI/BSP│ XXX │ │ XXX │SHIFT│ SYMB/ENT│
208 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
209 [BEPO] = LAYOUT(
210 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
211 KC_TAB, KC_B, FR_E_AIGU, KC_P, KC_O, FR_E_GRAVE, XXXXXXX, XXXXXXX, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
212 NUMWORD, HM_GUI_A, HM_ALT_U, HM_SFT_I, HM_CTL_E, HM_HYP_COMM, XXXXXXX, XXXXXXX, HM_HYP_C, HM_CTL_T, HM_SFT_S, HM_ALT_R, HM_GUI_N, LT(SYMB,KC_M),
213 KC_GRV, FR_A_GRAVE, KC_Y, KC_X, KC_DOT, KC_K, FR_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_W,
214 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LT(MODS,KC_DEL), QK_REP, QK_AREP, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
215 LT(NUMB,KC_SPC), LT(NAVI,KC_BSPC), XXXXXXX, XXXXXXX, OS_LSFT, LT(SYMB,KC_ENT)
216 ),
217
218 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
219 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
220 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
221 // │ TAB │ Q │ W │ E │ R │ T │ XXXXXXX │ │ XXXXXXX │ Y │ U │ I │ O │ P │ [ │
222 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
223 // │ NUMWORD │ GUI/A │ ALT/S │ SFT/D │ CTL/F │ HYP/G │ XXXXXXX │ │ XXXXXXX │ HYP/H │ CTL/J │ SFT/K │ ALT/L │ GUI/; │ " │
224 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
225 // │ GRV │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │ ] │
226 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
227 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ DEL │ │ REPEAT │ │ ALT-REP │ │ RALT │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
228 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
229 // │ NUMB/SPC│ NAVI/BSP│ XXX │ │ XXX │SHIFT│ SYMB/ENT│
230 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
231 [ERGL] = LAYOUT(
232 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
233 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
234 NUMWORD, HM_GUI_A, HM_ALT_S, HM_SFT_D, HM_CTL_F, HM_HYP_G, XXXXXXX, XXXXXXX, HM_HYP_H, HM_CTL_J, HM_SFT_K, HM_ALT_L, HM_GUI_SCLN, KC_QUOT,
235 KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC,
236 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, QK_REP, QK_AREP, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
237 LT(NUMB,KC_SPC), LT(NAVI,KC_BSPC), XXXXXXX, XXXXXXX, OS_LSFT, LT(SYMB,KC_ENT)
238 ),
239
240 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
241 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
242 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
243 // │ TAB │ Q │ W │ E │ R │ T │ XXXXXXX │ │ XXXXXXX │ Y │ U │ I │ O │ P │ [ │
244 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
245 // │ NUMWORD │ GUI/A │ ALT/S │ SFT/D │ CTL/F │ HYP/G │ XXXXXXX │ │ XXXXXXX │ HYP/H │ CTL/J │ SFT/K │ ALT/L │ GUI/; │ " │
246 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
247 // │ GRV │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │ ] │
248 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
249 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ DEL │ │ REPEAT │ │ ALT-REP │ │ RALT │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
250 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
251 // │ NUMB/SPC│ NAVI/BSP│ XXX │ │ XXX │SHIFT│ SYMB/ENT│
252 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
253 [QWER] = LAYOUT(
254 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
255 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
256 NUMWORD, HM_GUI_A, HM_ALT_S, HM_SFT_D, HM_CTL_F, HM_HYP_G, XXXXXXX, XXXXXXX, HM_HYP_H, HM_CTL_J, HM_SFT_K, HM_ALT_L, HM_GUI_SCLN, KC_QUOT,
257 KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC,
258 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, QK_REP, QK_AREP, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
259 LT(NUMB,KC_SPC), LT(NAVI,KC_BSPC), XXXXXXX, XXXXXXX, OS_LSFT, LT(SYMB,KC_ENT)
260 ),
261
262 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
263 // │ VRSN │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
264 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
265 // │ \ │ ` │ < │ > │ - │ | │ XXXXXXX │ │ XXXXXXX │ ^ │ { │ } │ $ │ ^ │ XXXXXXX │
266 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
267 // │ XXXXXXX │ ! │ * │ / │ = │ & │ XXXXXXX │ │ XXXXXXX │ # │ ( │ ) │ ; │ " │ XXXXXXX │
268 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
269 // │ XXXXXXX │ ~ │ [ │ ] │ + │ % │ │ @ │ : │ , │ . │ ' │ XXXXXXX │
270 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
271 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ _____ │ │ RGB VAL+ │ │ RGB TOG │ │ _____ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
272 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
273 // │ XXXXXXX │ XXXXXXX │ XXX │ │ XXX │_____│ _____ │
274 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
275 [SYMB] = LAYOUT(
276 VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
277 KC_BSLS, FR_GRAVE, KC_LABK, KC_RABK, KC_PMNS, KC_PIPE, XXXXXXX, XXXXXXX, KC_CIRC, KC_LCBR, KC_RCBR, KC_DLR, FR_CIRC, XXXXXXX,
278 XXXXXXX, KC_EXLM, KC_PAST, KC_PSLS, KC_EQL, KC_AMPR, XXXXXXX, XXXXXXX, KC_HASH, KC_LPRN, KC_RPRN, KC_SCLN, FR_DQUO, XXXXXXX,
279 XXXXXXX, KC_TILD, KC_LBRC, KC_RBRC, KC_PLUS, KC_PERC, KC_AT, KC_COLN, KC_COMM, KC_DOT, FR_QUOT, XXXXXXX,
280 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RM_VALU, RM_TOGG, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
281 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______
282 ),
283
284 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
285 // │ VRSN │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
286 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
287 // │ _____ │ F1 │ F2 │ F3 │ F4 │ F5 │ _____ │ │ _____ │ _____ │ 7 │ 8 │ 9 │ * │ / │
288 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
289 // │ _____ │ F6 │ F7 │ F8 │ F9 │ F10 │ _____ │ │ _____ │ _____ │ 4 │ 5 │ 6 │ - │ + │
290 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
291 // │ _____ │ F11 │ F12 │ F13 │ F14 │ F15 │ │ _____ │ 1 │ 2 │ 3 │ . │ , │
292 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
293 // │ EE CLR │ _____ │ _____ │ _____ │ _____ │ │ _____ │ │ _____ │ │ 0 │ _____ │ _____ │ _____ │ _____ │
294 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
295 // │ _____ │ _____ │ ___ │ │ ___ │_____│ _____ │
296 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
297 [NUMB] = LAYOUT(
298 VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
299 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_7, KC_8, KC_9, KC_PAST, KC_PSLS,
300 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, KC_4, KC_5, KC_6, KC_PMNS, KC_PPLS,
301 _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, _______, KC_1, KC_2, KC_3, KC_PDOT, KC_PCMM,
302 EE_CLR, _______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, _______,
303 _______, _______, _______, _______, _______, _______
304 ),
305
306 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
307 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │
308 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
309 // │ VRSN │ _____ │ @ │ { │ } │ | │ _____ │ │ _____ │ PRTSCR │ HOME │ UP │ END │ PG UP │ BOOT │
310 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
311 // │ _____ │ _____ │ MED PRV │ MED PLY │ MED NXT │ _____ │ _____ │ │ _____ │ _____ │ LEFT │ DOWN │ RIGHT │ PG DN │ _____ │
312 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
313 // │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │ │ MUTE │ _____ │ _____ │ _____ │ _____ │ _____ │
314 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
315 // │ EE CLR │ _____ │ _____ │ _____ │ _____ │ │ VOL DN │ │ VOL UP │ │ _____ │ _____ │ _____ │ _____ │ _____ │
316 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
317 // │ _____ │ _____ │ ___ │ │ ___ │_____│ _____ │
318 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
319 [NAVI] = LAYOUT(
320 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
321 VRSN, _______, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_PSCR, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_BOOT,
322 _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,
323 _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______,
324 EE_CLR, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,
325 _______, _______, _______, _______, _______, _______
326 ),
327
328
329 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
330 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ BOOT │
331 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
332 // │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │ │ _____ │ _____ │ _____ │ MS UP │ _____ │ _____ │ _____ │
333 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
334 // │ _____ │ WHL L │ WHL U │ WHL D │ WHL R │ _____ │ _____ │ │ _____ │ _____ │ MS LFT │ MS DN │ MS RGT │ _____ │ _____ │
335 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
336 // │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │ │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │
337 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
338 // │ EE CLR │ _____ │ _____ │ _____ │ _____ │ │ VOL DN │ │ VOL UP │ │ _____ │ _____ │ _____ │ _____ │ _____ │
339 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
340 // │ BTN 1 │ BTN 3 │ ___ │ │ ___ │BTN 3│ BTN 2 │
341 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
342 [MOUS] = LAYOUT(
343 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
344 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_UP, _______, _______, _______,
345 _______, MS_WHLL, MS_WHLU, MS_WHLD, MS_WHLR, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_RGHT, _______, _______,
346 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
347 EE_CLR, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,
348 MS_BTN1, MS_BTN3, _______, _______, MS_BTN3, MS_BTN2
349 ),
350
351 // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
352 // │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ XXXXXXX │ BOOT │
353 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
354 // │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │ │ _____ │ _____ │ _____ │ MS UP │ _____ │ _____ │ _____ │
355 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
356 // │ _____ │ GUI │ ALT │ SHIFT │ CTL │ HYPER │ _____ │ │ _____ │ _____ │ CTL │ SHIFT │ ALT │ GUI │ _____ │
357 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┘ └─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
358 // │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │ │ _____ │ _____ │ _____ │ _____ │ _____ │ _____ │
359 // ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼───────────────┐ ┌───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
360 // │ EE CLR │ _____ │ _____ │ _____ │ _____ │ │ VOL DN │ │ VOL UP │ │ _____ │ _____ │ _____ │ _____ │ _____ │
361 // └─────────┴─────────┴─────────┴─────────┴─────────┼─────────┼─────────┬─────┤ ├─────┬─────┼─────────┼─────────┴─────────┴─────────┴─────────┴─────────┘
362 // │ BTN 1 │ BTN 3 │ ___ │ │ ___ │BTN 3│ BTN 2 │
363 // └─────────┴─────────┴─────┘ └─────┴─────┴─────────┘
364 [MODS] = LAYOUT(
365 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
366 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MS_UP, _______, _______, _______,
367 _______, OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, OS_HYPR, _______, _______, _______, OS_LCTL, OS_LSFT, OS_LALT, OS_LGUI, _______,
368 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
369 EE_CLR, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,
370 MS_BTN1, MS_BTN3, _______, _______, MS_BTN3, MS_BTN2
371 ),
372};
373
374bool process_record_user(uint16_t keycode, keyrecord_t *record) {
375 uint8_t current_layer = get_highest_layer(layer_state);
376 uint8_t mod_state = get_mods();
377
378 // Process numword before other logic
379 if (!process_num_word(keycode, record)) {
380 return false;
381 }
382
383 // Handle NUMWORD separately since it needs both press and release
384 if (keycode == NUMWORD) {
385 process_num_word_activation(NUMB, record);
386 return false;
387 }
388
389 if (record->event.pressed) {
390 switch (keycode) {
391 case VRSN:
392 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
393 return false;
394 case SFTLLCK:
395 if (record->tap.count) {
396 if (record->event.pressed) {
397 // Toggle the lock on the highest layer.
398 layer_lock_invert(get_highest_layer(layer_state));
399 }
400 return false;
401 }
402 break;
403 case FR_DQUO:
404 if (record->event.pressed) {
405 // if layer is bepo, and shift is on, send ?
406 if (IS_LAYER_ON_STATE(current_layer, BEPO) && (get_mods() & MOD_MASK_SHIFT)) {
407 del_mods(MOD_MASK_SHIFT);
408 SEND_STRING(SS_TAP(X_1));
409 set_mods(mod_state);
410 } else {
411 SEND_STRING(FR_DQUO_M);
412 }
413 }
414 break;
415 case FR_QUOT:
416 // if layer is bepo, and shift is on, send ?
417 if (IS_LAYER_ON_STATE(current_layer, BEPO) && (get_mods() & MOD_MASK_SHIFT)) {
418 del_mods(MOD_MASK_SHIFT);
419 SEND_STRING(SS_LSFT(SS_TAP(X_SLASH)));
420 set_mods(mod_state);
421 } else {
422 SEND_STRING(FR_QUOT_M);
423 }
424 break;
425 case FR_GRAVE:
426 if (record->event.pressed) {
427 SEND_STRING(FR_GRAVE_M);
428 }
429 break;
430 case FR_CIRC:
431 if (record->event.pressed) {
432 SEND_STRING(FR_CIRC_M);
433 }
434 break;
435 case FR_E_AIGU:
436 if (record->event.pressed) {
437 if (get_mods() & MOD_MASK_SHIFT) {
438 // É
439 del_mods(MOD_MASK_SHIFT);
440 SEND_STRING(FR_E_AIGU_CAPS_M);
441 set_mods(mod_state);
442 } else {
443 // é
444 SEND_STRING(FR_E_AIGU_M);
445 }
446 }
447 break;
448 case FR_E_AIGU_CAPS:
449 if (record->event.pressed) {
450 SEND_STRING(FR_E_AIGU_CAPS_M);
451 }
452 break;
453 case FR_E_GRAVE:
454 if (record->event.pressed) {
455 if (get_mods() & MOD_MASK_SHIFT) {
456 //
457 del_mods(MOD_MASK_SHIFT);
458 SEND_STRING(FR_E_GRAVE_CAPS_M);
459 set_mods(mod_state);
460 } else {
461 // è
462 SEND_STRING(FR_E_GRAVE_M);
463 }
464 }
465 break;
466 case FR_E_GRAVE_CAPS:
467 if (record->event.pressed) {
468 SEND_STRING(FR_E_GRAVE_CAPS_M);
469 }
470 break;
471 case FR_A_GRAVE:
472 if (record->event.pressed) {
473 if (get_mods() & MOD_MASK_SHIFT) {
474 del_mods(MOD_MASK_SHIFT);
475 SEND_STRING(FR_A_GRAVE_CAPS_M);
476 set_mods(mod_state);
477 } else {
478 // à
479 SEND_STRING(FR_A_GRAVE_M);
480 }
481 }
482 break;
483 case FR_A_GRAVE_CAPS:
484 if (record->event.pressed) {
485 SEND_STRING(FR_A_GRAVE_CAPS_M);
486 }
487 break;
488 }
489 }
490 return true;
491}
492
493extern rgb_config_t rgb_matrix_config;
494
495// Line 2 home-row (7 12 17 22 [27] and [63] 58 53 48 43)
496void my_set_rgb_matrix_color_homerow(uint8_t red, uint8_t green, uint8_t blue) {
497 rgb_matrix_set_color(7, red, green, blue);
498 rgb_matrix_set_color(12, red, green, blue);
499 rgb_matrix_set_color(17, red, green, blue);
500 rgb_matrix_set_color(22, red, green, blue);
501
502 rgb_matrix_set_color(58, red, green, blue);
503 rgb_matrix_set_color(53, red, green, blue);
504 rgb_matrix_set_color(48, red, green, blue);
505 rgb_matrix_set_color(43, red, green, blue);
506}
507
508void my_set_rgb_matrix_color_line(int line, uint8_t red, uint8_t green, uint8_t blue) {
509 if (line == 0 || line == 1 || line == 2) {
510 // Left
511 rgb_matrix_set_color(line, red, green, blue);
512 rgb_matrix_set_color(line+5, red, green, blue);
513 rgb_matrix_set_color(line+10, red, green, blue);
514 rgb_matrix_set_color(line+15, red, green, blue);
515 rgb_matrix_set_color(line+20, red, green, blue);
516 rgb_matrix_set_color(line+25, red, green, blue);
517 /* rgb_matrix_set_color(line+29, red, green, blue); */
518 // Right
519 /* rgb_matrix_set_color(line+65, red, green, blue); */
520 rgb_matrix_set_color(line+61, red, green, blue);
521 rgb_matrix_set_color(line+56, red, green, blue);
522 rgb_matrix_set_color(line+51, red, green, blue);
523 rgb_matrix_set_color(line+46, red, green, blue);
524 rgb_matrix_set_color(line+41, red, green, blue);
525 rgb_matrix_set_color(line+36, red, green, blue);
526 } else if (line == 3) {
527 // Left
528 rgb_matrix_set_color(3, red, green, blue);
529 rgb_matrix_set_color(8, red, green, blue);
530 rgb_matrix_set_color(13, red, green, blue);
531 rgb_matrix_set_color(18, red, green, blue);
532 rgb_matrix_set_color(23, red, green, blue);
533 rgb_matrix_set_color(28, red, green, blue);
534 // Right
535 rgb_matrix_set_color(64, red, green, blue);
536 rgb_matrix_set_color(59, red, green, blue);
537 rgb_matrix_set_color(54, red, green, blue);
538 rgb_matrix_set_color(49, red, green, blue);
539 rgb_matrix_set_color(44, red, green, blue);
540 rgb_matrix_set_color(39, red, green, blue);
541 } else if (line == 4) {
542 // Left
543 /* rgb_matrix_set_color(4, red, green, blue); */
544 /* rgb_matrix_set_color(9, red, green, blue); */
545 /* rgb_matrix_set_color(14, red, green, blue); */
546 /* rgb_matrix_set_color(19, red, green, blue); */
547 rgb_matrix_set_color(24, red, green, blue);
548 rgb_matrix_set_color(32, red, green, blue);
549 rgb_matrix_set_color(33, red, green, blue);
550 /* rgb_matrix_set_color(34, red, green, blue); */
551 rgb_matrix_set_color(35, red, green, blue);
552 // Right
553 rgb_matrix_set_color(60, red, green, blue);
554 /* rgb_matrix_set_color(55, red, green, blue); */
555 /* rgb_matrix_set_color(50, red, green, blue); */
556 /* rgb_matrix_set_color(45, red, green, blue); */
557 /* rgb_matrix_set_color(40, red, green, blue); */
558 rgb_matrix_set_color(68, red, green, blue);
559 rgb_matrix_set_color(69, red, green, blue);
560 /* rgb_matrix_set_color(70, red, green, blue); */
561 rgb_matrix_set_color(71, red, green, blue);
562 }
563}
564
565// matrix, to set key with. maybe there is a better way but used ascii generator so i can easily set those visually
566// ┌────┬────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┬────┐
567// │ 0 │ 5 │ 10 │ 15 │ 20 │ 25 │ 29 │ │ 65 │ 61 │ 56 │ 51 │ 46 │ 41 │ 36 │
568// ├────┼────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┼────┤
569// │ 1 │ 6 │ 11 │ 16 │ 21 │ 26 │ 30 │ │ 66 │ 62 │ 57 │ 52 │ 47 │ 42 │ 37 │
570// ├────┼────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┼────┤
571// │ 2 │ 7 │ 12 │ 17 │[22]│ 27 │ 31 │ │ 67 │ 63 │[58]│ 53 │ 48 │ 43 │ 38 │
572// ├────┼────┼────┼────┼────┼────┼────┘ └────┼────┼────┼────┼────┼────┼────┤
573// │ 3 │ 8 │ 13 │ 18 │ 23 │ 28 │ │ 64 │ 59 │ 54 │ 49 │ 44 │ 39 │
574// ├────┼────┼────┼────┼────┼────┼─────────┐ ┌─────────┼────┼────┼────┼────┼────┼────┤
575// │ 4 │ 9 │ 14 │ 19 │ 24 │ │ 35 │ │ 71 │ │ 60 │ 55 │ 50 │ 45 │ 40 │
576// └────┴────┴────┴────┴────┼────┼────┬────┤ ├────┬────┼────┼────┴────┴────┴────┴────┘
577// │ 32 │ 33 │ 34 │ │ 70 │ 69 │ 68 │
578// └────┴────┴────┘ └────┴────┴────┘
579// Runs constantly in the background, in a loop.
580bool rgb_matrix_indicators_user(void) {
581 if (rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)) {
582 switch (get_highest_layer(layer_state)) {
583 case BEPO:
584 rgb_matrix_set_color_all(RGB_OFF);
585 // Line 1
586 my_set_rgb_matrix_color_line(1,213,144,0);
587 // Line 2
588 my_set_rgb_matrix_color_line(2,27,213,0);
589 my_set_rgb_matrix_color_homerow(206,255,206);
590 // Line 3
591 my_set_rgb_matrix_color_line(3,0,255,167);
592 // Line 4
593 my_set_rgb_matrix_color_line(4,0,113,255);
594 break;
595 case ERGL:
596 rgb_matrix_set_color_all(RGB_OFF);
597 // ERGOL layer
598 rgb_matrix_set_color(34, 0, 113, 255);
599 rgb_matrix_set_color(70, 0, 113, 255);
600 // Line 1
601 my_set_rgb_matrix_color_line(1,213,144,0);
602 // Line 2
603 my_set_rgb_matrix_color_line(2,27,213,0);
604 my_set_rgb_matrix_color_homerow(206,255,206);
605 // Line 3
606 my_set_rgb_matrix_color_line(3,0,255,167);
607 // Line 4
608 my_set_rgb_matrix_color_line(4,0,113,255);
609 break;
610 case QWER:
611 rgb_matrix_set_color_all(RGB_OFF);
612 // QWERTY layer
613 rgb_matrix_set_color(34, 27,213,0);
614 rgb_matrix_set_color(70, 27,213,0);
615 // Line 1
616 my_set_rgb_matrix_color_line(1,213,144,0);
617 // Line 2
618 my_set_rgb_matrix_color_line(2,27,213,0);
619 my_set_rgb_matrix_color_homerow(206,255,206);
620 // Line 3
621 my_set_rgb_matrix_color_line(3,0,255,167);
622 // Line 4
623 my_set_rgb_matrix_color_line(4,0,113,255);
624 break;
625 case NUMB:
626 rgb_matrix_set_color_all(RGB_OFF);
627
628 rgb_matrix_set_color(0, RGB_RED);
629
630 rgb_matrix_set_color(6, 0, 55, 255); // FX
631 rgb_matrix_set_color(11, 0, 55, 255); // FX
632 rgb_matrix_set_color(16, 0, 55, 255); // FX
633 rgb_matrix_set_color(21, 0, 55, 255); // FX
634 rgb_matrix_set_color(26, 0, 55, 255); // FX
635 rgb_matrix_set_color(7, 0, 55, 255); // FX
636 rgb_matrix_set_color(12, 0, 55, 255); // FX
637 rgb_matrix_set_color(17, 0, 55, 255); // FX
638 rgb_matrix_set_color(22, 0, 55, 255); // FX
639 rgb_matrix_set_color(27, 0, 55, 255); // FX
640 rgb_matrix_set_color(8, 0, 55, 255); // FX
641 rgb_matrix_set_color(13, 0, 55, 255); // FX
642
643
644 rgb_matrix_set_color(18, 0, 183, 255); // FX
645 rgb_matrix_set_color(23, 0, 183, 255); // FX
646 rgb_matrix_set_color(28, 0, 183, 255); // FX
647
648 rgb_matrix_set_color(60, 255, 255, 255); // 0
649 rgb_matrix_set_color(47, 255, 199, 0); // number
650 rgb_matrix_set_color(48, 255, 199, 0); // number
651 rgb_matrix_set_color(49, 255, 199, 0); // number
652 rgb_matrix_set_color(52, 255, 199, 0); // number
653 rgb_matrix_set_color(53, 255, 199, 0); // number
654 rgb_matrix_set_color(54, 255, 199, 0); // number
655 rgb_matrix_set_color(57, 255, 199, 0); // number
656 rgb_matrix_set_color(58, 255, 199, 0); // number
657 rgb_matrix_set_color(59, 255, 199, 0); // number
658
659 rgb_matrix_set_color(42, 183, 255, 0); // calc
660 rgb_matrix_set_color(43, 183, 255, 0); // calc
661 rgb_matrix_set_color(44, 183, 255, 0); // calc
662 rgb_matrix_set_color(37, 183, 255, 0); // calc
663 rgb_matrix_set_color(38, 183, 255, 0); // calc
664 rgb_matrix_set_color(39, 183, 255, 0); // calc
665 break;
666 case SYMB:
667 rgb_matrix_set_color_all(RGB_OFF);
668 // () {} [] <>
669 rgb_matrix_set_color(11, 27, 213, 0);
670 rgb_matrix_set_color(16, 27, 213, 0);
671 rgb_matrix_set_color(13, 27, 213, 0);
672 rgb_matrix_set_color(18, 27, 213, 0);
673 rgb_matrix_set_color(57, 27, 213, 0);
674 rgb_matrix_set_color(58, 27, 213, 0);
675 rgb_matrix_set_color(52, 27, 213, 0);
676 rgb_matrix_set_color(53, 27, 213, 0);
677
678 // +-=/*
679 rgb_matrix_set_color(23, 29, 204, 67);
680 rgb_matrix_set_color(12, 29, 204, 67);
681 rgb_matrix_set_color(17, 29, 204, 67);
682 rgb_matrix_set_color(22, 29, 204, 67);
683 rgb_matrix_set_color(21, 29, 204, 67);
684 rgb_matrix_set_color(1, 29, 204, 67); // anti-slash
685
686 // `!~|&%^#
687 rgb_matrix_set_color(6, 255, 199, 0);
688 rgb_matrix_set_color(7, 255, 199, 0);
689 rgb_matrix_set_color(8, 255, 199, 0);
690 rgb_matrix_set_color(26, 255, 199, 0);
691 rgb_matrix_set_color(27, 255, 199, 0);
692 rgb_matrix_set_color(28, 255, 199, 0);
693 rgb_matrix_set_color(62, 255, 199, 0);
694 rgb_matrix_set_color(42, 255, 199, 0);
695 rgb_matrix_set_color(63, 255, 199, 0);
696
697 // "'
698 rgb_matrix_set_color(43, 204, 202, 29);
699 rgb_matrix_set_color(44, 204, 202, 29);
700
701 // :;,.
702 rgb_matrix_set_color(59, 29, 120, 204);
703 rgb_matrix_set_color(54, 29, 120, 204);
704 rgb_matrix_set_color(48, 29, 120, 204);
705 rgb_matrix_set_color(49, 29, 120, 204);
706
707 // @ $
708 rgb_matrix_set_color(47, 174, 29, 204);
709 rgb_matrix_set_color(64, 174, 29, 204);
710
711 break;
712 case NAVI:
713 rgb_matrix_set_color_all(RGB_OFF);
714
715 rgb_matrix_set_color(1, RGB_RED);
716 rgb_matrix_set_color(37, RGB_RED);
717
718 // Arrows
719 rgb_matrix_set_color(52, 0, 113, 255);
720 rgb_matrix_set_color(53, 0, 113, 255);
721 rgb_matrix_set_color(58, 0, 113, 255);
722 rgb_matrix_set_color(48, 0, 113, 255);
723 // Home, End, PgUp, PgDown
724 rgb_matrix_set_color(57, 13, 0, 255);
725 rgb_matrix_set_color(47, 13, 0, 255);
726 rgb_matrix_set_color(42, 13, 0, 255);
727 rgb_matrix_set_color(43, 13, 0, 255);
728
729 // Media
730 rgb_matrix_set_color(12, 27, 213, 0);
731 rgb_matrix_set_color(17, 27, 213, 0);
732 rgb_matrix_set_color(22, 27, 213, 0);
733
734 // Volume
735 rgb_matrix_set_color(35, 170, 0, 255);
736 rgb_matrix_set_color(71, 170, 0, 255);
737 rgb_matrix_set_color(64, 170, 0, 255);
738
739 // PrintScreen
740 rgb_matrix_set_color(62, 255, 255, 255);
741 break;
742 case MOUS:
743 rgb_matrix_set_color_all(RGB_OFF);
744 // mouse movements
745 rgb_matrix_set_color(52, 0, 113, 255);
746 rgb_matrix_set_color(53, 0, 113, 255);
747 rgb_matrix_set_color(58, 0, 113, 255);
748 rgb_matrix_set_color(48, 0, 113, 255);
749 // wheel
750
751 rgb_matrix_set_color(7, 13, 0, 255);
752 rgb_matrix_set_color(12, 13, 0, 255);
753 rgb_matrix_set_color(17, 13, 0, 255);
754 rgb_matrix_set_color(22, 13, 0, 255);
755 // clicks
756 rgb_matrix_set_color(32, 170, 0, 255);
757 rgb_matrix_set_color(33, 170, 0, 255);
758 rgb_matrix_set_color(68, 170, 0, 255);
759 rgb_matrix_set_color(69, 170, 0, 255);
760 break;
761 default:
762 rgb_matrix_set_color_all(RGB_OFF);
763 break;
764 }
765 }
766 return false;
767}
768
769void caps_word_set_user(bool active) {
770 if (active) {
771 rgb_matrix_set_color(40, 255, 255, 255);
772 } else {
773 rgb_matrix_set_color(40, RGB_OFF);
774 }
775}