Merge pull request #143 from lalalademaxiya1/keychron_k1_pro

Add k1 pro
This commit is contained in:
lokher 2023-07-10 15:54:36 +08:00 committed by GitHub
commit 0591e226dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 1813 additions and 238 deletions

View File

@ -21,6 +21,8 @@
# define DRIVER_COUNT 2
# define DRIVER_ADDR_1 0b1110111
# define DRIVER_ADDR_2 0b1110100
/* RGB Matrix Configuration */
# define DRIVER_1_LED_TOTAL 47
# define DRIVER_2_LED_TOTAL 40
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@ -39,7 +41,6 @@
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
# define RGB_MATRIX_KEYPRESSES
# define RGB_MATRIX_FRAMEBUFFER_EFFECT

View File

@ -30,6 +30,100 @@
"solid_reactive_multinexus": true,
"splash": true,
"solid_splash": true
}
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
{"matrix":[0, 1], "flags":1, "x":26, "y":0},
{"matrix":[0, 2], "flags":1, "x":39, "y":0},
{"matrix":[0, 3], "flags":1, "x":52, "y":0},
{"matrix":[0, 4], "flags":1, "x":65, "y":0},
{"matrix":[0, 5], "flags":1, "x":85, "y":0},
{"matrix":[0, 6], "flags":1, "x":98, "y":0},
{"matrix":[0, 7], "flags":1, "x":111, "y":0},
{"matrix":[0, 8], "flags":1, "x":124, "y":0},
{"matrix":[0, 9], "flags":1, "x":144, "y":0},
{"matrix":[0, 10], "flags":1, "x":157, "y":0},
{"matrix":[0, 11], "flags":1, "x":170, "y":0},
{"matrix":[0, 12], "flags":1, "x":183, "y":0},
{"matrix":[0, 14], "flags":1, "x":197, "y":0},
{"matrix":[0, 15], "flags":1, "x":210, "y":0},
{"matrix":[0, 16], "flags":1, "x":224, "y":0},
{"matrix":[1, 0], "flags":1, "x":0, "y":13},
{"matrix":[1, 1], "flags":8, "x":13, "y":13},
{"matrix":[1, 2], "flags":8, "x":26, "y":13},
{"matrix":[1, 3], "flags":8, "x":39, "y":13},
{"matrix":[1, 4], "flags":4, "x":52, "y":13},
{"matrix":[1, 5], "flags":4, "x":65, "y":13},
{"matrix":[1, 6], "flags":4, "x":78, "y":13},
{"matrix":[1, 7], "flags":4, "x":91, "y":13},
{"matrix":[1, 8], "flags":4, "x":104, "y":13},
{"matrix":[1, 9], "flags":4, "x":117, "y":13},
{"matrix":[1, 10], "flags":4, "x":130, "y":13},
{"matrix":[1, 11], "flags":4, "x":144, "y":13},
{"matrix":[1, 12], "flags":4, "x":157, "y":13},
{"matrix":[1, 13], "flags":1, "x":176, "y":13},
{"matrix":[1, 14], "flags":1, "x":197, "y":13},
{"matrix":[1, 15], "flags":1, "x":210, "y":13},
{"matrix":[1, 16], "flags":1, "x":224, "y":13},
{"matrix":[2, 0], "flags":1, "x":3, "y":26},
{"matrix":[2, 1], "flags":4, "x":19, "y":26},
{"matrix":[2, 2], "flags":4, "x":32, "y":26},
{"matrix":[2, 3], "flags":4, "x":45, "y":26},
{"matrix":[2, 4], "flags":4, "x":58, "y":26},
{"matrix":[2, 5], "flags":4, "x":72, "y":26},
{"matrix":[2, 6], "flags":4, "x":85, "y":26},
{"matrix":[2, 7], "flags":4, "x":98, "y":26},
{"matrix":[2, 8], "flags":4, "x":111, "y":26},
{"matrix":[2, 9], "flags":4, "x":124, "y":26},
{"matrix":[2, 10], "flags":4, "x":137, "y":26},
{"matrix":[2, 11], "flags":4, "x":150, "y":26},
{"matrix":[2, 12], "flags":4, "x":163, "y":26},
{"matrix":[2, 13], "flags":1, "x":180, "y":33},
{"matrix":[2, 14], "flags":1, "x":197, "y":26},
{"matrix":[2, 15], "flags":1, "x":210, "y":26},
{"matrix":[2, 16], "flags":1, "x":224, "y":26},
{"matrix":[3, 0], "flags":8, "x":4, "y":38},
{"matrix":[3, 1], "flags":4, "x":22, "y":38},
{"matrix":[3, 2], "flags":4, "x":36, "y":38},
{"matrix":[3, 3], "flags":4, "x":49, "y":38},
{"matrix":[3, 4], "flags":4, "x":62, "y":38},
{"matrix":[3, 5], "flags":4, "x":75, "y":38},
{"matrix":[3, 6], "flags":4, "x":88, "y":38},
{"matrix":[3, 7], "flags":4, "x":101, "y":38},
{"matrix":[3, 8], "flags":4, "x":114, "y":38},
{"matrix":[3, 9], "flags":4, "x":127, "y":38},
{"matrix":[3, 10], "flags":4, "x":140, "y":38},
{"matrix":[3, 11], "flags":4, "x":153, "y":38},
{"matrix":[3, 13], "flags":1, "x":175, "y":38},
{"matrix":[4, 0], "flags":1, "x":8, "y":51},
{"matrix":[4, 2], "flags":4, "x":29, "y":51},
{"matrix":[4, 3], "flags":4, "x":42, "y":51},
{"matrix":[4, 4], "flags":4, "x":55, "y":51},
{"matrix":[4, 5], "flags":4, "x":68, "y":51},
{"matrix":[4, 6], "flags":4, "x":81, "y":51},
{"matrix":[4, 7], "flags":4, "x":94, "y":51},
{"matrix":[4, 8], "flags":4, "x":108, "y":51},
{"matrix":[4, 9], "flags":4, "x":121, "y":51},
{"matrix":[4, 10], "flags":4, "x":134, "y":51},
{"matrix":[4, 11], "flags":4, "x":147, "y":51},
{"matrix":[4, 13], "flags":1, "x":171, "y":51},
{"matrix":[4, 15], "flags":1, "x":210, "y":51},
{"matrix":[5, 0], "flags":1, "x":1, "y":64},
{"matrix":[5, 1], "flags":1, "x":18, "y":64},
{"matrix":[5, 2], "flags":1, "x":34, "y":64},
{"matrix":[5, 6], "flags":4, "x":83, "y":64},
{"matrix":[5, 10], "flags":1, "x":132, "y":64},
{"matrix":[5, 11], "flags":1, "x":148, "y":64},
{"matrix":[5, 12], "flags":1, "x":165, "y":64},
{"matrix":[5, 13], "flags":1, "x":181, "y":64},
{"matrix":[5, 14], "flags":1, "x":197, "y":64},
{"matrix":[5, 15], "flags":1, "x":210, "y":64},
{"matrix":[5, 16], "flags":1, "x":224, "y":64}
]
}
}

View File

@ -16,14 +16,14 @@
#include QMK_KEYBOARD_H
// clang-format off
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_ansi(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,

View File

@ -16,14 +16,14 @@
#include QMK_KEYBOARD_H
// clang-format off
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_ansi(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,

View File

@ -118,37 +118,4 @@ const ckled2001_led g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16},
{1, C_15, A_15, B_15}
};
#define __ NO_LED
led_config_t g_led_config = {
{
// Key Matrix to LED Index
{ 0, 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 }
},
{
// LED Index to Physical Position
{0, 0}, {26, 0}, {39, 0}, {52, 0}, {65, 0}, {85, 0}, {98, 0}, {111, 0}, {124, 0}, {144, 0}, {157, 0}, {170, 0}, {183, 0}, {197, 0}, {210, 0}, {224, 0},
{0,13}, {13,13}, {26,13}, {39,13}, {52,13}, {65,13}, {78,13}, { 91, 13}, {104, 13}, {117, 13}, {130, 13}, {144, 13}, {157, 13}, {176, 13}, {197, 13}, {210, 13}, {224, 13},
{3,26}, {19,26}, {32,26}, {45,26}, {58,26}, {72,26}, {85,26}, { 98, 26}, {111, 26}, {124, 26}, {137, 26}, {150, 26}, {163, 26}, {180, 26}, {197, 26}, {210, 26}, {224, 26},
{4,38}, {22,38}, {36,38}, {49,38}, {62,38}, {75,38}, {88,38}, {101, 38}, {114, 38}, {127, 38}, {140, 38}, {153, 38}, {175, 38},
{8,51}, {29,51}, {42,51}, {55,51}, {68,51}, {81,51}, { 94, 51}, {108, 51}, {121, 51}, {134, 51}, {147, 51}, {171, 51}, {210, 51},
{1,64}, {18,64}, {34,64}, {83,64}, {132, 64}, {148, 64}, {165, 64}, {181, 64}, {197, 64}, {210, 64}, {224, 64}
},
{
// RGB LED Index to Flag
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
}
};
#endif

View File

@ -20,8 +20,9 @@
/* LED Matrix Driver Configuration */
# define DRIVER_COUNT 1
# define DRIVER_ADDR_1 0b1110100
# define DRIVER_1_LED_TOTAL 87
# define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
/* LED Matrix Configuration */
# define LED_MATRIX_LED_COUNT 87
/* Set to infinit, which is use in USB mode by default */
# define LED_MATRIX_TIMEOUT LED_MATRIX_TIMEOUT_INFINITE
@ -37,7 +38,6 @@
// LED Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects
# define LED_MATRIX_KEYPRESSES
/* Use first 6 channels of LED driver */

View File

@ -25,6 +25,100 @@
"wave_left_right": true,
"wave_up_down": true,
"effect_max": true
}
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
{"matrix":[0, 1], "flags":1, "x":26, "y":0},
{"matrix":[0, 2], "flags":1, "x":39, "y":0},
{"matrix":[0, 3], "flags":1, "x":52, "y":0},
{"matrix":[0, 4], "flags":1, "x":65, "y":0},
{"matrix":[0, 5], "flags":1, "x":85, "y":0},
{"matrix":[0, 6], "flags":1, "x":98, "y":0},
{"matrix":[0, 7], "flags":1, "x":111, "y":0},
{"matrix":[0, 8], "flags":1, "x":124, "y":0},
{"matrix":[0, 9], "flags":1, "x":144, "y":0},
{"matrix":[0, 10], "flags":1, "x":157, "y":0},
{"matrix":[0, 11], "flags":1, "x":170, "y":0},
{"matrix":[0, 12], "flags":1, "x":183, "y":0},
{"matrix":[0, 14], "flags":1, "x":197, "y":0},
{"matrix":[0, 15], "flags":1, "x":210, "y":0},
{"matrix":[0, 16], "flags":1, "x":224, "y":0},
{"matrix":[1, 0], "flags":1, "x":0, "y":13},
{"matrix":[1, 1], "flags":8, "x":13, "y":13},
{"matrix":[1, 2], "flags":8, "x":26, "y":13},
{"matrix":[1, 3], "flags":8, "x":39, "y":13},
{"matrix":[1, 4], "flags":4, "x":52, "y":13},
{"matrix":[1, 5], "flags":4, "x":65, "y":13},
{"matrix":[1, 6], "flags":4, "x":78, "y":13},
{"matrix":[1, 7], "flags":4, "x":91, "y":13},
{"matrix":[1, 8], "flags":4, "x":104, "y":13},
{"matrix":[1, 9], "flags":4, "x":117, "y":13},
{"matrix":[1, 10], "flags":4, "x":130, "y":13},
{"matrix":[1, 11], "flags":4, "x":144, "y":13},
{"matrix":[1, 12], "flags":4, "x":157, "y":13},
{"matrix":[1, 13], "flags":1, "x":176, "y":13},
{"matrix":[1, 14], "flags":1, "x":197, "y":13},
{"matrix":[1, 15], "flags":1, "x":210, "y":13},
{"matrix":[1, 16], "flags":1, "x":224, "y":13},
{"matrix":[2, 0], "flags":1, "x":3, "y":26},
{"matrix":[2, 1], "flags":4, "x":19, "y":26},
{"matrix":[2, 2], "flags":4, "x":32, "y":26},
{"matrix":[2, 3], "flags":4, "x":45, "y":26},
{"matrix":[2, 4], "flags":4, "x":58, "y":26},
{"matrix":[2, 5], "flags":4, "x":72, "y":26},
{"matrix":[2, 6], "flags":4, "x":85, "y":26},
{"matrix":[2, 7], "flags":4, "x":98, "y":26},
{"matrix":[2, 8], "flags":4, "x":111, "y":26},
{"matrix":[2, 9], "flags":4, "x":124, "y":26},
{"matrix":[2, 10], "flags":4, "x":137, "y":26},
{"matrix":[2, 11], "flags":4, "x":150, "y":26},
{"matrix":[2, 12], "flags":4, "x":163, "y":26},
{"matrix":[2, 13], "flags":1, "x":180, "y":33},
{"matrix":[2, 14], "flags":1, "x":197, "y":26},
{"matrix":[2, 15], "flags":1, "x":210, "y":26},
{"matrix":[2, 16], "flags":1, "x":224, "y":26},
{"matrix":[3, 0], "flags":8, "x":4, "y":38},
{"matrix":[3, 1], "flags":4, "x":22, "y":38},
{"matrix":[3, 2], "flags":4, "x":36, "y":38},
{"matrix":[3, 3], "flags":4, "x":49, "y":38},
{"matrix":[3, 4], "flags":4, "x":62, "y":38},
{"matrix":[3, 5], "flags":4, "x":75, "y":38},
{"matrix":[3, 6], "flags":4, "x":88, "y":38},
{"matrix":[3, 7], "flags":4, "x":101, "y":38},
{"matrix":[3, 8], "flags":4, "x":114, "y":38},
{"matrix":[3, 9], "flags":4, "x":127, "y":38},
{"matrix":[3, 10], "flags":4, "x":140, "y":38},
{"matrix":[3, 11], "flags":4, "x":153, "y":38},
{"matrix":[3, 13], "flags":1, "x":175, "y":38},
{"matrix":[4, 0], "flags":1, "x":8, "y":51},
{"matrix":[4, 2], "flags":4, "x":29, "y":51},
{"matrix":[4, 3], "flags":4, "x":42, "y":51},
{"matrix":[4, 4], "flags":4, "x":55, "y":51},
{"matrix":[4, 5], "flags":4, "x":68, "y":51},
{"matrix":[4, 6], "flags":4, "x":81, "y":51},
{"matrix":[4, 7], "flags":4, "x":94, "y":51},
{"matrix":[4, 8], "flags":4, "x":108, "y":51},
{"matrix":[4, 9], "flags":4, "x":121, "y":51},
{"matrix":[4, 10], "flags":4, "x":134, "y":51},
{"matrix":[4, 11], "flags":4, "x":147, "y":51},
{"matrix":[4, 13], "flags":1, "x":171, "y":51},
{"matrix":[4, 15], "flags":1, "x":210, "y":51},
{"matrix":[5, 0], "flags":1, "x":1, "y":64},
{"matrix":[5, 1], "flags":1, "x":18, "y":64},
{"matrix":[5, 2], "flags":1, "x":34, "y":64},
{"matrix":[5, 6], "flags":4, "x":83, "y":64},
{"matrix":[5, 10], "flags":1, "x":132, "y":64},
{"matrix":[5, 11], "flags":1, "x":148, "y":64},
{"matrix":[5, 12], "flags":1, "x":165, "y":64},
{"matrix":[5, 13], "flags":1, "x":181, "y":64},
{"matrix":[5, 14], "flags":1, "x":197, "y":64},
{"matrix":[5, 15], "flags":1, "x":210, "y":64},
{"matrix":[5, 16], "flags":1, "x":224, "y":64}
]
}
}

View File

@ -16,44 +16,44 @@
#include QMK_KEYBOARD_H
// clang-format off
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_ansi(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_BASE] = LAYOUT_tkl_ansi(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_ansi(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[MAC_FN] = LAYOUT_tkl_ansi(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_ansi(
KC_ESC, 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_PSCR, KC_CTANA, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_BASE] = LAYOUT_tkl_ansi(
KC_ESC, 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_PSCR, KC_CTANA, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_ansi(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
[WIN_FN] = LAYOUT_tkl_ansi(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -16,44 +16,44 @@
#include QMK_KEYBOARD_H
// clang-format off
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_ansi(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_BASE] = LAYOUT_tkl_ansi(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_ansi(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[MAC_FN] = LAYOUT_tkl_ansi(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_ansi(
KC_ESC, 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_PSCR, KC_CTANA, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_BASE] = LAYOUT_tkl_ansi(
KC_ESC, 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_PSCR, KC_CTANA, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_END, KC_PGDN,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_ansi(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
[WIN_FN] = LAYOUT_tkl_ansi(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -116,37 +116,4 @@ const ckled2001_led g_ckled2001_leds[LED_MATRIX_LED_COUNT] = {
{0, A_16},
{0, B_15}
};
#define __ NO_LED
led_config_t g_led_config = {
{
// Key Matrix to LED Index
{ 0, 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 }
},
{
// LED Index to Physical Position
{0, 0}, {26, 0}, {39, 0}, {52, 0}, {65, 0}, {85, 0}, {98, 0}, {111, 0}, {124, 0}, {144, 0}, {157, 0}, {170, 0}, {183, 0}, {197, 0}, {210, 0}, {224, 0},
{0,13}, {13,13}, {26,13}, {39,13}, {52,13}, {65,13}, {78,13}, { 91, 13}, {104, 13}, {117, 13}, {130, 13}, {144, 13}, {157, 13}, {176, 13}, {197, 13}, {210, 13}, {224, 13},
{3,26}, {19,26}, {32,26}, {45,26}, {58,26}, {72,26}, {85,26}, { 98, 26}, {111, 26}, {124, 26}, {137, 26}, {150, 26}, {163, 26}, {180, 26}, {197, 26}, {210, 26}, {224, 26},
{4,38}, {22,38}, {36,38}, {49,38}, {62,38}, {75,38}, {88,38}, {101, 38}, {114, 38}, {127, 38}, {140, 38}, {153, 38}, {175, 38},
{8,51}, {29,51}, {42,51}, {55,51}, {68,51}, {81,51}, { 94, 51}, {108, 51}, {121, 51}, {134, 51}, {147, 51}, {171, 51}, {210, 51},
{1,64}, {18,64}, {34,64}, {83,64}, {132, 64}, {148, 64}, {165, 64}, {181, 64}, {197, 64}, {210, 64}, {224, 64}
},
{
// RGB LED Index to Flag
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4,
1, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
}
};
#endif

View File

@ -92,5 +92,3 @@
/* Factory test keys */
#define FN_KEY1 MO(1)
#define FN_KEY2 MO(3)
#define INVERT_OS_SWITCH_STATTE

View File

@ -111,6 +111,103 @@
{"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75},
{"matrix":[4,15], "x":16.25, "y":4.25},
{"matrix":[5,0], "x":0, "y":5.25, "w":1.25},
{"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25},
{"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25},
{"matrix":[5,6], "x":3.75, "y":5.25, "w":6.25},
{"matrix":[5,10], "x":10, "y":5.25, "w":1.25},
{"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25},
{"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25},
{"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25},
{"matrix":[5,14], "x":15.25, "y":5.25},
{"matrix":[5,15], "x":16.25, "y":5.25},
{"matrix":[5,16], "x":17.25, "y":5.25}
]
},
"LAYOUT_tkl_iso": {
"layout": [
{"matrix":[0,0], "x":0, "y":0},
{"matrix":[0,1], "x":2, "y":0},
{"matrix":[0,2], "x":3, "y":0},
{"matrix":[0,3], "x":4, "y":0},
{"matrix":[0,4], "x":5, "y":0},
{"matrix":[0,5], "x":6.5, "y":0},
{"matrix":[0,6], "x":7.5, "y":0},
{"matrix":[0,7], "x":8.5, "y":0},
{"matrix":[0,8], "x":9.5, "y":0},
{"matrix":[0,9], "x":11, "y":0},
{"matrix":[0,10], "x":12, "y":0},
{"matrix":[0,11], "x":13, "y":0},
{"matrix":[0,12], "x":14, "y":0},
{"matrix":[0,14], "x":15.25, "y":0},
{"matrix":[0,15], "x":16.25, "y":0},
{"matrix":[0,16], "x":17.25, "y":0},
{"matrix":[1,0], "x":0, "y":1.25},
{"matrix":[1,1], "x":1, "y":1.25},
{"matrix":[1,2], "x":2, "y":1.25},
{"matrix":[1,3], "x":3, "y":1.25},
{"matrix":[1,4], "x":4, "y":1.25},
{"matrix":[1,5], "x":5, "y":1.25},
{"matrix":[1,6], "x":6, "y":1.25},
{"matrix":[1,7], "x":7, "y":1.25},
{"matrix":[1,8], "x":8, "y":1.25},
{"matrix":[1,9], "x":9, "y":1.25},
{"matrix":[1,10], "x":10, "y":1.25},
{"matrix":[1,11], "x":11, "y":1.25},
{"matrix":[1,12], "x":12, "y":1.25},
{"matrix":[1,13], "x":13, "y":1.25, "w":2},
{"matrix":[1,14], "x":15.25, "y":1.25},
{"matrix":[1,15], "x":16.25, "y":1.25},
{"matrix":[1,16], "x":17.25, "y":1.25},
{"matrix":[2,0], "x":0, "y":2.25, "w":1.5},
{"matrix":[2,1], "x":1.5, "y":2.25},
{"matrix":[2,2], "x":2.5, "y":2.25},
{"matrix":[2,3], "x":3.5, "y":2.25},
{"matrix":[2,4], "x":4.5, "y":2.25},
{"matrix":[2,5], "x":5.5, "y":2.25},
{"matrix":[2,6], "x":6.5, "y":2.25},
{"matrix":[2,7], "x":7.5, "y":2.25},
{"matrix":[2,8], "x":8.5, "y":2.25},
{"matrix":[2,9], "x":9.5, "y":2.25},
{"matrix":[2,10], "x":10.5, "y":2.25},
{"matrix":[2,11], "x":11.5, "y":2.25},
{"matrix":[2,12], "x":12.5, "y":2.25},
{"matrix":[2,14], "x":15.25, "y":2.25},
{"matrix":[2,15], "x":16.25, "y":2.25},
{"matrix":[2,16], "x":17.25, "y":2.25},
{"matrix":[3,0], "x":0, "y":3.25, "w":1.75},
{"matrix":[3,1], "x":1.75, "y":3.25},
{"matrix":[3,2], "x":2.75, "y":3.25},
{"matrix":[3,3], "x":3.75, "y":3.25},
{"matrix":[3,4], "x":4.75, "y":3.25},
{"matrix":[3,5], "x":5.75, "y":3.25},
{"matrix":[3,6], "x":6.75, "y":3.25},
{"matrix":[3,7], "x":7.75, "y":3.25},
{"matrix":[3,8], "x":8.75, "y":3.25},
{"matrix":[3,9], "x":9.75, "y":3.25},
{"matrix":[3,10], "x":10.75, "y":3.25},
{"matrix":[3,11], "x":11.75, "y":3.25},
{"matrix":[3,13], "x":12.75, "y":3.25},
{"matrix":[2,13], "x":13.75, "y":2.25, "w":1.25, "h":2},
{"matrix":[4,0], "x":0, "y":4.25, "w":1.25},
{"matrix":[4,1], "x":1.25, "y":4.25},
{"matrix":[4,2], "x":2.25, "y":4.25},
{"matrix":[4,3], "x":3.25, "y":4.25},
{"matrix":[4,4], "x":4.25, "y":4.25},
{"matrix":[4,5], "x":5.25, "y":4.25},
{"matrix":[4,6], "x":6.25, "y":4.25},
{"matrix":[4,7], "x":7.25, "y":4.25},
{"matrix":[4,8], "x":8.25, "y":4.25},
{"matrix":[4,9], "x":9.25, "y":4.25},
{"matrix":[4,10], "x":10.25, "y":4.25},
{"matrix":[4,11], "x":11.25, "y":4.25},
{"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75},
{"matrix":[4,15], "x":16.25, "y":4.25},
{"matrix":[5,0], "x":0, "y":5.25, "w":1.25},
{"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25},
{"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25},

View File

@ -0,0 +1,51 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef RGB_MATRIX_ENABLE
/* RGB Matrix Driver Configuration */
# define DRIVER_COUNT 2
# define DRIVER_ADDR_1 0b1110111
# define DRIVER_ADDR_2 0b1110100
/* RGB Matrix Configuration */
# define DRIVER_1_LED_TOTAL 47
# define DRIVER_2_LED_TOTAL 41
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
/* Set to infinit, which is use in USB mode by default */
# define RGB_MATRIX_TIMEOUT RGB_MATRIX_TIMEOUT_INFINITE
/* Allow to shutdown driver to save power */
# define RGB_MATRIX_DRIVER_SHUTDOWN_ENABLE
/* Turn off backllit if brightness value is low */
# define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 48
/* Indication led */
# define LOW_BAT_IND_INDEX 80
# define RGB_MATRIX_KEYPRESSES
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
/* Use first 9 channels of LED driver */
# define PHASE_CHANNEL MSKPHASE_9CHANNEL
/* Set LED driver current */
# define CKLED2001_CURRENT_TUNE \
{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }
#endif

View File

@ -0,0 +1,130 @@
{
"usb": {
"pid": "0x0211",
"device_version": "1.0.1"
},
"features": {
"rgb_matrix": true
},
"rgb_matrix": {
"driver": "CKLED2001",
"animations": {
"breathing": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"rainbow_moving_chevron": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"jellybean_raindrops": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive_multiwide": true,
"solid_reactive_multinexus": true,
"splash": true,
"solid_splash": true
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
{"matrix":[0, 1], "flags":1, "x":26, "y":0},
{"matrix":[0, 2], "flags":1, "x":39, "y":0},
{"matrix":[0, 3], "flags":1, "x":52, "y":0},
{"matrix":[0, 4], "flags":1, "x":65, "y":0},
{"matrix":[0, 5], "flags":1, "x":85, "y":0},
{"matrix":[0, 6], "flags":1, "x":98, "y":0},
{"matrix":[0, 7], "flags":1, "x":111, "y":0},
{"matrix":[0, 8], "flags":1, "x":124, "y":0},
{"matrix":[0, 9], "flags":1, "x":144, "y":0},
{"matrix":[0, 10], "flags":1, "x":157, "y":0},
{"matrix":[0, 11], "flags":1, "x":170, "y":0},
{"matrix":[0, 12], "flags":1, "x":183, "y":0},
{"matrix":[0, 14], "flags":1, "x":197, "y":0},
{"matrix":[0, 15], "flags":1, "x":210, "y":0},
{"matrix":[0, 16], "flags":1, "x":224, "y":0},
{"matrix":[1, 0], "flags":1, "x":0, "y":13},
{"matrix":[1, 1], "flags":8, "x":13, "y":13},
{"matrix":[1, 2], "flags":8, "x":26, "y":13},
{"matrix":[1, 3], "flags":8, "x":39, "y":13},
{"matrix":[1, 4], "flags":4, "x":52, "y":13},
{"matrix":[1, 5], "flags":4, "x":65, "y":13},
{"matrix":[1, 6], "flags":4, "x":78, "y":13},
{"matrix":[1, 7], "flags":4, "x":91, "y":13},
{"matrix":[1, 8], "flags":4, "x":104, "y":13},
{"matrix":[1, 9], "flags":4, "x":117, "y":13},
{"matrix":[1, 10], "flags":4, "x":130, "y":13},
{"matrix":[1, 11], "flags":4, "x":144, "y":13},
{"matrix":[1, 12], "flags":4, "x":157, "y":13},
{"matrix":[1, 13], "flags":1, "x":176, "y":13},
{"matrix":[1, 14], "flags":1, "x":197, "y":13},
{"matrix":[1, 15], "flags":1, "x":210, "y":13},
{"matrix":[1, 16], "flags":1, "x":224, "y":13},
{"matrix":[2, 0], "flags":1, "x":3, "y":26},
{"matrix":[2, 1], "flags":4, "x":19, "y":26},
{"matrix":[2, 2], "flags":4, "x":32, "y":26},
{"matrix":[2, 3], "flags":4, "x":45, "y":26},
{"matrix":[2, 4], "flags":4, "x":58, "y":26},
{"matrix":[2, 5], "flags":4, "x":72, "y":26},
{"matrix":[2, 6], "flags":4, "x":85, "y":26},
{"matrix":[2, 7], "flags":4, "x":98, "y":26},
{"matrix":[2, 8], "flags":4, "x":111, "y":26},
{"matrix":[2, 9], "flags":4, "x":124, "y":26},
{"matrix":[2, 10], "flags":4, "x":137, "y":26},
{"matrix":[2, 11], "flags":4, "x":150, "y":26},
{"matrix":[2, 12], "flags":1, "x":163, "y":26},
{"matrix":[2, 14], "flags":1, "x":197, "y":26},
{"matrix":[2, 15], "flags":1, "x":210, "y":26},
{"matrix":[2, 16], "flags":1, "x":224, "y":26},
{"matrix":[3, 0], "flags":8, "x":4, "y":38},
{"matrix":[3, 1], "flags":4, "x":22, "y":38},
{"matrix":[3, 2], "flags":4, "x":36, "y":38},
{"matrix":[3, 3], "flags":4, "x":49, "y":38},
{"matrix":[3, 4], "flags":4, "x":62, "y":38},
{"matrix":[3, 5], "flags":4, "x":75, "y":38},
{"matrix":[3, 6], "flags":4, "x":88, "y":38},
{"matrix":[3, 7], "flags":4, "x":101, "y":38},
{"matrix":[3, 8], "flags":4, "x":114, "y":38},
{"matrix":[3, 9], "flags":4, "x":127, "y":38},
{"matrix":[3, 10], "flags":4, "x":140, "y":38},
{"matrix":[3, 11], "flags":4, "x":153, "y":38},
{"matrix":[3, 13], "flags":1, "x":167, "y":38},
{"matrix":[2, 13], "flags":1, "x":182, "y":33},
{"matrix":[4, 0], "flags":1, "x":8, "y":51},
{"matrix":[4, 1], "flags":1, "x":16, "y":51},
{"matrix":[4, 2], "flags":4, "x":29, "y":51},
{"matrix":[4, 3], "flags":4, "x":42, "y":51},
{"matrix":[4, 4], "flags":4, "x":55, "y":51},
{"matrix":[4, 5], "flags":4, "x":68, "y":51},
{"matrix":[4, 6], "flags":4, "x":81, "y":51},
{"matrix":[4, 7], "flags":4, "x":94, "y":51},
{"matrix":[4, 8], "flags":4, "x":108, "y":51},
{"matrix":[4, 9], "flags":4, "x":121, "y":51},
{"matrix":[4, 10], "flags":4, "x":134, "y":51},
{"matrix":[4, 11], "flags":4, "x":147, "y":51},
{"matrix":[4, 13], "flags":1, "x":171, "y":51},
{"matrix":[4, 15], "flags":1, "x":210, "y":51},
{"matrix":[5, 0], "flags":1, "x":1, "y":64},
{"matrix":[5, 1], "flags":1, "x":18, "y":64},
{"matrix":[5, 2], "flags":1, "x":34, "y":64},
{"matrix":[5, 6], "flags":4, "x":83, "y":64},
{"matrix":[5, 10], "flags":1, "x":132, "y":64},
{"matrix":[5, 11], "flags":1, "x":148, "y":64},
{"matrix":[5, 12], "flags":1, "x":165, "y":64},
{"matrix":[5, 13], "flags":1, "x":181, "y":64},
{"matrix":[5, 14], "flags":1, "x":197, "y":64},
{"matrix":[5, 15], "flags":1, "x":210, "y":64},
{"matrix":[5, 16], "flags":1, "x":224, "y":64}
]
}
}

View File

@ -0,0 +1,59 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_iso(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_iso(
KC_ESC, 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_PSCR, KC_CTANA, RGB_MOD,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_iso(
_______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -0,0 +1,59 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_iso(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_iso(
KC_ESC, 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_PSCR, KC_CTANA, RGB_MOD,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_iso(
_______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,122 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
const ckled2001_led g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, I_1, G_1, H_1},
{0, I_2, G_2, H_2},
{0, I_3, G_3, H_3},
{0, I_4, G_4, H_4},
{0, I_5, G_5, H_5},
{0, I_6, G_6, H_6},
{0, I_7, G_7, H_7},
{0, I_8, G_8, H_8},
{0, I_9, G_9, H_9},
{0, I_10, G_10, H_10},
{0, I_11, G_11, H_11},
{0, I_12, G_12, H_12},
{0, I_13, G_13, H_13},
{0, I_15, G_15, H_15},
{0, I_16, G_16, H_16},
{1, F_8, D_8, E_8},
{0, F_1, D_1, E_1},
{0, F_2, D_2, E_2},
{0, F_3, D_3, E_3},
{0, F_4, D_4, E_4},
{0, F_5, D_5, E_5},
{0, F_6, D_6, E_6},
{0, F_7, D_7, E_7},
{0, F_8, D_8, E_8},
{0, F_9, D_9, E_9},
{0, F_10, D_10, E_10},
{0, F_11, D_11, E_11},
{0, F_12, D_12, E_12},
{0, F_13, D_13, E_13},
{0, F_14, D_14, E_14},
{0, F_15, D_15, E_15},
{0, F_16, D_16, E_16},
{1, F_9, D_9, E_9},
{0, A_1, C_1, B_1},
{0, A_2, C_2, B_2},
{0, A_3, C_3, B_3},
{0, A_4, C_4, B_4},
{0, A_5, C_5, B_5},
{0, A_6, C_6, B_6},
{0, A_7, C_7, B_7},
{0, A_8, C_8, B_8},
{0, A_9, C_9, B_9},
{0, A_10, C_10, B_10},
{0, A_11, C_11, B_11},
{0, A_12, C_12, B_12},
{0, A_13, C_13, B_13},
{0, A_15, C_15, B_15},
{0, A_16, C_16, B_16},
{1, F_6, D_6, E_6},
{1, I_1, G_1, H_1},
{1, I_2, G_2, H_2},
{1, I_3, G_3, H_3},
{1, I_4, G_4, H_4},
{1, I_5, G_5, H_5},
{1, I_6, G_6, H_6},
{1, I_7, G_7, H_7},
{1, I_8, G_8, H_8},
{1, I_9, G_9, H_9},
{1, I_10, G_10, H_10},
{1, I_11, G_11, H_11},
{1, I_12, G_12, H_12},
{1, I_14, G_14, H_14},
{0, A_14, C_14, B_14},
{1, C_1, A_1, B_1},
{1, C_2, A_2, B_2},
{1, C_3, A_3, B_3},
{1, C_4, A_4, B_4},
{1, C_5, A_5, B_5},
{1, C_6, A_6, B_6},
{1, C_7, A_7, B_7},
{1, C_8, A_8, B_8},
{1, C_9, A_9, B_9},
{1, C_10, A_10, B_10},
{1, C_11, A_11, B_11},
{1, C_12, A_12, B_12},
{1, C_14, A_14, B_14},
{1, C_16, A_16, B_16},
{1, F_1, D_1, E_1},
{1, F_2, D_2, E_2},
{1, F_3, D_3, E_3},
{1, F_7, D_7, E_7},
{1, F_11, D_11, E_11},
{1, F_12, D_12, E_12},
{1, F_13, D_13, E_13},
{1, F_14, D_14, E_14},
{1, F_15, D_15, E_15},
{1, F_16, D_16, E_16},
{1, C_15, A_15, B_15}
};
#endif

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,52 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef LED_MATRIX_ENABLE
/* LED Matrix Driver Configuration */
# define DRIVER_COUNT 1
# define DRIVER_ADDR_1 0b1110100
/* LED Matrix Configuration */
# define LED_MATRIX_LED_COUNT 88
/* Set to infinit, which is use in USB mode by default */
# define LED_MATRIX_TIMEOUT LED_MATRIX_TIMEOUT_INFINITE
/* Allow to shutdown driver to save power */
# define LED_MATRIX_DRIVER_SHUTDOWN_ENABLE
/* Turn off backllit if brightness value is low */
# define LED_MATRIX_BRIGHTNESS_TURN_OFF_VAL 48
/* Indication led */
# define LOW_BAT_IND_INDEX 80
// LED Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects
// #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES)
# define LED_MATRIX_KEYPRESSES
# define LED_MATRIX_KEYRELEASES
/* Use first 6 channels of LED driver */
# define PHASE_CHANNEL MSKPHASE_6CHANNEL
/* Set LED driver current */
# define CKLED2001_CURRENT_TUNE \
{ 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d }
#endif

View File

@ -0,0 +1,125 @@
{
"usb": {
"pid": "0x0214",
"device_version": "1.0.0"
},
"features": {
"led_matrix": true
},
"led_matrix": {
"driver": "CKLED2001",
"animations": {
"none": true,
"solid": true,
"breathing": true,
"band_pinwheel": true,
"band_spiral": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"dual_beacon": true,
"solid_reactive_simple": true,
"solid_reactive_multiwide": true,
"solid_reactive_multinexus": true,
"solid_splash": true,
"wave_left_right": true,
"wave_up_down": true,
"effect_max": true
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
{"matrix":[0, 1], "flags":1, "x":26, "y":0},
{"matrix":[0, 2], "flags":1, "x":39, "y":0},
{"matrix":[0, 3], "flags":1, "x":52, "y":0},
{"matrix":[0, 4], "flags":1, "x":65, "y":0},
{"matrix":[0, 5], "flags":1, "x":85, "y":0},
{"matrix":[0, 6], "flags":1, "x":98, "y":0},
{"matrix":[0, 7], "flags":1, "x":111, "y":0},
{"matrix":[0, 8], "flags":1, "x":124, "y":0},
{"matrix":[0, 9], "flags":1, "x":144, "y":0},
{"matrix":[0, 10], "flags":1, "x":157, "y":0},
{"matrix":[0, 11], "flags":1, "x":170, "y":0},
{"matrix":[0, 12], "flags":1, "x":183, "y":0},
{"matrix":[0, 14], "flags":1, "x":197, "y":0},
{"matrix":[0, 15], "flags":1, "x":210, "y":0},
{"matrix":[0, 16], "flags":1, "x":224, "y":0},
{"matrix":[1, 0], "flags":1, "x":0, "y":13},
{"matrix":[1, 1], "flags":8, "x":13, "y":13},
{"matrix":[1, 2], "flags":8, "x":26, "y":13},
{"matrix":[1, 3], "flags":8, "x":39, "y":13},
{"matrix":[1, 4], "flags":4, "x":52, "y":13},
{"matrix":[1, 5], "flags":4, "x":65, "y":13},
{"matrix":[1, 6], "flags":4, "x":78, "y":13},
{"matrix":[1, 7], "flags":4, "x":91, "y":13},
{"matrix":[1, 8], "flags":4, "x":104, "y":13},
{"matrix":[1, 9], "flags":4, "x":117, "y":13},
{"matrix":[1, 10], "flags":4, "x":130, "y":13},
{"matrix":[1, 11], "flags":4, "x":144, "y":13},
{"matrix":[1, 12], "flags":4, "x":157, "y":13},
{"matrix":[1, 13], "flags":1, "x":176, "y":13},
{"matrix":[1, 14], "flags":1, "x":197, "y":13},
{"matrix":[1, 15], "flags":1, "x":210, "y":13},
{"matrix":[1, 16], "flags":1, "x":224, "y":13},
{"matrix":[2, 0], "flags":1, "x":3, "y":26},
{"matrix":[2, 1], "flags":4, "x":19, "y":26},
{"matrix":[2, 2], "flags":4, "x":32, "y":26},
{"matrix":[2, 3], "flags":4, "x":45, "y":26},
{"matrix":[2, 4], "flags":4, "x":58, "y":26},
{"matrix":[2, 5], "flags":4, "x":72, "y":26},
{"matrix":[2, 6], "flags":4, "x":85, "y":26},
{"matrix":[2, 7], "flags":4, "x":98, "y":26},
{"matrix":[2, 8], "flags":4, "x":111, "y":26},
{"matrix":[2, 9], "flags":4, "x":124, "y":26},
{"matrix":[2, 10], "flags":4, "x":137, "y":26},
{"matrix":[2, 11], "flags":4, "x":150, "y":26},
{"matrix":[2, 12], "flags":4, "x":163, "y":26},
{"matrix":[2, 14], "flags":1, "x":197, "y":26},
{"matrix":[2, 15], "flags":1, "x":210, "y":26},
{"matrix":[2, 16], "flags":1, "x":224, "y":26},
{"matrix":[3, 0], "flags":8, "x":4, "y":38},
{"matrix":[3, 1], "flags":4, "x":22, "y":38},
{"matrix":[3, 2], "flags":4, "x":36, "y":38},
{"matrix":[3, 3], "flags":4, "x":49, "y":38},
{"matrix":[3, 4], "flags":4, "x":62, "y":38},
{"matrix":[3, 5], "flags":4, "x":75, "y":38},
{"matrix":[3, 6], "flags":4, "x":88, "y":38},
{"matrix":[3, 7], "flags":4, "x":101, "y":38},
{"matrix":[3, 8], "flags":4, "x":114, "y":38},
{"matrix":[3, 9], "flags":4, "x":127, "y":38},
{"matrix":[3, 10], "flags":4, "x":140, "y":38},
{"matrix":[3, 11], "flags":4, "x":153, "y":38},
{"matrix":[3, 13], "flags":1, "x":167, "y":38},
{"matrix":[2, 13], "flags":1, "x":182, "y":33},
{"matrix":[4, 0], "flags":1, "x":8, "y":51},
{"matrix":[4, 1], "flags":1, "x":16, "y":51},
{"matrix":[4, 2], "flags":4, "x":29, "y":51},
{"matrix":[4, 3], "flags":4, "x":42, "y":51},
{"matrix":[4, 4], "flags":4, "x":55, "y":51},
{"matrix":[4, 5], "flags":4, "x":68, "y":51},
{"matrix":[4, 6], "flags":4, "x":81, "y":51},
{"matrix":[4, 7], "flags":4, "x":94, "y":51},
{"matrix":[4, 8], "flags":4, "x":108, "y":51},
{"matrix":[4, 9], "flags":4, "x":121, "y":51},
{"matrix":[4, 10], "flags":4, "x":134, "y":51},
{"matrix":[4, 11], "flags":4, "x":147, "y":51},
{"matrix":[4, 13], "flags":1, "x":171, "y":51},
{"matrix":[4, 15], "flags":1, "x":210, "y":51},
{"matrix":[5, 0], "flags":1, "x":1, "y":64},
{"matrix":[5, 1], "flags":1, "x":18, "y":64},
{"matrix":[5, 2], "flags":1, "x":34, "y":64},
{"matrix":[5, 6], "flags":4, "x":83, "y":64},
{"matrix":[5, 10], "flags":1, "x":132, "y":64},
{"matrix":[5, 11], "flags":1, "x":148, "y":64},
{"matrix":[5, 12], "flags":1, "x":165, "y":64},
{"matrix":[5, 13], "flags":1, "x":181, "y":64},
{"matrix":[5, 14], "flags":1, "x":197, "y":64},
{"matrix":[5, 15], "flags":1, "x":210, "y":64},
{"matrix":[5, 16], "flags":1, "x":224, "y":64}
]
}
}

View File

@ -0,0 +1,59 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_iso(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_iso(
KC_ESC, 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_PSCR, KC_CTANA, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_iso(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -0,0 +1,59 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_iso(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_iso(
KC_ESC, 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_PSCR, KC_CTANA, BL_STEP,
KC_GRV, 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_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_iso(
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,120 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
// clang-format off
#ifdef LED_MATRIX_ENABLE
const ckled2001_led g_ckled2001_leds[LED_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
* driver
* | LED address
* | | */
{0, F_1},
{0, F_2},
{0, F_3},
{0, F_4},
{0, F_5},
{0, F_6},
{0, F_7},
{0, F_8},
{0, F_9},
{0, F_10},
{0, F_11},
{0, F_12},
{0, F_13},
{0, F_15},
{0, F_16},
{0, A_8},
{0, E_1},
{0, E_2},
{0, E_3},
{0, E_4},
{0, E_5},
{0, E_6},
{0, E_7},
{0, E_8},
{0, E_9},
{0, E_10},
{0, E_11},
{0, E_12},
{0, E_13},
{0, E_14},
{0, E_15},
{0, E_16},
{0, A_9},
{0, D_1},
{0, D_2},
{0, D_3},
{0, D_4},
{0, D_5},
{0, D_6},
{0, D_7},
{0, D_8},
{0, D_9},
{0, D_10},
{0, D_11},
{0, D_12},
{0, D_13},
{0, D_15},
{0, D_16},
{0, A_6},
{0, C_1},
{0, C_2},
{0, C_3},
{0, C_4},
{0, C_5},
{0, C_6},
{0, C_7},
{0, C_8},
{0, C_9},
{0, C_10},
{0, C_11},
{0, C_12},
{0, C_14},
{0, D_14},
{0, B_1},
{0, B_2},
{0, B_3},
{0, B_4},
{0, B_5},
{0, B_6},
{0, B_7},
{0, B_8},
{0, B_9},
{0, B_10},
{0, B_11},
{0, B_12},
{0, B_14},
{0, B_16},
{0, A_1},
{0, A_2},
{0, A_3},
{0, A_7},
{0, A_11},
{0, A_12},
{0, A_13},
{0, A_14},
{0, A_15},
{0, A_16},
{0, B_15}
};
#endif

View File

@ -29,18 +29,17 @@
# include "factory_test.h"
#endif
#ifndef POWER_ON_LED_DURATION
# define POWER_ON_LED_DURATION 3000
#endif
#define POWER_ON_LED_DURATION 3000
typedef struct PACKED {
uint8_t len;
uint8_t keycode[3];
} key_combination_t;
static uint32_t power_on_indicator_timer_buffer;
static uint32_t siri_timer_buffer = 0;
static uint8_t mac_keycode[4] = {KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD};
static uint32_t factory_timer_buffer = 0;
static uint32_t power_on_indicator_timer_buffer = 0;
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] = {
{2, {KC_LWIN, KC_TAB}}, // Task (win)
@ -63,9 +62,9 @@ static void pairing_key_timer_cb(void *arg) {
bool dip_switch_update_kb(uint8_t index, bool active) {
if (index == 0) {
#ifdef INVERT_OS_SWITCH_STATTE
default_layer_set(1UL << (!active ? 2 : 0));
default_layer_set(1UL << (!active ? 0 : 2));
#else
default_layer_set(1UL << (active ? 2 : 0));
default_layer_set(1UL << (active ? 0 : 2));
#endif
}
dip_switch_update_user(index, active);
@ -143,7 +142,8 @@ void keyboard_post_init_kb(void) {
#ifdef KC_BLUETOOTH_ENABLE
/* Currently we don't use this reset pin */
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
* as there is an external pull-down resistor.
@ -165,6 +165,16 @@ void keyboard_post_init_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 (power_on_indicator_timer_buffer) {
if (sync_timer_elapsed32(power_on_indicator_timer_buffer) > POWER_ON_LED_DURATION) {
power_on_indicator_timer_buffer = 0;
@ -193,8 +203,8 @@ void matrix_scan_kb(void) {
#ifdef KC_BLUETOOTH_ENABLE
static void ckbt51_param_init(void) {
/* Set bluetooth device name */
// ckbt51_set_local_name(STR(PRODUCT));
ckbt51_set_local_name(PRODUCT);
wait_ms(10);
/* Set bluetooth parameters */
module_param_t param = {.event_mode = 0x02,
.connected_idle_timeout = 7200,
@ -206,12 +216,13 @@ static void ckbt51_param_init(void) {
.verndor_id = 0, // Must be 0x3434
.product_id = PRODUCT_ID};
ckbt51_set_param(&param);
wait_ms(10);
}
void bluetooth_enter_disconnected_kb(uint8_t host_idx) {
if (bt_factory_reset) {
bt_factory_reset = false;
ckbt51_param_init();
factory_timer_buffer = timer_read32();
}
/* CKBT51 bluetooth module boot time is slower, it enters disconnected after boot,
so we place initialization here. */

View File

@ -20,29 +20,11 @@
#define HC595_SHCP A1
#define HC595_DS A7
#define DIRECT_COL_NUM 1
pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static inline void setPinOutput_writeLow(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
setPinOutput(pin);
writePinLow(pin);
}
}
static inline void setPinOutput_writeHigh(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
setPinOutput(pin);
writePinHigh(pin);
}
}
static inline void setPinInput_high(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
setPinInputHigh(pin);
}
}
static inline uint8_t readMatrixPin(pin_t pin) {
if (pin != NO_PIN) {
return readPin(pin);
@ -51,6 +33,16 @@ static inline uint8_t readMatrixPin(pin_t pin) {
}
}
static inline void setPinOutput_writeLow(pin_t pin) {
setPinOutput(pin);
writePinLow(pin);
}
static inline void setPinOutput_writeHigh(pin_t pin) {
setPinOutput(pin);
writePinHigh(pin);
}
static inline void HC595_delay(uint16_t n) {
while (n-- > 0) {
asm volatile("nop" ::: "memory");
@ -58,112 +50,98 @@ static inline void HC595_delay(uint16_t n) {
}
static void HC595_output(uint16_t data) {
ATOMIC_BLOCK_FORCEON {
for (uint8_t i = 0; i < MATRIX_COLS; i++) {
if (data & 0x1) {
writePinHigh(HC595_DS);
} else {
writePinLow(HC595_DS);
}
uint8_t n = 1;
uint8_t i;
data = data >> 1;
writePinHigh(HC595_SHCP);
HC595_delay(1);
writePinLow(HC595_SHCP);
HC595_delay(1);
}
writePinHigh(HC595_STCP);
HC595_delay(1);
writePinLow(HC595_STCP);
HC595_delay(1);
}
}
static void HC595_output_oneBit(uint8_t data) {
ATOMIC_BLOCK_FORCEON {
for (i = 1; i < (MATRIX_COLS - DIRECT_COL_NUM); i++) {
writePinLow(HC595_SHCP);
if (data & 0x1) {
writePinHigh(HC595_DS);
} else {
writePinLow(HC595_DS);
}
HC595_delay(n);
writePinHigh(HC595_SHCP);
HC595_delay(1);
writePinLow(HC595_SHCP);
HC595_delay(1);
HC595_delay(n);
writePinHigh(HC595_STCP);
HC595_delay(1);
writePinLow(HC595_STCP);
HC595_delay(1);
data = data >> 1;
}
writePinLow(HC595_STCP);
HC595_delay(n);
writePinHigh(HC595_STCP);
}
static bool select_col(uint8_t col) {
pin_t pin = col_pins[col];
static void HC595_output_bit(uint16_t data) {
uint8_t n = 1;
if (pin != NO_PIN) {
setPinOutput_writeLow(pin);
return true;
writePinLow(HC595_SHCP);
if (data & 0x1) {
writePinHigh(HC595_DS);
} else {
if (col == 1) {
HC595_output_oneBit(0x00);
}
return true;
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) {
if (col < DIRECT_COL_NUM) {
setPinOutput_writeLow(col_pins[col]);
} else {
if (col == DIRECT_COL_NUM) {
HC595_output_bit(0x00);
}
}
return false;
}
static void unselect_col(uint8_t col) {
pin_t pin = col_pins[col];
if (pin != NO_PIN) {
if (col < DIRECT_COL_NUM) {
#ifdef MATRIX_UNSELECT_DRIVE_HIGH
setPinOutput_writeHigh(pin);
setPinOutput_writeHigh(col_pins[col]);
#else
setPinInput_high(pin);
setPinInputHigh(col_pins[col]);
#endif
} else {
HC595_output_oneBit(0x01);
HC595_output_bit(0x01);
}
}
static void unselect_cols(void) {
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
pin_t pin = col_pins[x];
if (pin != NO_PIN) {
if (x < DIRECT_COL_NUM) {
#ifdef MATRIX_UNSELECT_DRIVE_HIGH
setPinOutput_writeHigh(pin);
setPinOutput_writeHigh(col_pins[x]);
#else
setPinInput_high(pin);
setPinInputHigh(col_pins[x]);
#endif
} else {
if (x == 1) HC595_output(0xFFFF);
if (x == DIRECT_COL_NUM) HC595_output(0xFFFF);
break;
}
}
}
void select_all_cols(void) {
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
pin_t pin = col_pins[x];
if (pin != NO_PIN) {
setPinOutput_writeLow(pin);
if (x < DIRECT_COL_NUM) {
setPinOutput_writeLow(col_pins[x]);
} else {
if (x == 1) HC595_output(0x0000);
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) {
bool key_pressed = false;
// Select col
if (!select_col(current_col)) { // select col
return; // skip NO_PIN col
}
matrix_output_select_delay();
select_col(current_col);
HC595_delay(200);
// For each row...
for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
@ -171,7 +149,6 @@ static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t curre
if (readMatrixPin(row_pins[row_index]) == 0) {
// Pin LO, set col bit
current_matrix[row_index] |= row_shifter;
key_pressed = true;
} else {
// Pin HI, clear col bit
current_matrix[row_index] &= ~row_shifter;
@ -180,7 +157,7 @@ static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t curre
// 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) {
@ -190,7 +167,7 @@ void matrix_init_custom(void) {
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
if (row_pins[x] != NO_PIN) {
setPinInput_high(row_pins[x]);
setPinInputHigh(row_pins[x]);
}
}

View File

@ -1,6 +1,6 @@
# Keychron K1 Pro
![Keychron K1 Pro](https://drive.google.com/file/d/132Qd8etzeb0t0GjfxGxMZ2h9Irr-XUj_/view?usp=share_link)
![Keychron K1 Pro]<https://i.imgur.com/E6KPWBD.jpg>)
A customizable 80% TKL keyboard.
@ -11,10 +11,16 @@ A customizable 80% TKL keyboard.
Make example for this keyboard (after setting up your build environment):
make keychron/k1_pro/ansi/rgb:default
make keychron/k1_pro/ansi/white:default
make keychron/k1_pro/iso/rgb:default
make keychron/k1_pro/iso/white:default
Flashing example for this keyboard:
make keychron/k1_pro/ansi/rgb:default:flash
make keychron/k1_pro/ansi/white:default:flash
make keychron/k1_pro/iso/rgb:default:flash
make keychron/k1_pro/iso/white:default:flash
**Reset Key**: Connect the USB cable, toggle mode switch to "Off", hold down the *Esc* key or reset button underneath space bar, then toggle then switch to "Cable".

View File

@ -1,5 +1,5 @@
{
"name": "Keychron K1 Pro",
"name": "Keychron K1 Pro ANSI RGB",
"vendorId": "0x3434",
"productId": "0x0210",
"keycodes": ["qmk_lighting"],

View File

@ -1,5 +1,5 @@
{
"name": "Keychron K1 Pro",
"name": "Keychron K1 Pro ANSI White",
"vendorId": "0x3434",
"productId": "0x0213",
"keycodes": ["qmk_lighting"],

View File

@ -0,0 +1,292 @@
{
"name": "Keychron K1 Pro ISO RGB",
"vendorId": "0x3434",
"productId": "0x0211",
"keycodes": ["qmk_lighting"],
"menus": [
{
"label": "Lighting",
"content": [
{
"label": "Backlight",
"content": [
{
"label": "Brightness",
"type": "range",
"options": [0, 255],
"content": ["id_qmk_rgb_matrix_brightness", 3, 1]
},
{
"label": "Effect",
"type": "dropdown",
"content": ["id_qmk_rgb_matrix_effect", 3, 2],
"options": [
["None", 0],
["Solid Color", 1],
["Breathing", 2],
["Band Spiral Val", 3],
["Cycle All", 4],
["Cycle Left Right", 5],
["Cycle Up Down", 6],
["Rainbow Moving Chevron", 7],
["Cycle Out In", 8],
["Cycle Out In Dual", 9],
["Cycle Pinwheel", 10],
["Cycle Spiral", 11],
["Dual Beacon", 12],
["Rainbow Beacon", 13],
["Jellybean Raindrops", 14],
["Pixel Rain", 15],
["Typing Heatmap", 16],
["Digital Rain", 17],
["Reactive Simple", 18],
["Reactive Multiwide", 19],
["Reactive Multinexus", 20],
["Splash", 21],
["Solid Splash", 22]
]
},
{
"showIf": "{id_qmk_rgb_matrix_effect} > 1",
"label": "Effect Speed",
"type": "range",
"options": [0, 255],
"content": ["id_qmk_rgb_matrix_effect_speed", 3, 3]
},
{
"showIf": "{id_qmk_rgb_matrix_effect} != 0 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ",
"label": "Color",
"type": "color",
"content": ["id_qmk_rgb_matrix_color", 3, 4]
}
]
}
]
}
],
"customKeycodes": [
{"name": "Left Option", "title": "Left Option", "shortName": "LOpt"},
{"name": "Right Option", "title": "Right Option", "shortName": "ROpt"},
{"name": "Left Cmd", "title": "Left Command", "shortName": "LCmd"},
{"name": "Right Cmd", "title": "Right Command", "shortName": "RCmd"},
{"name": "Task View", "title": "Task View in Windows", "shortName": "Task"},
{"name": "File Explorer", "title": "File Explorer in Windows", "shortName": "File"},
{"name": "Screen shot", "title": "Screenshot in macOS", "shortName": "SShot"},
{"name": "Cortana", "title": "Cortana in Windows", "shortName": "Cortana"},
{"name": "Siri", "title": "Siri in macOS", "shortName": "Siri"},
{"name": "Bluetooth Host 1", "title": "Bluetooth Host 1", "shortName": "BTH1"},
{"name": "Bluetooth Host 2", "title": "Bluetooth Host 2", "shortName": "BTH2"},
{"name": "Bluetooth Host 3", "title": "Bluetooth Host 3", "shortName": "BTH3"},
{"name": "Battery Level", "title": "Show battery level", "shortName": "Batt"}
],
"matrix": {"rows": 6, "cols": 17},
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"0,0",
{
"x": 1,
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.5,
"c": "#aaaaaa"
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.5,
"c": "#cccccc"
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25,
"c": "#aaaaaa"
},
"0,14",
"0,15",
"0,16"
],
[
{
"y": 0.25
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"c": "#aaaaaa",
"w": 2
},
"1,13",
{
"x": 0.25
},
"1,14",
"1,15",
"1,16"
],
[
{
"w": 1.5
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"x": 0.25,
"c": "#777777",
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,13",
{
"x": 0.25,
"c": "#aaaaaa"
},
"2,14",
"2,15",
"2,16"
],
[
{
"w": 1.75
},
"3,0",
{
"c": "#cccccc"
},
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"c": "#aaaaaa"
},
"3,13"
],
[
{
"w": 1.25
},
"4,0",
"4,1",
{
"c": "#cccccc"
},
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"c": "#aaaaaa",
"w": 2.75
},
"4,13",
{
"x": 1.25,
"c": "#777777"
},
"4,15"
],
[
{
"c": "#aaaaaa",
"w": 1.25
},
"5,0",
{
"w": 1.25
},
"5,1",
{
"w": 1.25
},
"5,2",
{
"c": "#cccccc",
"w": 6.25
},
"5,6",
{
"c": "#aaaaaa",
"w": 1.25
},
"5,10",
{
"w": 1.25
},
"5,11",
{
"w": 1.25
},
"5,12",
{
"w": 1.25
},
"5,13",
{
"x": 0.25,
"c": "#777777"
},
"5,14",
"5,15",
"5,16"
]
]
}
}

View File

@ -0,0 +1,231 @@
{
"name": "Keychron K1 Pro ISO White",
"vendorId": "0x3434",
"productId": "0x0214",
"keycodes": ["qmk_lighting"],
"customKeycodes": [
{"name": "Left Option", "title": "Left Option", "shortName": "LOpt"},
{"name": "Right Option", "title": "Right Option", "shortName": "ROpt"},
{"name": "Left Cmd", "title": "Left Command", "shortName": "LCmd"},
{"name": "Right Cmd", "title": "Right Command", "shortName": "RCmd"},
{"name": "Task View", "title": "Task View in Windows", "shortName": "Task"},
{"name": "File Explorer", "title": "File Explorer in Windows", "shortName": "File"},
{"name": "Screen shot", "title": "Screenshot in macOS", "shortName": "SShot"},
{"name": "Cortana", "title": "Cortana in Windows", "shortName": "Cortana"},
{"name": "Siri", "title": "Siri in macOS", "shortName": "Siri"},
{"name": "Bluetooth Host 1", "title": "Bluetooth Host 1", "shortName": "BTH1"},
{"name": "Bluetooth Host 2", "title": "Bluetooth Host 2", "shortName": "BTH2"},
{"name": "Bluetooth Host 3", "title": "Bluetooth Host 3", "shortName": "BTH3"},
{"name": "Battery Level", "title": "Show battery level", "shortName": "Batt"}
],
"matrix": {"rows": 6, "cols": 17},
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"0,0",
{
"x": 1,
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.5,
"c": "#aaaaaa"
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.5,
"c": "#cccccc"
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25,
"c": "#aaaaaa"
},
"0,14",
"0,15",
"0,16"
],
[
{
"y": 0.25
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"c": "#aaaaaa",
"w": 2
},
"1,13",
{
"x": 0.25
},
"1,14",
"1,15",
"1,16"
],
[
{
"w": 1.5
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"x": 0.25,
"c": "#777777",
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,13",
{
"x": 0.25,
"c": "#aaaaaa"
},
"2,14",
"2,15",
"2,16"
],
[
{
"w": 1.75
},
"3,0",
{
"c": "#cccccc"
},
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"c": "#aaaaaa"
},
"3,13"
],
[
{
"w": 1.25
},
"4,0",
"4,1",
{
"c": "#cccccc"
},
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"c": "#aaaaaa",
"w": 2.75
},
"4,13",
{
"x": 1.25,
"c": "#777777"
},
"4,15"
],
[
{
"c": "#aaaaaa",
"w": 1.25
},
"5,0",
{
"w": 1.25
},
"5,1",
{
"w": 1.25
},
"5,2",
{
"c": "#cccccc",
"w": 6.25
},
"5,6",
{
"c": "#aaaaaa",
"w": 1.25
},
"5,10",
{
"w": 1.25
},
"5,11",
{
"w": 1.25
},
"5,12",
{
"w": 1.25
},
"5,13",
{
"x": 0.25,
"c": "#777777"
},
"5,14",
"5,15",
"5,16"
]
]
}
}