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
|
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
// Define the layers
enum layer_names {
_LAYER0,
_LAYER0_MOD,
_LAYER1,
_LAYER2
};
#define UNDERGLOW 60
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┐
* │ E │ n │ 6 │ 7 │
* ├───┼───┼───┼───┤
* │ B │ n │ 5 │ 8 │
* ├───┼───┼───┼───┤
* │ 2 │ 3 │ 4 │ 9 │
* └───┴───┴───┴───┘
*/
[_LAYER0] = LAYOUT( // default
KC_MUTE, LSFT(KC_COMM), LSFT(KC_DOT),
DF(_LAYER1), KC_J, KC_L,
KC_MPRV, KC_MPLY, KC_MNXT, TG(_LAYER0_MOD) // btm-right one shot mod layer
),
[_LAYER0_MOD] = LAYOUT( // default MOD
_______, RM_VALU, RM_NEXT, // _______ transparent, goes to above layer
_______, RM_VALD, RM_TOGG,
LCTL(LGUI(KC_SPC)), _______, _______, TG(_LAYER0_MOD)
),
[_LAYER1] = LAYOUT( // FCPX
LSFT(LGUI(KC_B)), LGUI(KC_B), LGUI(KC_EQL),
DF(_LAYER2), LALT(KC_K), LGUI(KC_MINS),
KC_J, KC_K, KC_L, KC_BSPC
),
[_LAYER2] = LAYOUT( // KICAD
KC_E, KC_ESC, KC_M,
DF(_LAYER0), LGUI(KC_Z), KC_X,
KC_V, KC_D, KC_U, KC_BSPC
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAYER0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, // default
[_LAYER0_MOD] = { ENCODER_CCW_CW(_______, _______) }, // default MOD
[_LAYER1] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // FCPX
[_LAYER2] = { ENCODER_CCW_CW(KC_R, S(KC_R)) } // KICAD
};
#endif
#ifdef OLED_ENABLE
// Function to display the current layer and information on the OLED
bool oled_task_user(void) {
switch (get_highest_layer(layer_state | default_layer_state)) {
case _LAYER0:
oled_write_ln_P(PSTR("(VOL- VOL+) LAYER0"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("MUTE SLOW FAST"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("LAYR RSET 10BK 10FW"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("MREV MPLA MFWD +OPT"), false);
break;
case _LAYER0_MOD:
oled_write_ln_P(PSTR("____ ____ 0-MOD"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("____ BRI+ ANIM"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("____ ____ BRI- TOGG"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("EMOJ ____ ____ -OPT"), false);
break;
case _LAYER1:
oled_write_ln_P(PSTR("(FRA- FRA+) FCPX"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("XXXX BRAK ZOM+"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("LAYR RSET KFRA ZOM-"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("BACK STOP FORW DELT"), false);
break;
case _LAYER2:
oled_write_ln_P(PSTR("(RO L RO R) KICAD"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("EDIT ESCP MOVE"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("LAYR RSET UNDO TRAK"), false);
oled_write_ln_P(PSTR(""), false);
oled_write_ln_P(PSTR("VIA DRAG SALL DELT"), false);
break;
}
return false;
}
#endif
bool rgb_matrix_indicators_user(void) {
switch(get_highest_layer(layer_state|default_layer_state)) {
case _LAYER2:
rgb_matrix_set_color(11, 0, 0, UNDERGLOW);
rgb_matrix_set_color(10, 0, 0, UNDERGLOW);
rgb_matrix_set_color(9, 0, 0, UNDERGLOW);
rgb_matrix_set_color(8, 0, 0, UNDERGLOW);
break;
case _LAYER1:
rgb_matrix_set_color(11, 0, UNDERGLOW, 0);
rgb_matrix_set_color(10, 0, UNDERGLOW, 0);
rgb_matrix_set_color(9, 0, UNDERGLOW, 0);
rgb_matrix_set_color(8, 0, UNDERGLOW, 0);
break;
case _LAYER0_MOD:
rgb_matrix_set_color(11, UNDERGLOW/2, 0, UNDERGLOW/2);
rgb_matrix_set_color(10, UNDERGLOW/2, 0, UNDERGLOW/2);
rgb_matrix_set_color(9, UNDERGLOW/2, 0, UNDERGLOW/2);
rgb_matrix_set_color(8, UNDERGLOW/2, 0, UNDERGLOW/2);
break;
case _LAYER0:
rgb_matrix_set_color(11, UNDERGLOW, 0, 0);
rgb_matrix_set_color(10, UNDERGLOW, 0, 0);
rgb_matrix_set_color(9, UNDERGLOW, 0, 0);
rgb_matrix_set_color(8, UNDERGLOW, 0, 0);
break;
default:
break;
}
return false;
}
|