Updated q8 pro
This commit is contained in:
parent
d90608debf
commit
f877082a65
10 changed files with 127 additions and 69 deletions
|
|
@ -34,8 +34,9 @@
|
||||||
/* Turn off backllit if brightness value is low */
|
/* Turn off backllit if brightness value is low */
|
||||||
# define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 48
|
# define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 48
|
||||||
|
|
||||||
|
/* Indication led */
|
||||||
# define CAPS_LOCK_INDEX 29
|
# define CAPS_LOCK_INDEX 29
|
||||||
# define LOW_BAT_IND_INDEX 60
|
# define LOW_BAT_IND_INDEX 61
|
||||||
|
|
||||||
// RGB Matrix Animation modes. Explicitly enabled
|
// RGB Matrix Animation modes. Explicitly enabled
|
||||||
// For full list of effects, see:
|
// For full list of effects, see:
|
||||||
|
|
@ -45,6 +46,5 @@
|
||||||
|
|
||||||
/* Set LED driver current */
|
/* Set LED driver current */
|
||||||
# define CKLED2001_CURRENT_TUNE \
|
# define CKLED2001_CURRENT_TUNE \
|
||||||
{ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 }
|
{ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
"device_version": "1.0.0"
|
"device_version": "1.0.0"
|
||||||
},
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_69_ansi": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"matrix":[0, 0], "x":0.75, "y":0.25},
|
{"matrix":[0, 0], "x":0.75, "y":0.25},
|
||||||
{"matrix":[0, 1], "x":1.75, "y":0.25},
|
{"matrix":[0, 1], "x":1.75, "y":0.25},
|
||||||
|
|
|
||||||
|
|
@ -22,39 +22,39 @@ enum layers{
|
||||||
WIN_BASE,
|
WIN_BASE,
|
||||||
MAC_FN1,
|
MAC_FN1,
|
||||||
WIN_FN1,
|
WIN_FN1,
|
||||||
FN2
|
FN2,
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[MAC_BASE] = LAYOUT(
|
[MAC_BASE] = LAYOUT_69_ansi(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
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_ENT, KC_HOME,
|
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_ENT, KC_HOME,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, MO(MAC_FN1), MO(FN2), KC_SPC, KC_RCMMD, KC_LEFT, KC_DOWN, KC_RGHT),
|
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, MO(MAC_FN1), MO(FN2), KC_SPC, KC_RCMMD, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
[WIN_BASE] = LAYOUT(
|
[WIN_BASE] = LAYOUT_69_ansi(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
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_ENT, KC_HOME,
|
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_ENT, KC_HOME,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN1), MO(FN2), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
|
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN1), MO(FN2), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
[MAC_FN1] = LAYOUT(
|
[MAC_FN1] = LAYOUT_69_ansi(
|
||||||
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
||||||
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
[WIN_FN1] = LAYOUT(
|
[WIN_FN1] = LAYOUT_69_ansi(
|
||||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
||||||
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
[FN2] = LAYOUT(
|
[FN2] = LAYOUT_69_ansi(
|
||||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
#if defined(ENCODER_MAP_ENABLE)
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||||
[MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
[MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||||
[MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
|
||||||
[WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
[WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||||
|
[MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||||
[WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
[WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||||
[FN2] = {ENCODER_CCW_CW(_______, _______)},
|
[FN2] = {ENCODER_CCW_CW(_______, _______)},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
ENCODER_MAP_ENABLE = yes
|
ENCODER_MAP_ENABLE = yes
|
||||||
|
OPT_DEFS += -DDYNAMIC_KEYMAP_LAYER_COUNT=5
|
||||||
|
|
|
||||||
|
|
@ -22,39 +22,39 @@ enum layers{
|
||||||
WIN_BASE,
|
WIN_BASE,
|
||||||
MAC_FN1,
|
MAC_FN1,
|
||||||
WIN_FN1,
|
WIN_FN1,
|
||||||
FN2
|
FN2,
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[MAC_BASE] = LAYOUT(
|
[MAC_BASE] = LAYOUT_69_ansi(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
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_ENT, KC_HOME,
|
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_ENT, KC_HOME,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, MO(MAC_FN1), MO(FN2), KC_SPC, KC_RCMMD, KC_LEFT, KC_DOWN, KC_RGHT),
|
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, MO(MAC_FN1), MO(FN2), KC_SPC, KC_RCMMD, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
[WIN_BASE] = LAYOUT(
|
[WIN_BASE] = LAYOUT_69_ansi(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
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_ENT, KC_HOME,
|
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_ENT, KC_HOME,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN1), MO(FN2), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
|
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(WIN_FN1), MO(FN2), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
[MAC_FN1] = LAYOUT(
|
[MAC_FN1] = LAYOUT_69_ansi(
|
||||||
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
||||||
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
[WIN_FN1] = LAYOUT(
|
[WIN_FN1] = LAYOUT_69_ansi(
|
||||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG,
|
||||||
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
|
||||||
[FN2] = LAYOUT(
|
[FN2] = LAYOUT_69_ansi(
|
||||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
#if defined(ENCODER_MAP_ENABLE)
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||||
[MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
[MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||||
[MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
|
||||||
[WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
[WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||||
|
[MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||||
[WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
[WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||||
[FN2] = {ENCODER_CCW_CW(_______, _______)},
|
[FN2] = {ENCODER_CCW_CW(_______, _______)},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
VIA_ENABLE = yes
|
VIA_ENABLE = yes
|
||||||
ENCODER_MAP_ENABLE = yes
|
ENCODER_MAP_ENABLE = yes
|
||||||
|
|
||||||
OPT_DEFS += -DDYNAMIC_KEYMAP_LAYER_COUNT=5
|
OPT_DEFS += -DDYNAMIC_KEYMAP_LAYER_COUNT=5
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,10 @@
|
||||||
|
|
||||||
/* turn off effects when suspended */
|
/* turn off effects when suspended */
|
||||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
#define LED_DISABLE_WHEN_USB_SUSPENDED
|
|
||||||
|
|
||||||
/* DIP switch */
|
/* DIP switch */
|
||||||
#define DIP_SWITCH_PINS { A8 }
|
#define DIP_SWITCH_PINS \
|
||||||
|
{ A8 }
|
||||||
|
|
||||||
/* Increase I2C speed to 1000 KHz */
|
/* Increase I2C speed to 1000 KHz */
|
||||||
#define I2C1_TIMINGR_PRESC 0U
|
#define I2C1_TIMINGR_PRESC 0U
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
"maintainer": "lalalademaxiya1",
|
"maintainer": "lalalademaxiya1",
|
||||||
"processor": "STM32L432",
|
"processor": "STM32L432",
|
||||||
"bootloader": "stm32-dfu",
|
"bootloader": "stm32-dfu",
|
||||||
|
"usb": {
|
||||||
|
"vid": "0x3434"
|
||||||
|
},
|
||||||
"features": {
|
"features": {
|
||||||
"bootmagic": true,
|
"bootmagic": true,
|
||||||
"command": false,
|
"command": false,
|
||||||
|
|
@ -44,15 +47,11 @@
|
||||||
"solid_splash": true
|
"solid_splash": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bluetooth": {
|
|
||||||
"driver": "custom"
|
|
||||||
},
|
|
||||||
"usb": {
|
|
||||||
"vid": "0x3434"
|
|
||||||
},
|
|
||||||
"matrix_pins": {
|
"matrix_pins": {
|
||||||
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
|
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
|
||||||
"rows": ["B4", "B3", "A15", "A14", "A13"]
|
"rows": ["B4", "B3", "A15", "A14", "A13"],
|
||||||
|
"custom": true,
|
||||||
|
"custom_lite": true
|
||||||
},
|
},
|
||||||
"diode_direction": "ROW2COL",
|
"diode_direction": "ROW2COL",
|
||||||
"encoder": {
|
"encoder": {
|
||||||
|
|
|
||||||
|
|
@ -38,10 +38,9 @@ static inline void setPinOutput_writeLow(pin_t pin) {
|
||||||
writePinLow(pin);
|
writePinLow(pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void HC595_initPin(void) {
|
static inline void setPinOutput_writeHigh(pin_t pin) {
|
||||||
setPinOutput(HC595_DS);
|
setPinOutput(pin);
|
||||||
setPinOutput(HC595_STCP);
|
writePinHigh(pin);
|
||||||
setPinOutput(HC595_SHCP);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void HC595_delay(uint16_t n) {
|
static inline void HC595_delay(uint16_t n) {
|
||||||
|
|
@ -50,11 +49,12 @@ static inline void HC595_delay(uint16_t n) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HC595_output(uint16_t data, bool bit) {
|
static void HC595_output(uint16_t data) {
|
||||||
uint8_t n = 1;
|
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
|
uint8_t n = 1;
|
||||||
|
|
||||||
for (i = 1; i < 16; i++) {
|
for (i = 1; i < (MATRIX_COLS - DIRECT_COL_NUM); i++) {
|
||||||
|
writePinLow(HC595_SHCP);
|
||||||
if (data & 0x1) {
|
if (data & 0x1) {
|
||||||
writePinHigh(HC595_DS);
|
writePinHigh(HC595_DS);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -63,43 +63,86 @@ static void HC595_output(uint16_t data, bool bit) {
|
||||||
HC595_delay(n);
|
HC595_delay(n);
|
||||||
writePinHigh(HC595_SHCP);
|
writePinHigh(HC595_SHCP);
|
||||||
HC595_delay(n);
|
HC595_delay(n);
|
||||||
writePinLow(HC595_SHCP);
|
|
||||||
if (bit) {
|
data = data >> 1;
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
data >>= 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
writePinHigh(HC595_STCP);
|
|
||||||
HC595_delay(n);
|
|
||||||
writePinLow(HC595_STCP);
|
writePinLow(HC595_STCP);
|
||||||
|
HC595_delay(n);
|
||||||
|
writePinHigh(HC595_STCP);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void HC595_output_bit(uint8_t data) {
|
||||||
|
uint8_t n = 1;
|
||||||
|
|
||||||
|
writePinLow(HC595_SHCP);
|
||||||
|
if (data & 0x1) {
|
||||||
|
writePinHigh(HC595_DS);
|
||||||
|
} else {
|
||||||
|
writePinLow(HC595_DS);
|
||||||
|
}
|
||||||
|
HC595_delay(n);
|
||||||
|
|
||||||
|
writePinHigh(HC595_SHCP);
|
||||||
|
HC595_delay(n);
|
||||||
|
|
||||||
|
writePinLow(HC595_STCP);
|
||||||
|
HC595_delay(n);
|
||||||
|
writePinHigh(HC595_STCP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void select_col(uint8_t col) {
|
static void select_col(uint8_t col) {
|
||||||
if (col == DIRECT_COL_NUM) {
|
if (col < DIRECT_COL_NUM) {
|
||||||
HC595_output(0x0, 1);
|
setPinOutput_writeLow(col_pins[col]);
|
||||||
HC595_output(0x1, 1);
|
} else {
|
||||||
|
if (col == DIRECT_COL_NUM) {
|
||||||
|
HC595_output_bit(0x00);
|
||||||
|
HC595_output_bit(0x01);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unselect_col(void) {
|
static void unselect_col(uint8_t col) {
|
||||||
HC595_output(0x1, 1);
|
if (col < DIRECT_COL_NUM) {
|
||||||
|
#ifdef MATRIX_UNSELECT_DRIVE_HIGH
|
||||||
|
setPinOutput_writeHigh(col_pins[col]);
|
||||||
|
#else
|
||||||
|
setPinInputHigh(col_pins[col]);
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
HC595_output_bit(0x01);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unselect_cols(void) {
|
static void unselect_cols(void) {
|
||||||
HC595_output(0xFFFF, 0);
|
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
|
||||||
|
if (x < DIRECT_COL_NUM) {
|
||||||
|
#ifdef MATRIX_UNSELECT_DRIVE_HIGH
|
||||||
|
setPinOutput_writeHigh(col_pins[x]);
|
||||||
|
#else
|
||||||
|
setPinInputHigh(col_pins[x]);
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
if (x == DIRECT_COL_NUM) HC595_output(0xFFFF);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void select_all_cols(void) {
|
void select_all_cols(void) {
|
||||||
HC595_output(0x0, 0);
|
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
|
||||||
|
if (x < DIRECT_COL_NUM) {
|
||||||
|
setPinOutput_writeLow(col_pins[x]);
|
||||||
|
} else {
|
||||||
|
if (x == DIRECT_COL_NUM) HC595_output(0x0000);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col, matrix_row_t row_shifter) {
|
static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col, matrix_row_t row_shifter) {
|
||||||
bool key_pressed = false;
|
|
||||||
|
|
||||||
// Select col
|
// Select col
|
||||||
select_col(current_col);
|
select_col(current_col); // select col
|
||||||
matrix_output_select_delay();
|
HC595_delay(200);
|
||||||
|
|
||||||
// For each row...
|
// For each row...
|
||||||
for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
|
for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
|
||||||
|
|
@ -107,7 +150,6 @@ static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t curre
|
||||||
if (readMatrixPin(row_pins[row_index]) == 0) {
|
if (readMatrixPin(row_pins[row_index]) == 0) {
|
||||||
// Pin LO, set col bit
|
// Pin LO, set col bit
|
||||||
current_matrix[row_index] |= row_shifter;
|
current_matrix[row_index] |= row_shifter;
|
||||||
key_pressed = true;
|
|
||||||
} else {
|
} else {
|
||||||
// Pin HI, clear col bit
|
// Pin HI, clear col bit
|
||||||
current_matrix[row_index] &= ~row_shifter;
|
current_matrix[row_index] &= ~row_shifter;
|
||||||
|
|
@ -115,12 +157,14 @@ static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t curre
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unselect col
|
// Unselect col
|
||||||
unselect_col();
|
unselect_col(current_col);
|
||||||
matrix_output_unselect_delay(current_col, key_pressed); // wait for all Row signals to go HIGH
|
HC595_delay(200); // wait for all Row signals to go HIGH
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_custom(void) {
|
void matrix_init_custom(void) {
|
||||||
HC595_initPin();
|
setPinOutput(HC595_DS);
|
||||||
|
setPinOutput(HC595_STCP);
|
||||||
|
setPinOutput(HC595_SHCP);
|
||||||
|
|
||||||
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
||||||
if (row_pins[x] != NO_PIN) {
|
if (row_pins[x] != NO_PIN) {
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,9 @@ typedef struct PACKED {
|
||||||
uint8_t keycode[3];
|
uint8_t keycode[3];
|
||||||
} key_combination_t;
|
} key_combination_t;
|
||||||
|
|
||||||
static uint32_t siri_timer_buffer = 0;
|
static uint32_t factory_timer_buffer = 0;
|
||||||
static uint8_t mac_keycode[4] = {KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD};
|
static uint32_t siri_timer_buffer = 0;
|
||||||
|
static uint8_t mac_keycode[4] = {KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD};
|
||||||
|
|
||||||
key_combination_t key_comb_list[4] = {
|
key_combination_t key_comb_list[4] = {
|
||||||
{2, {KC_LWIN, KC_TAB}}, // Task (win)
|
{2, {KC_LWIN, KC_TAB}}, // Task (win)
|
||||||
|
|
@ -133,7 +134,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(ENCODER_ENABLE) && defined(PAL_USE_CALLBACKS)
|
#if defined(KC_BLUETOOTH_ENABLE) && defined(ENCODER_ENABLE)
|
||||||
static void encoder_pad_cb(void *param) {
|
static void encoder_pad_cb(void *param) {
|
||||||
encoder_inerrupt_read((uint32_t)param & 0XFF);
|
encoder_inerrupt_read((uint32_t)param & 0XFF);
|
||||||
}
|
}
|
||||||
|
|
@ -144,7 +145,9 @@ void keyboard_post_init_kb(void) {
|
||||||
|
|
||||||
#ifdef KC_BLUETOOTH_ENABLE
|
#ifdef KC_BLUETOOTH_ENABLE
|
||||||
/* Currently we don't use this reset pin */
|
/* Currently we don't use this reset pin */
|
||||||
palSetLineMode(CKBT51_RESET_PIN, PAL_MODE_UNCONNECTED);
|
// palSetLineMode(CKBT51_RESET_PIN, PAL_MODE_UNCONNECTED);
|
||||||
|
palSetLineMode(CKBT51_RESET_PIN, PAL_MODE_OUTPUT_PUSHPULL);
|
||||||
|
palWriteLine(CKBT51_RESET_PIN, PAL_HIGH);
|
||||||
|
|
||||||
/* IMPORTANT: DO NOT enable internal pull-up resistor
|
/* IMPORTANT: DO NOT enable internal pull-up resistor
|
||||||
* as there is an external pull-down resistor.
|
* as there is an external pull-down resistor.
|
||||||
|
|
@ -153,9 +156,8 @@ void keyboard_post_init_kb(void) {
|
||||||
|
|
||||||
ckbt51_init(false);
|
ckbt51_init(false);
|
||||||
bluetooth_init();
|
bluetooth_init();
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(ENCODER_ENABLE) && defined(PAL_USE_CALLBACKS)
|
# ifdef ENCODER_ENABLE
|
||||||
pin_t encoders_pad_a[NUM_ENCODERS] = ENCODERS_PAD_A;
|
pin_t encoders_pad_a[NUM_ENCODERS] = ENCODERS_PAD_A;
|
||||||
pin_t encoders_pad_b[NUM_ENCODERS] = ENCODERS_PAD_B;
|
pin_t encoders_pad_b[NUM_ENCODERS] = ENCODERS_PAD_B;
|
||||||
for (uint32_t i = 0; i < NUM_ENCODERS; i++) {
|
for (uint32_t i = 0; i < NUM_ENCODERS; i++) {
|
||||||
|
|
@ -164,12 +166,23 @@ void keyboard_post_init_kb(void) {
|
||||||
palSetLineCallback(encoders_pad_a[i], encoder_pad_cb, (void *)i);
|
palSetLineCallback(encoders_pad_a[i], encoder_pad_cb, (void *)i);
|
||||||
palSetLineCallback(encoders_pad_b[i], encoder_pad_cb, (void *)i);
|
palSetLineCallback(encoders_pad_b[i], encoder_pad_cb, (void *)i);
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
keyboard_post_init_user();
|
keyboard_post_init_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_scan_kb(void) {
|
void matrix_scan_kb(void) {
|
||||||
|
if (factory_timer_buffer && timer_elapsed32(factory_timer_buffer) > 2000) {
|
||||||
|
factory_timer_buffer = 0;
|
||||||
|
if (bt_factory_reset) {
|
||||||
|
bt_factory_reset = false;
|
||||||
|
palWriteLine(CKBT51_RESET_PIN, PAL_LOW);
|
||||||
|
wait_ms(5);
|
||||||
|
palWriteLine(CKBT51_RESET_PIN, PAL_HIGH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (siri_timer_buffer && sync_timer_elapsed32(siri_timer_buffer) > 500) {
|
if (siri_timer_buffer && sync_timer_elapsed32(siri_timer_buffer) > 500) {
|
||||||
siri_timer_buffer = 0;
|
siri_timer_buffer = 0;
|
||||||
unregister_code(KC_LGUI);
|
unregister_code(KC_LGUI);
|
||||||
|
|
@ -187,6 +200,7 @@ static void ckbt51_param_init(void) {
|
||||||
/* Set bluetooth device name */
|
/* Set bluetooth device name */
|
||||||
// ckbt51_set_local_name(STR(PRODUCT));
|
// ckbt51_set_local_name(STR(PRODUCT));
|
||||||
ckbt51_set_local_name(PRODUCT);
|
ckbt51_set_local_name(PRODUCT);
|
||||||
|
wait_ms(10);
|
||||||
/* Set bluetooth parameters */
|
/* Set bluetooth parameters */
|
||||||
module_param_t param = {.event_mode = 0x02,
|
module_param_t param = {.event_mode = 0x02,
|
||||||
.connected_idle_timeout = 7200,
|
.connected_idle_timeout = 7200,
|
||||||
|
|
@ -198,12 +212,13 @@ static void ckbt51_param_init(void) {
|
||||||
.verndor_id = 0, // Must be 0x3434
|
.verndor_id = 0, // Must be 0x3434
|
||||||
.product_id = PRODUCT_ID};
|
.product_id = PRODUCT_ID};
|
||||||
ckbt51_set_param(¶m);
|
ckbt51_set_param(¶m);
|
||||||
|
wait_ms(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
void bluetooth_enter_disconnected_kb(uint8_t host_idx) {
|
void bluetooth_enter_disconnected_kb(uint8_t host_idx) {
|
||||||
if (bt_factory_reset) {
|
if (bt_factory_reset) {
|
||||||
bt_factory_reset = false;
|
|
||||||
ckbt51_param_init();
|
ckbt51_param_init();
|
||||||
|
factory_timer_buffer = timer_read32();
|
||||||
}
|
}
|
||||||
/* CKBT51 bluetooth module boot time is slower, it enters disconnected after boot,
|
/* CKBT51 bluetooth module boot time is slower, it enters disconnected after boot,
|
||||||
so we place initialization here. */
|
so we place initialization here. */
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue