aboutsummaryrefslogtreecommitdiff
path: root/keyboards/mixi/keymaps/default/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mixi/keymaps/default/keymap.c')
-rw-r--r--keyboards/mixi/keymaps/default/keymap.c116
1 files changed, 116 insertions, 0 deletions
diff --git a/keyboards/mixi/keymaps/default/keymap.c b/keyboards/mixi/keymaps/default/keymap.c
new file mode 100644
index 000000000..806a7a924
--- /dev/null
+++ b/keyboards/mixi/keymaps/default/keymap.c
@@ -0,0 +1,116 @@
1#include QMK_KEYBOARD_H
2
3// please change this value to the desired layer definitions
4#define LAYERNUM 3
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8 /*
9 * | Knob: Layer +/- |
10 * .---------------------------------------.
11 * | Mute | Play/Pause | Hold: Layer 2 |
12 * |----------|------------|---------------|
13 * | Previous | Up | Next |
14 * |----------|------------|---------------|
15 * | Left | Down | Right |
16 * '---------------------------------------'
17 */
18 [0] =
19 LAYOUT(
20 KC_MUTE, KC_MPLY, MO(2),
21 KC_MNXT, KC_UP , KC_MPRV ,
22 KC_LEFT, KC_DOWN , KC_RGHT
23 ),
24
25 /*
26 * .-----------------------.
27 * | NUM 7 | NUM 8 | NUM 9 |
28 * |-------|-------|-------|
29 * | NUM 4 | NUM 5 | NUM 6 |
30 * |-------|-------|-------|
31 * | NUM 1 | NUM 2 | NUM 3 |
32 * '-----------------------'
33 */
34 [1] =
35 LAYOUT(
36 KC_P7, KC_P8, KC_P8,
37 KC_P4, KC_P5, KC_P6,
38 KC_P1, KC_P2, KC_P3
39 ),
40
41 /*
42 * | Knob: Volume +/- |
43 * .--------------------------------------.
44 * | N/A | N/A | Hold: Layer 2 |
45 * |--------------|-------|---------------|
46 * | RESET EEPROM | RESET | DEBUG MODE |
47 * |--------------|-------|---------------|
48 * | N/A | N/A | N/A |
49 * '--------------------------------------'
50 */
51 [2] =
52 LAYOUT(
53 KC_NO , KC_NO, KC_TRNS,
54 EEP_RST, RESET, DEBUG ,
55 KC_NO , KC_NO, KC_NO
56 )
57
58};
59
60const rgblight_segment_t PROGMEM _base_layer[] = RGBLIGHT_LAYER_SEGMENTS(
61 {0, RGBLED_NUM, HSV_WHITE}
62 );
63const rgblight_segment_t PROGMEM _middle_layer[] = RGBLIGHT_LAYER_SEGMENTS(
64 {0, RGBLED_NUM, HSV_GREEN}
65 );
66const rgblight_segment_t PROGMEM _top_layer[] = RGBLIGHT_LAYER_SEGMENTS(
67 {0, RGBLED_NUM, HSV_RED}
68 );
69
70const rgblight_segment_t* const PROGMEM _rgb_layers[] =
71RGBLIGHT_LAYERS_LIST(
72 _base_layer,
73 _middle_layer,
74 _top_layer
75 );
76
77void keyboard_post_init_user(void) {
78 rgblight_layers = _rgb_layers;
79}
80
81layer_state_t layer_state_set_user(layer_state_t state) {
82
83 switch (get_highest_layer(state)) {
84 case 0:
85 rgblight_blink_layer(0, 500);
86 break;
87 case 1:
88 rgblight_blink_layer(1, 500);
89 break;
90 case 2:
91 rgblight_blink_layer(2, 500);
92 break;
93 }
94 return state;
95}
96
97uint8_t selected_layer = 0;
98void encoder_update_user(uint8_t index, bool clockwise) {
99 if (index == 0) {
100 if (layer_state_is(2)) {
101 if (clockwise) {
102 tap_code(KC_VOLU);
103 } else {
104 tap_code(KC_VOLD);
105 }
106 } else {
107 if (clockwise && selected_layer < (LAYERNUM-2)) { /* Prevent switch to layer 2 using encoder */
108 selected_layer++;
109 layer_move(selected_layer);
110 } else if (!clockwise && selected_layer > 0) {
111 selected_layer--;
112 layer_move(selected_layer);
113 }
114 }
115 }
116}