Added k9 pro iso and jis version

This commit is contained in:
lalalademaxiya1 2023-07-24 10:46:45 +08:00
parent 02a4691a88
commit e0d904fb5e
47 changed files with 2313 additions and 188 deletions

View file

@ -0,0 +1,83 @@
{
"matrix_pins": {
"rows": ["B4", "B3", "A15", "A14", "A13"],
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null],
"custom": true,
"custom_lite": true
},
"matrix_size": {
"rows": 5,
"cols": 14
},
"layouts": {
"LAYOUT_61_ansi": {
"layout": [
{"matrix":[0,0], "x":0, "y":0},
{"matrix":[0,1], "x":1, "y":0},
{"matrix":[0,2], "x":2, "y":0},
{"matrix":[0,3], "x":3, "y":0},
{"matrix":[0,4], "x":4, "y":0},
{"matrix":[0,5], "x":5, "y":0},
{"matrix":[0,6], "x":6, "y":0},
{"matrix":[0,7], "x":7, "y":0},
{"matrix":[0,8], "x":8, "y":0},
{"matrix":[0,9], "x":9, "y":0},
{"matrix":[0,10], "x":10, "y":0},
{"matrix":[0,11], "x":11, "y":0},
{"matrix":[0,12], "x":12, "y":0},
{"matrix":[0,13], "x":13, "y":0, "w":2},
{"matrix":[1,0], "x":0, "y":1, "w":1.5},
{"matrix":[1,1], "x":1.5, "y":1},
{"matrix":[1,2], "x":2.5, "y":1},
{"matrix":[1,3], "x":3.5, "y":1},
{"matrix":[1,4], "x":4.5, "y":1},
{"matrix":[1,5], "x":5.5, "y":1},
{"matrix":[1,6], "x":6.5, "y":1},
{"matrix":[1,7], "x":7.5, "y":1},
{"matrix":[1,8], "x":8.5, "y":1},
{"matrix":[1,9], "x":9.5, "y":1},
{"matrix":[1,10], "x":10.5, "y":1},
{"matrix":[1,11], "x":11.5, "y":1},
{"matrix":[1,12], "x":12.5, "y":1},
{"matrix":[1,13], "x":13.5, "y":1, "w":1.5},
{"matrix":[2,0], "x":0, "y":2, "w":1.75},
{"matrix":[2,1], "x":1.75, "y":2},
{"matrix":[2,2], "x":2.75, "y":2},
{"matrix":[2,3], "x":3.75, "y":2},
{"matrix":[2,4], "x":4.75, "y":2},
{"matrix":[2,5], "x":5.75, "y":2},
{"matrix":[2,6], "x":6.75, "y":2},
{"matrix":[2,7], "x":7.75, "y":2},
{"matrix":[2,8], "x":8.75, "y":2},
{"matrix":[2,9], "x":9.75, "y":2},
{"matrix":[2,10], "x":10.75, "y":2},
{"matrix":[2,11], "x":11.75, "y":2},
{"matrix":[2,13], "x":12.75, "y":2, "w":2.25},
{"matrix":[3,0], "x":0, "y":3, "w":2.25},
{"matrix":[3,2], "x":2.25, "y":3},
{"matrix":[3,3], "x":3.25, "y":3},
{"matrix":[3,4], "x":4.25, "y":3},
{"matrix":[3,5], "x":5.25, "y":3},
{"matrix":[3,6], "x":6.25, "y":3},
{"matrix":[3,7], "x":7.25, "y":3},
{"matrix":[3,8], "x":8.25, "y":3},
{"matrix":[3,9], "x":9.25, "y":3},
{"matrix":[3,10], "x":10.25, "y":3},
{"matrix":[3,11], "x":11.25, "y":3},
{"matrix":[3,13], "x":12.25, "y":3, "w":2.75},
{"matrix":[4,0], "x":0, "y":4, "w":1.25},
{"matrix":[4,1], "x":1.25, "y":4, "w":1.25},
{"matrix":[4,2], "x":2.5, "y":4, "w":1.25},
{"matrix":[4,6], "x":3.75, "y":4, "w":6.25},
{"matrix":[4,10], "x":10, "y":4, "w":1.25},
{"matrix":[4,11], "x":11.25, "y":4, "w":1.25},
{"matrix":[4,12], "x":12.5, "y":4, "w":1.25},
{"matrix":[4,13], "x":13.75, "y":4, "w":1.25}
]
}
}
}

View file

@ -17,11 +17,12 @@
#pragma once
#ifdef RGB_MATRIX_ENABLE
/* RGB Matrix driver configuration */
/* RGB Matrix Driver Configuration */
# define DRIVER_COUNT 1
# define DRIVER_ADDR_1 0b1110100
# define DRIVER_1_LED_COUNT 61
# define RGB_MATRIX_LED_COUNT DRIVER_1_LED_COUNT
/* RGB Matrix Configuration */
# define RGB_MATRIX_LED_COUNT 61
/* Set to infinite, which is use in USB mode by default */
# define RGB_MATRIX_TIMEOUT RGB_MATRIX_TIMEOUT_INFINITE
@ -32,6 +33,7 @@
/* Turn off backlight on low brightness to save power */
# define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 48
/* Indication led index */
# define DIM_CAPS_LOCK
# define CAPS_LOCK_INDEX 28
# define LOW_BAT_IND_INDEX 56

View file

@ -30,6 +30,73 @@
"solid_reactive_multinexus": true,
"splash": true,
"solid_splash": true
}
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
{"matrix":[0, 1], "flags":4, "x":16, "y":0},
{"matrix":[0, 2], "flags":4, "x":32, "y":0},
{"matrix":[0, 3], "flags":4, "x":48, "y":0},
{"matrix":[0, 4], "flags":4, "x":65, "y":0},
{"matrix":[0, 5], "flags":4, "x":81, "y":0},
{"matrix":[0, 6], "flags":4, "x":97, "y":0},
{"matrix":[0, 7], "flags":4, "x":113, "y":0},
{"matrix":[0, 8], "flags":4, "x":129, "y":0},
{"matrix":[0, 9], "flags":4, "x":145, "y":0},
{"matrix":[0, 10], "flags":4, "x":161, "y":0},
{"matrix":[0, 11], "flags":4, "x":178, "y":0},
{"matrix":[0, 12], "flags":4, "x":194, "y":0},
{"matrix":[0, 13], "flags":1, "x":218, "y":0},
{"matrix":[1, 0], "flags":1, "x":4, "y":16},
{"matrix":[1, 1], "flags":8, "x":24, "y":16},
{"matrix":[1, 2], "flags":8, "x":40, "y":16},
{"matrix":[1, 3], "flags":8, "x":57, "y":16},
{"matrix":[1, 4], "flags":4, "x":73, "y":16},
{"matrix":[1, 5], "flags":4, "x":89, "y":16},
{"matrix":[1, 6], "flags":4, "x":105, "y":16},
{"matrix":[1, 7], "flags":4, "x":121, "y":16},
{"matrix":[1, 8], "flags":4, "x":137, "y":16},
{"matrix":[1, 9], "flags":4, "x":153, "y":16},
{"matrix":[1, 10], "flags":4, "x":170, "y":16},
{"matrix":[1, 11], "flags":4, "x":186, "y":16},
{"matrix":[1, 12], "flags":4, "x":202, "y":16},
{"matrix":[1, 13], "flags":1, "x":222, "y":16},
{"matrix":[2, 0], "flags":8, "x":6, "y":32},
{"matrix":[2, 1], "flags":4, "x":28, "y":32},
{"matrix":[2, 2], "flags":4, "x":44, "y":32},
{"matrix":[2, 3], "flags":4, "x":61, "y":32},
{"matrix":[2, 4], "flags":4, "x":77, "y":32},
{"matrix":[2, 5], "flags":4, "x":93, "y":32},
{"matrix":[2, 6], "flags":4, "x":109, "y":32},
{"matrix":[2, 7], "flags":4, "x":125, "y":32},
{"matrix":[2, 8], "flags":4, "x":141, "y":32},
{"matrix":[2, 9], "flags":4, "x":157, "y":32},
{"matrix":[2, 10], "flags":4, "x":174, "y":32},
{"matrix":[2, 11], "flags":4, "x":190, "y":32},
{"matrix":[2, 13], "flags":1, "x":216, "y":32},
{"matrix":[3, 0], "flags":1, "x":2, "y":48},
{"matrix":[3, 2], "flags":4, "x":36, "y":48},
{"matrix":[3, 3], "flags":4, "x":53, "y":48},
{"matrix":[3, 4], "flags":4, "x":69, "y":48},
{"matrix":[3, 5], "flags":4, "x":85, "y":48},
{"matrix":[3, 6], "flags":4, "x":101, "y":48},
{"matrix":[3, 7], "flags":4, "x":117, "y":48},
{"matrix":[3, 8], "flags":4, "x":133, "y":48},
{"matrix":[3, 9], "flags":4, "x":149, "y":48},
{"matrix":[3, 10], "flags":4, "x":166, "y":48},
{"matrix":[3, 11], "flags":4, "x":182, "y":48},
{"matrix":[3, 13], "flags":1, "x":212, "y":48},
{"matrix":[4, 0], "flags":1, "x":2, "y":64},
{"matrix":[4, 1], "flags":1, "x":22, "y":64},
{"matrix":[4, 2], "flags":1, "x":42, "y":64},
{"matrix":[4, 6], "flags":4, "x":103, "y":64},
{"matrix":[4, 10], "flags":1, "x":163, "y":64},
{"matrix":[4, 11], "flags":1, "x":184, "y":64},
{"matrix":[4, 12], "flags":1, "x":204, "y":64},
{"matrix":[4, 13], "flags":1, "x":224, "y":64}
]
}
}

View file

@ -16,49 +16,48 @@
#include QMK_KEYBOARD_H
// clang-format off
enum layers{
MAC_BASE,
WIN_BASE,
MAC_FN,
WIN_FN,
MAC_FN1,
L_FN1
L_FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_ansi_61(
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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN),MO(L_FN1),KC_RCTL),
[MAC_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN),MO(L_FN1),KC_RCTL),
[WIN_BASE] = LAYOUT_ansi_61(
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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(L_FN1),KC_RCTL),
[WIN_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(L_FN1),KC_RCTL),
[MAC_FN] = LAYOUT_ansi_61(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[MAC_FN] = LAYOUT_61_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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_ansi_61(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_61_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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[L_FN1] = LAYOUT_ansi_61(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};
[L_FN1] = LAYOUT_61_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

@ -16,48 +16,48 @@
#include QMK_KEYBOARD_H
// clang-format off
enum layers{
enum layers {
MAC_BASE,
WIN_BASE,
MAC_FN,
WIN_FN,
L_FN1
L_FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_ansi_61(
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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN),MO(L_FN1),KC_RCTL),
[MAC_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN),MO(L_FN1),KC_RCTL),
[WIN_BASE] = LAYOUT_ansi_61(
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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(L_FN1),KC_RCTL),
[WIN_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(L_FN1),KC_RCTL),
[MAC_FN] = LAYOUT_ansi_61(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[MAC_FN] = LAYOUT_61_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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_ansi_61(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_61_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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[L_FN1] = LAYOUT_ansi_61(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[L_FN1] = LAYOUT_61_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

@ -1,2 +1 @@
VIA_ENABLE = yes
OPT_DEFS += -DDYNAMIC_KEYMAP_LAYER_COUNT=5

View file

@ -91,33 +91,4 @@ const ckled2001_led g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{0, L_15, J_15, K_15},
{0, L_16, J_16, K_16},
};
#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 }
},
{
// LED Index to Physical Position
{0,0}, {16,0}, {32,0}, {48,0}, {65,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {178,0}, {194,0}, {218,0},
{4,16}, {24,16}, {40,16}, {57,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {170,16}, {186,16}, {202,16}, {222,16},
{6,32}, {28,32}, {44,32}, {61,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {174,32}, {190,32}, {216,32},
{10,48}, {36,48}, {53,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {166,48}, {182,48}, {212,48},
{2,64}, {22,64}, {42,64}, {103,64}, {163,64}, {184,64}, {204,64}, {224,64},
},
{
// RGB LED Index to Flag
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
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, 4, 1, 1, 1, 1
}
};
#endif

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 LED_MATRIX_ENABLE
/* LED Matrix Driver Configuration */
# define DRIVER_COUNT 1
# define DRIVER_ADDR_1 0b1110100
/* LED Matrix Configuration */
# define LED_MATRIX_LED_COUNT 61
/* 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 index */
# define DIM_CAPS_LOCK
# define CAPS_LOCK_INDEX 28
# define LOW_BAT_IND_INDEX 56
// 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
/* Set LED driver current */
# define CKLED2001_CURRENT_TUNE \
{ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 }
#endif

View file

@ -0,0 +1,97 @@
{
"usb": {
"pid": "0x0293",
"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":4, "x":16, "y":0},
{"matrix":[0, 2], "flags":4, "x":32, "y":0},
{"matrix":[0, 3], "flags":4, "x":48, "y":0},
{"matrix":[0, 4], "flags":4, "x":65, "y":0},
{"matrix":[0, 5], "flags":4, "x":81, "y":0},
{"matrix":[0, 6], "flags":4, "x":97, "y":0},
{"matrix":[0, 7], "flags":4, "x":113, "y":0},
{"matrix":[0, 8], "flags":4, "x":129, "y":0},
{"matrix":[0, 9], "flags":4, "x":145, "y":0},
{"matrix":[0, 10], "flags":4, "x":161, "y":0},
{"matrix":[0, 11], "flags":4, "x":178, "y":0},
{"matrix":[0, 12], "flags":4, "x":194, "y":0},
{"matrix":[0, 13], "flags":1, "x":218, "y":0},
{"matrix":[1, 0], "flags":1, "x":4, "y":16},
{"matrix":[1, 1], "flags":8, "x":24, "y":16},
{"matrix":[1, 2], "flags":8, "x":40, "y":16},
{"matrix":[1, 3], "flags":8, "x":57, "y":16},
{"matrix":[1, 4], "flags":4, "x":73, "y":16},
{"matrix":[1, 5], "flags":4, "x":89, "y":16},
{"matrix":[1, 6], "flags":4, "x":105, "y":16},
{"matrix":[1, 7], "flags":4, "x":121, "y":16},
{"matrix":[1, 8], "flags":4, "x":137, "y":16},
{"matrix":[1, 9], "flags":4, "x":153, "y":16},
{"matrix":[1, 10], "flags":4, "x":170, "y":16},
{"matrix":[1, 11], "flags":4, "x":186, "y":16},
{"matrix":[1, 12], "flags":4, "x":202, "y":16},
{"matrix":[1, 13], "flags":1, "x":222, "y":16},
{"matrix":[2, 0], "flags":8, "x":6, "y":32},
{"matrix":[2, 1], "flags":4, "x":28, "y":32},
{"matrix":[2, 2], "flags":4, "x":44, "y":32},
{"matrix":[2, 3], "flags":4, "x":61, "y":32},
{"matrix":[2, 4], "flags":4, "x":77, "y":32},
{"matrix":[2, 5], "flags":4, "x":93, "y":32},
{"matrix":[2, 6], "flags":4, "x":109, "y":32},
{"matrix":[2, 7], "flags":4, "x":125, "y":32},
{"matrix":[2, 8], "flags":4, "x":141, "y":32},
{"matrix":[2, 9], "flags":4, "x":157, "y":32},
{"matrix":[2, 10], "flags":4, "x":174, "y":32},
{"matrix":[2, 11], "flags":4, "x":190, "y":32},
{"matrix":[2, 13], "flags":1, "x":216, "y":32},
{"matrix":[3, 0], "flags":1, "x":2, "y":48},
{"matrix":[3, 2], "flags":4, "x":36, "y":48},
{"matrix":[3, 3], "flags":4, "x":53, "y":48},
{"matrix":[3, 4], "flags":4, "x":69, "y":48},
{"matrix":[3, 5], "flags":4, "x":85, "y":48},
{"matrix":[3, 6], "flags":4, "x":101, "y":48},
{"matrix":[3, 7], "flags":4, "x":117, "y":48},
{"matrix":[3, 8], "flags":4, "x":133, "y":48},
{"matrix":[3, 9], "flags":4, "x":149, "y":48},
{"matrix":[3, 10], "flags":4, "x":166, "y":48},
{"matrix":[3, 11], "flags":4, "x":182, "y":48},
{"matrix":[3, 13], "flags":1, "x":212, "y":48},
{"matrix":[4, 0], "flags":1, "x":2, "y":64},
{"matrix":[4, 1], "flags":1, "x":22, "y":64},
{"matrix":[4, 2], "flags":1, "x":42, "y":64},
{"matrix":[4, 6], "flags":4, "x":103, "y":64},
{"matrix":[4, 10], "flags":1, "x":163, "y":64},
{"matrix":[4, 11], "flags":1, "x":184, "y":64},
{"matrix":[4, 12], "flags":1, "x":204, "y":64},
{"matrix":[4, 13], "flags":1, "x":224, "y":64}
]
}
}

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
L_FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN),MO(L_FN1),KC_RCTL),
[WIN_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(L_FN1),KC_RCTL),
[MAC_FN] = LAYOUT_61_ansi(
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_61_ansi(
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[L_FN1] = LAYOUT_61_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

@ -0,0 +1,57 @@
/* 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, WIN_BASE, MAC_FN, WIN_FN, L_FN1 };
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD,MO(MAC_FN),MO(L_FN1),KC_RCTL),
[WIN_BASE] = LAYOUT_61_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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(L_FN1),KC_RCTL),
[MAC_FN] = LAYOUT_61_ansi(
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_61_ansi(
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[L_FN1] = LAYOUT_61_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

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

View file

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

View file

@ -0,0 +1,92 @@
/* 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/>.g
*/
#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, J_1},
{0, J_2},
{0, J_3},
{0, J_4},
{0, J_5},
{0, J_6},
{0, J_7},
{0, J_8},
{0, J_9},
{0, J_10},
{0, J_11},
{0, J_12},
{0, J_13},
{0, J_14},
{0, G_1},
{0, G_2},
{0, G_3},
{0, G_4},
{0, G_5},
{0, G_6},
{0, G_7},
{0, G_8},
{0, G_9},
{0, G_10},
{0, G_11},
{0, G_12},
{0, G_13},
{0, G_14},
{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_14},
{0, A_1},
{0, A_3},
{0, A_4},
{0, A_5},
{0, A_6},
{0, A_7},
{0, A_8},
{0, A_9},
{0, A_10},
{0, A_11},
{0, A_12},
{0, A_14},
{0, A_15},
{0, A_16},
{0, D_15},
{0, D_16},
{0, G_15},
{0, G_16},
{0, J_15},
{0, J_16},
};
#endif

View file

@ -17,85 +17,7 @@
"raw": true
},
"diode_direction": "ROW2COL",
"matrix_size": {
"rows": 5,
"cols": 16
},
"matrix_pins": {
"rows": ["B4", "B3", "A15", "A14", "A13"],
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
"custom": true,
"custom_lite": true
},
"layouts": {
"LAYOUT_ansi_61": {
"layout": [
{"matrix":[0,0], "x":0, "y":0},
{"matrix":[0,1], "x":1, "y":0},
{"matrix":[0,2], "x":2, "y":0},
{"matrix":[0,3], "x":3, "y":0},
{"matrix":[0,4], "x":4, "y":0},
{"matrix":[0,5], "x":5, "y":0},
{"matrix":[0,6], "x":6, "y":0},
{"matrix":[0,7], "x":7, "y":0},
{"matrix":[0,8], "x":8, "y":0},
{"matrix":[0,9], "x":9, "y":0},
{"matrix":[0,10], "x":10, "y":0},
{"matrix":[0,11], "x":11, "y":0},
{"matrix":[0,12], "x":12, "y":0},
{"matrix":[0,13], "x":13, "y":0, "w":2},
{"matrix":[1,0], "x":0, "y":1, "w":1.5},
{"matrix":[1,1], "x":1.5, "y":1},
{"matrix":[1,2], "x":2.5, "y":1},
{"matrix":[1,3], "x":3.5, "y":1},
{"matrix":[1,4], "x":4.5, "y":1},
{"matrix":[1,5], "x":5.5, "y":1},
{"matrix":[1,6], "x":6.5, "y":1},
{"matrix":[1,7], "x":7.5, "y":1},
{"matrix":[1,8], "x":8.5, "y":1},
{"matrix":[1,9], "x":9.5, "y":1},
{"matrix":[1,10], "x":10.5, "y":1},
{"matrix":[1,11], "x":11.5, "y":1},
{"matrix":[1,12], "x":12.5, "y":1},
{"matrix":[1,13], "x":13.5, "y":1, "w":1.5},
{"matrix":[2,0], "x":0, "y":2, "w":1.75},
{"matrix":[2,1], "x":1.75, "y":2},
{"matrix":[2,2], "x":2.75, "y":2},
{"matrix":[2,3], "x":3.75, "y":2},
{"matrix":[2,4], "x":4.75, "y":2},
{"matrix":[2,5], "x":5.75, "y":2},
{"matrix":[2,6], "x":6.75, "y":2},
{"matrix":[2,7], "x":7.75, "y":2},
{"matrix":[2,8], "x":8.75, "y":2},
{"matrix":[2,9], "x":9.75, "y":2},
{"matrix":[2,10], "x":10.75, "y":2},
{"matrix":[2,11], "x":11.75, "y":2},
{"matrix":[2,13], "x":12.75, "y":2, "w":2.25},
{"matrix":[3,0], "x":0, "y":3, "w":2.25},
{"matrix":[3,2], "x":2.25, "y":3},
{"matrix":[3,3], "x":3.25, "y":3},
{"matrix":[3,4], "x":4.25, "y":3},
{"matrix":[3,5], "x":5.25, "y":3},
{"matrix":[3,6], "x":6.25, "y":3},
{"matrix":[3,7], "x":7.25, "y":3},
{"matrix":[3,8], "x":8.25, "y":3},
{"matrix":[3,9], "x":9.25, "y":3},
{"matrix":[3,10], "x":10.25, "y":3},
{"matrix":[3,11], "x":11.25, "y":3},
{"matrix":[3,13], "x":12.25, "y":3, "w":2.75},
{"matrix":[4,0], "x":0, "y":4, "w":1.25},
{"matrix":[4,1], "x":1.25, "y":4, "w":1.25},
{"matrix":[4,2], "x":2.5, "y":4, "w":1.25},
{"matrix":[4,6], "x":3.75, "y":4, "w":6.25},
{"matrix":[4,10], "x":10, "y":4, "w":1.25},
{"matrix":[4,11], "x":11.25, "y":4, "w":1.25},
{"matrix":[4,12], "x":12.5, "y":4, "w":1.25},
{"matrix":[4,13], "x":13.75, "y":4, "w":1.25}
]
}
"dynamic_keymap": {
"layer_count": 5
}
}

View file

@ -0,0 +1,84 @@
{
"matrix_size": {
"rows": 5,
"cols": 14
},
"matrix_pins": {
"rows": ["B4", "B3", "A15", "A14", "A13"],
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null],
"custom": true,
"custom_lite": true
},
"layouts": {
"LAYOUT_62_iso": {
"layout": [
{"matrix":[0,0], "x":0, "y":0},
{"matrix":[0,1], "x":1, "y":0},
{"matrix":[0,2], "x":2, "y":0},
{"matrix":[0,3], "x":3, "y":0},
{"matrix":[0,4], "x":4, "y":0},
{"matrix":[0,5], "x":5, "y":0},
{"matrix":[0,6], "x":6, "y":0},
{"matrix":[0,7], "x":7, "y":0},
{"matrix":[0,8], "x":8, "y":0},
{"matrix":[0,9], "x":9, "y":0},
{"matrix":[0,10], "x":10, "y":0},
{"matrix":[0,11], "x":11, "y":0},
{"matrix":[0,12], "x":12, "y":0},
{"matrix":[0,13], "x":13, "y":0, "w":2},
{"matrix":[1,0], "x":0, "y":1, "w":1.5},
{"matrix":[1,1], "x":1.5, "y":1},
{"matrix":[1,2], "x":2.5, "y":1},
{"matrix":[1,3], "x":3.5, "y":1},
{"matrix":[1,4], "x":4.5, "y":1},
{"matrix":[1,5], "x":5.5, "y":1},
{"matrix":[1,6], "x":6.5, "y":1},
{"matrix":[1,7], "x":7.5, "y":1},
{"matrix":[1,8], "x":8.5, "y":1},
{"matrix":[1,9], "x":9.5, "y":1},
{"matrix":[1,10], "x":10.5, "y":1},
{"matrix":[1,11], "x":11.5, "y":1},
{"matrix":[1,12], "x":12.5, "y":1},
{"matrix":[2,0], "x":0, "y":2, "w":1.75},
{"matrix":[2,1], "x":1.75, "y":2},
{"matrix":[2,2], "x":2.75, "y":2},
{"matrix":[2,3], "x":3.75, "y":2},
{"matrix":[2,4], "x":4.75, "y":2},
{"matrix":[2,5], "x":5.75, "y":2},
{"matrix":[2,6], "x":6.75, "y":2},
{"matrix":[2,7], "x":7.75, "y":2},
{"matrix":[2,8], "x":8.75, "y":2},
{"matrix":[2,9], "x":9.75, "y":2},
{"matrix":[2,10], "x":10.75, "y":2},
{"matrix":[2,11], "x":11.75, "y":2},
{"matrix":[2,13], "x":12.75, "y":2},
{"matrix":[1,13], "x":13.75, "y":1, "w":1.25, "h":2},
{"matrix":[3,0], "x":0, "y":3, "w":1.25},
{"matrix":[3,1], "x":1.25, "y":3},
{"matrix":[3,2], "x":2.25, "y":3},
{"matrix":[3,3], "x":3.25, "y":3},
{"matrix":[3,4], "x":4.25, "y":3},
{"matrix":[3,5], "x":5.25, "y":3},
{"matrix":[3,6], "x":6.25, "y":3},
{"matrix":[3,7], "x":7.25, "y":3},
{"matrix":[3,8], "x":8.25, "y":3},
{"matrix":[3,9], "x":9.25, "y":3},
{"matrix":[3,10], "x":10.25, "y":3},
{"matrix":[3,11], "x":11.25, "y":3},
{"matrix":[3,13], "x":12.25, "y":3, "w":2.75},
{"matrix":[4,0], "x":0, "y":4, "w":1.25},
{"matrix":[4,1], "x":1.25, "y":4, "w":1.25},
{"matrix":[4,2], "x":2.5, "y":4, "w":1.25},
{"matrix":[4,6], "x":3.75, "y":4, "w":6.25},
{"matrix":[4,10], "x":10, "y":4, "w":1.25},
{"matrix":[4,11], "x":11.25, "y":4, "w":1.25},
{"matrix":[4,12], "x":12.5, "y":4, "w":1.25},
{"matrix":[4,13], "x":13.75, "y":4, "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 1
# define DRIVER_ADDR_1 0b1110100
/* RGB Matrix configuration */
# define RGB_MATRIX_LED_COUNT 62
/* Set to infinite, which is use in USB mode by default */
# define RGB_MATRIX_TIMEOUT RGB_MATRIX_TIMEOUT_INFINITE
/* Allow shutdown of led driver to save power */
# define RGB_MATRIX_DRIVER_SHUTDOWN_ENABLE
/* Turn off backlight on low brightness to save power */
# define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 48
/* Indication led index */
# define DIM_CAPS_LOCK
# define CAPS_LOCK_INDEX 27
# define LOW_BAT_IND_INDEX 57
/* 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_EFFECTS
/* Set LED driver current */
# define CKLED2001_CURRENT_TUNE \
{ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
#endif

View file

@ -0,0 +1,103 @@
{
"usb": {
"pid": "0x0291",
"device_version": "1.0.0"
},
"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":4, "x":16, "y":0},
{"matrix":[0, 2], "flags":4, "x":32, "y":0},
{"matrix":[0, 3], "flags":4, "x":48, "y":0},
{"matrix":[0, 4], "flags":4, "x":65, "y":0},
{"matrix":[0, 5], "flags":4, "x":81, "y":0},
{"matrix":[0, 6], "flags":4, "x":97, "y":0},
{"matrix":[0, 7], "flags":4, "x":113, "y":0},
{"matrix":[0, 8], "flags":4, "x":129, "y":0},
{"matrix":[0, 9], "flags":4, "x":145, "y":0},
{"matrix":[0, 10], "flags":4, "x":161, "y":0},
{"matrix":[0, 11], "flags":4, "x":178, "y":0},
{"matrix":[0, 12], "flags":4, "x":194, "y":0},
{"matrix":[0, 13], "flags":1, "x":218, "y":0},
{"matrix":[1, 0], "flags":1, "x":4, "y":16},
{"matrix":[1, 1], "flags":8, "x":24, "y":16},
{"matrix":[1, 2], "flags":8, "x":40, "y":16},
{"matrix":[1, 3], "flags":8, "x":57, "y":16},
{"matrix":[1, 4], "flags":4, "x":73, "y":16},
{"matrix":[1, 5], "flags":4, "x":89, "y":16},
{"matrix":[1, 6], "flags":4, "x":105, "y":16},
{"matrix":[1, 7], "flags":4, "x":121, "y":16},
{"matrix":[1, 8], "flags":4, "x":137, "y":16},
{"matrix":[1, 9], "flags":4, "x":153, "y":16},
{"matrix":[1, 10], "flags":4, "x":170, "y":16},
{"matrix":[1, 11], "flags":4, "x":186, "y":16},
{"matrix":[1, 12], "flags":4, "x":202, "y":16},
{"matrix":[2, 0], "flags":8, "x":6, "y":32},
{"matrix":[2, 1], "flags":4, "x":28, "y":32},
{"matrix":[2, 2], "flags":4, "x":44, "y":32},
{"matrix":[2, 3], "flags":4, "x":61, "y":32},
{"matrix":[2, 4], "flags":4, "x":77, "y":32},
{"matrix":[2, 5], "flags":4, "x":93, "y":32},
{"matrix":[2, 6], "flags":4, "x":109, "y":32},
{"matrix":[2, 7], "flags":4, "x":125, "y":32},
{"matrix":[2, 8], "flags":4, "x":141, "y":32},
{"matrix":[2, 9], "flags":4, "x":157, "y":32},
{"matrix":[2, 10], "flags":4, "x":174, "y":32},
{"matrix":[2, 11], "flags":4, "x":190, "y":32},
{"matrix":[2, 13], "flags":1, "x":206, "y":32},
{"matrix":[1, 13], "flags":1, "x":222, "y":24},
{"matrix":[3, 0], "flags":1, "x":2, "y":48},
{"matrix":[3, 1], "flags":1, "x":20, "y":48},
{"matrix":[3, 2], "flags":4, "x":36, "y":48},
{"matrix":[3, 3], "flags":4, "x":53, "y":48},
{"matrix":[3, 4], "flags":4, "x":69, "y":48},
{"matrix":[3, 5], "flags":4, "x":85, "y":48},
{"matrix":[3, 6], "flags":4, "x":101, "y":48},
{"matrix":[3, 7], "flags":4, "x":117, "y":48},
{"matrix":[3, 8], "flags":4, "x":133, "y":48},
{"matrix":[3, 9], "flags":4, "x":149, "y":48},
{"matrix":[3, 10], "flags":4, "x":166, "y":48},
{"matrix":[3, 11], "flags":4, "x":182, "y":48},
{"matrix":[3, 13], "flags":1, "x":212, "y":48},
{"matrix":[4, 0], "flags":1, "x":2, "y":64},
{"matrix":[4, 1], "flags":1, "x":22, "y":64},
{"matrix":[4, 2], "flags":1, "x":42, "y":64},
{"matrix":[4, 6], "flags":4, "x":103, "y":64},
{"matrix":[4, 10], "flags":1, "x":163, "y":64},
{"matrix":[4, 11], "flags":1, "x":184, "y":64},
{"matrix":[4, 12], "flags":1, "x":204, "y":64},
{"matrix":[4, 13], "flags":1, "x":224, "y":64}
]
}
}

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_62_iso(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_62_iso(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_62_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_62_iso(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_62_iso(
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, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_62_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

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

View file

@ -0,0 +1,95 @@
/* 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, L_1, J_1, K_1},
{0, L_2, J_2, K_2},
{0, L_3, J_3, K_3},
{0, L_4, J_4, K_4},
{0, L_5, J_5, K_5},
{0, L_6, J_6, K_6},
{0, L_7, J_7, K_7},
{0, L_8, J_8, K_8},
{0, L_9, J_9, K_9},
{0, L_10, J_10, K_10},
{0, L_11, J_11, K_11},
{0, L_12, J_12, K_12},
{0, L_13, J_13, K_13},
{0, L_14, J_14, K_14},
{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, 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_14, D_14, E_14},
{0, I_14, G_14, H_14},
{0, C_1, A_1, B_1},
{0, C_2, A_2, B_2},
{0, C_3, A_3, B_3},
{0, C_4, A_4, B_4},
{0, C_5, A_5, B_5},
{0, C_6, A_6, B_6},
{0, C_7, A_7, B_7},
{0, C_8, A_8, B_8},
{0, C_9, A_9, B_9},
{0, C_10, A_10, B_10},
{0, C_11, A_11, B_11},
{0, C_12, A_12, B_12},
{0, C_14, A_14, B_14},
{0, C_15, A_15, B_15},
{0, C_16, A_16, B_16},
{0, F_15, D_15, E_15},
{0, F_16, D_16, E_16},
{0, I_15, G_15, H_15},
{0, I_16, G_16, H_16},
{0, L_15, J_15, K_15},
{0, L_16, J_16, K_16},
};
#endif

View file

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

View file

@ -0,0 +1,54 @@
/* 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 62
/* 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 index */
# define DIM_CAPS_LOCK
# define CAPS_LOCK_INDEX 27
# define LOW_BAT_IND_INDEX 57
// 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 the first 5 channels of led driver */
# define PHASE_CHANNEL MSKPHASE_5CHANNEL
/* Set LED driver current */
# define CKLED2001_CURRENT_TUNE \
{ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 }
#endif

View file

@ -0,0 +1,98 @@
{
"usb": {
"pid": "0x0294",
"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":4, "x":16, "y":0},
{"matrix":[0, 2], "flags":4, "x":32, "y":0},
{"matrix":[0, 3], "flags":4, "x":48, "y":0},
{"matrix":[0, 4], "flags":4, "x":65, "y":0},
{"matrix":[0, 5], "flags":4, "x":81, "y":0},
{"matrix":[0, 6], "flags":4, "x":97, "y":0},
{"matrix":[0, 7], "flags":4, "x":113, "y":0},
{"matrix":[0, 8], "flags":4, "x":129, "y":0},
{"matrix":[0, 9], "flags":4, "x":145, "y":0},
{"matrix":[0, 10], "flags":4, "x":161, "y":0},
{"matrix":[0, 11], "flags":4, "x":178, "y":0},
{"matrix":[0, 12], "flags":4, "x":194, "y":0},
{"matrix":[0, 13], "flags":1, "x":218, "y":0},
{"matrix":[1, 0], "flags":1, "x":4, "y":16},
{"matrix":[1, 1], "flags":8, "x":24, "y":16},
{"matrix":[1, 2], "flags":8, "x":40, "y":16},
{"matrix":[1, 3], "flags":8, "x":57, "y":16},
{"matrix":[1, 4], "flags":4, "x":73, "y":16},
{"matrix":[1, 5], "flags":4, "x":89, "y":16},
{"matrix":[1, 6], "flags":4, "x":105, "y":16},
{"matrix":[1, 7], "flags":4, "x":121, "y":16},
{"matrix":[1, 8], "flags":4, "x":137, "y":16},
{"matrix":[1, 9], "flags":4, "x":153, "y":16},
{"matrix":[1, 10], "flags":4, "x":170, "y":16},
{"matrix":[1, 11], "flags":4, "x":186, "y":16},
{"matrix":[1, 12], "flags":4, "x":202, "y":16},
{"matrix":[2, 0], "flags":8, "x":6, "y":32},
{"matrix":[2, 1], "flags":4, "x":28, "y":32},
{"matrix":[2, 2], "flags":4, "x":44, "y":32},
{"matrix":[2, 3], "flags":4, "x":61, "y":32},
{"matrix":[2, 4], "flags":4, "x":77, "y":32},
{"matrix":[2, 5], "flags":4, "x":93, "y":32},
{"matrix":[2, 6], "flags":4, "x":109, "y":32},
{"matrix":[2, 7], "flags":4, "x":125, "y":32},
{"matrix":[2, 8], "flags":4, "x":141, "y":32},
{"matrix":[2, 9], "flags":4, "x":157, "y":32},
{"matrix":[2, 10], "flags":4, "x":174, "y":32},
{"matrix":[2, 11], "flags":4, "x":190, "y":32},
{"matrix":[2, 13], "flags":1, "x":206, "y":32},
{"matrix":[1, 13], "flags":1, "x":222, "y":24},
{"matrix":[3, 0], "flags":1, "x":2, "y":48},
{"matrix":[3, 1], "flags":1, "x":20, "y":48},
{"matrix":[3, 2], "flags":4, "x":36, "y":48},
{"matrix":[3, 3], "flags":4, "x":53, "y":48},
{"matrix":[3, 4], "flags":4, "x":69, "y":48},
{"matrix":[3, 5], "flags":4, "x":85, "y":48},
{"matrix":[3, 6], "flags":4, "x":101, "y":48},
{"matrix":[3, 7], "flags":4, "x":117, "y":48},
{"matrix":[3, 8], "flags":4, "x":133, "y":48},
{"matrix":[3, 9], "flags":4, "x":149, "y":48},
{"matrix":[3, 10], "flags":4, "x":166, "y":48},
{"matrix":[3, 11], "flags":4, "x":182, "y":48},
{"matrix":[3, 13], "flags":1, "x":212, "y":48},
{"matrix":[4, 0], "flags":1, "x":2, "y":64},
{"matrix":[4, 1], "flags":1, "x":22, "y":64},
{"matrix":[4, 2], "flags":1, "x":42, "y":64},
{"matrix":[4, 6], "flags":4, "x":103, "y":64},
{"matrix":[4, 10], "flags":1, "x":163, "y":64},
{"matrix":[4, 11], "flags":1, "x":184, "y":64},
{"matrix":[4, 12], "flags":1, "x":204, "y":64},
{"matrix":[4, 13], "flags":1, "x":224, "y":64}
]
}
}

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_62_iso(
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, _______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_62_iso(
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, _______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_62_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_62_iso(
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_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_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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_62_iso(
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, _______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_62_iso(
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, _______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_62_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, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View file

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

View file

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

View file

@ -0,0 +1,93 @@
/* 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/>.g
*/
#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, A_1},
{0, A_2},
{0, A_3},
{0, A_4},
{0, A_5},
{0, A_6},
{0, A_7},
{0, A_8},
{0, A_9},
{0, A_10},
{0, A_11},
{0, A_12},
{0, A_13},
{0, A_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_13},
{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, B_14},
{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_14},
{0, C_15},
{0, C_16},
{0, D_15},
{0, D_16},
{0, B_15},
{0, B_16},
{0, A_15},
{0, A_16},
};
#endif

View file

@ -0,0 +1,87 @@
{
"matrix_pins": {
"rows": ["B4", "B3", "A15", "A14", "A13"],
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
"custom": true,
"custom_lite": true
},
"matrix_size": {
"rows": 5,
"cols": 15
},
"layouts": {
"LAYOUT_65_jis": {
"layout": [
{"matrix":[0,0], "x":0, "y":0},
{"matrix":[0,1], "x":1, "y":0},
{"matrix":[0,2], "x":2, "y":0},
{"matrix":[0,3], "x":3, "y":0},
{"matrix":[0,4], "x":4, "y":0},
{"matrix":[0,5], "x":5, "y":0},
{"matrix":[0,6], "x":6, "y":0},
{"matrix":[0,7], "x":7, "y":0},
{"matrix":[0,8], "x":8, "y":0},
{"matrix":[0,9], "x":9, "y":0},
{"matrix":[0,10], "x":10, "y":0},
{"matrix":[0,11], "x":11, "y":0},
{"matrix":[0,12], "x":12, "y":0},
{"matrix":[0,13], "x":13, "y":0},
{"matrix":[0,14], "x":14, "y":0},
{"matrix":[1,0], "x":0, "y":1, "w":1.5},
{"matrix":[1,1], "x":1.5, "y":1},
{"matrix":[1,2], "x":2.5, "y":1},
{"matrix":[1,3], "x":3.5, "y":1},
{"matrix":[1,4], "x":4.5, "y":1},
{"matrix":[1,5], "x":5.5, "y":1},
{"matrix":[1,6], "x":6.5, "y":1},
{"matrix":[1,7], "x":7.5, "y":1},
{"matrix":[1,8], "x":8.5, "y":1},
{"matrix":[1,9], "x":9.5, "y":1},
{"matrix":[1,10], "x":10.5, "y":1},
{"matrix":[1,11], "x":11.5, "y":1},
{"matrix":[1,12], "x":12.5, "y":1},
{"matrix":[2,0], "x":0, "y":2, "w":1.75},
{"matrix":[2,1], "x":1.75, "y":2},
{"matrix":[2,2], "x":2.75, "y":2},
{"matrix":[2,3], "x":3.75, "y":2},
{"matrix":[2,4], "x":4.75, "y":2},
{"matrix":[2,5], "x":5.75, "y":2},
{"matrix":[2,6], "x":6.75, "y":2},
{"matrix":[2,7], "x":7.75, "y":2},
{"matrix":[2,8], "x":8.75, "y":2},
{"matrix":[2,9], "x":9.75, "y":2},
{"matrix":[2,10], "x":10.75, "y":2},
{"matrix":[2,11], "x":11.75, "y":2},
{"matrix":[2,13], "x":12.75, "y":2},
{"matrix":[1,13], "x":13.75, "y":1, "w":1.25, "h":2},
{"matrix":[3,0], "x":0, "y":3, "w":2.25},
{"matrix":[3,2], "x":2.25, "y":3},
{"matrix":[3,3], "x":3.25, "y":3},
{"matrix":[3,4], "x":4.25, "y":3},
{"matrix":[3,5], "x":5.25, "y":3},
{"matrix":[3,6], "x":6.25, "y":3},
{"matrix":[3,7], "x":7.25, "y":3},
{"matrix":[3,8], "x":8.25, "y":3},
{"matrix":[3,9], "x":9.25, "y":3},
{"matrix":[3,10], "x":10.25, "y":3},
{"matrix":[3,11], "x":11.25, "y":3},
{"matrix":[3,12], "x":12.25, "y":3},
{"matrix":[3,13], "x":13.25, "y":3, "w":1.75},
{"matrix":[4,0], "x":0, "y":4, "w":1.25},
{"matrix":[4,1], "x":1.25, "y":4},
{"matrix":[4,2], "x":2.25, "y":4, "w":1.25},
{"matrix":[4,3], "x":3.5, "y":4},
{"matrix":[4,6], "x":4.5, "y":4, "w":5},
{"matrix":[4,9], "x":9.5, "y":4, "w":1.25},
{"matrix":[4,10], "x":10.75, "y":4},
{"matrix":[4,11], "x":11.75, "y":4},
{"matrix":[4,12], "x":12.75, "y":4},
{"matrix":[4,13], "x":13.75, "y":4, "w":1.25}
]
}
}
}

View file

@ -0,0 +1,62 @@
/* 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_COUNT 29
# define DRIVER_2_LED_COUNT 36
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_COUNT + DRIVER_2_LED_COUNT)
/* Set to infinite, which is use in USB mode by default */
# define RGB_MATRIX_TIMEOUT RGB_MATRIX_TIMEOUT_INFINITE
/* Allow shutdown of led driver to save power */
# define RGB_MATRIX_DRIVER_SHUTDOWN_ENABLE
/* Turn off backlight on low brightness to save power */
# define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 48
# define DIM_CAPS_LOCK
# define CAPS_LOCK_INDEX 28
# define LOW_BAT_IND_INDEX 59
# ifdef KC_BLUETOOTH_ENABLE
# undef HOST_LED_MATRIX_LIST
# define HOST_LED_MATRIX_LIST \
{ 16, 17, 18 }
# endif
/* 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_EFFECTS
/* Use first 9 channels of LED driver */
# define PHASE_CHANNEL MSKPHASE_9CHANNEL
/* Set LED driver current */
# define CKLED2001_CURRENT_TUNE \
{ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
#endif

View file

@ -0,0 +1,106 @@
{
"usb": {
"pid": "0x0292",
"device_version": "1.0.0"
},
"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":4, "x":16, "y":0},
{"matrix":[0, 2], "flags":4, "x":32, "y":0},
{"matrix":[0, 3], "flags":4, "x":48, "y":0},
{"matrix":[0, 4], "flags":4, "x":64, "y":0},
{"matrix":[0, 5], "flags":4, "x":80, "y":0},
{"matrix":[0, 6], "flags":4, "x":96, "y":0},
{"matrix":[0, 7], "flags":4, "x":112, "y":0},
{"matrix":[0, 8], "flags":4, "x":128, "y":0},
{"matrix":[0, 9], "flags":4, "x":144, "y":0},
{"matrix":[0, 10], "flags":4, "x":160, "y":0},
{"matrix":[0, 11], "flags":4, "x":176, "y":0},
{"matrix":[0, 12], "flags":4, "x":192, "y":0},
{"matrix":[0, 13], "flags":1, "x":208, "y":0},
{"matrix":[0, 14], "flags":1, "x":224, "y":0},
{"matrix":[1, 0], "flags":1, "x":4, "y":16},
{"matrix":[1, 1], "flags":8, "x":24, "y":16},
{"matrix":[1, 2], "flags":8, "x":40, "y":16},
{"matrix":[1, 3], "flags":8, "x":56, "y":16},
{"matrix":[1, 4], "flags":4, "x":72, "y":16},
{"matrix":[1, 5], "flags":4, "x":88, "y":16},
{"matrix":[1, 6], "flags":4, "x":104, "y":16},
{"matrix":[1, 7], "flags":4, "x":120, "y":16},
{"matrix":[1, 8], "flags":4, "x":136, "y":16},
{"matrix":[1, 9], "flags":4, "x":152, "y":16},
{"matrix":[1, 10], "flags":4, "x":168, "y":16},
{"matrix":[1, 11], "flags":4, "x":184, "y":16},
{"matrix":[1, 12], "flags":4, "x":200, "y":16},
{"matrix":[2, 0], "flags":8, "x":6, "y":32},
{"matrix":[2, 1], "flags":4, "x":28, "y":32},
{"matrix":[2, 2], "flags":4, "x":44, "y":32},
{"matrix":[2, 3], "flags":4, "x":60, "y":32},
{"matrix":[2, 4], "flags":4, "x":76, "y":32},
{"matrix":[2, 5], "flags":4, "x":92, "y":32},
{"matrix":[2, 6], "flags":4, "x":108, "y":32},
{"matrix":[2, 7], "flags":4, "x":124, "y":32},
{"matrix":[2, 8], "flags":4, "x":140, "y":32},
{"matrix":[2, 9], "flags":4, "x":156, "y":32},
{"matrix":[2, 10], "flags":4, "x":172, "y":32},
{"matrix":[2, 11], "flags":4, "x":188, "y":32},
{"matrix":[2, 13], "flags":1, "x":204, "y":32},
{"matrix":[1, 13], "flags":1, "x":222, "y":24},
{"matrix":[3, 0], "flags":1, "x":10, "y":48},
{"matrix":[3, 2], "flags":4, "x":36, "y":48},
{"matrix":[3, 3], "flags":4, "x":52, "y":48},
{"matrix":[3, 4], "flags":4, "x":68, "y":48},
{"matrix":[3, 5], "flags":4, "x":84, "y":48},
{"matrix":[3, 6], "flags":4, "x":100, "y":48},
{"matrix":[3, 7], "flags":4, "x":116, "y":48},
{"matrix":[3, 8], "flags":4, "x":132, "y":48},
{"matrix":[3, 9], "flags":4, "x":148, "y":48},
{"matrix":[3, 10], "flags":4, "x":164, "y":48},
{"matrix":[3, 11], "flags":4, "x":180, "y":48},
{"matrix":[3, 12], "flags":1, "x":196, "y":48},
{"matrix":[3, 13], "flags":1, "x":218, "y":48},
{"matrix":[4, 0], "flags":1, "x":2, "y":64},
{"matrix":[4, 1], "flags":1, "x":20, "y":64},
{"matrix":[4, 2], "flags":1, "x":38, "y":64},
{"matrix":[4, 3], "flags":1, "x":56, "y":64},
{"matrix":[4, 6], "flags":4, "x":104, "y":64},
{"matrix":[4, 9], "flags":1, "x":154, "y":64},
{"matrix":[4, 10], "flags":1, "x":172, "y":64},
{"matrix":[4, 11], "flags":1, "x":188, "y":64},
{"matrix":[4, 12], "flags":1, "x":204, "y":64},
{"matrix":[4, 13], "flags":1, "x":222, "y":64}
]
}
}

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_65_jis(
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, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_65_jis(
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, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_65_jis(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_65_jis(
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, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_65_jis(
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, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_65_jis(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View file

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

View file

@ -0,0 +1,98 @@
/* 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, 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_14, C_14, B_14},
{0, A_15, C_15, B_15},
{0, D_1, F_1, E_1},
{0, D_2, F_2, E_2},
{0, D_3, F_3, E_3},
{0, D_4, F_4, E_4},
{0, D_5, F_5, E_5},
{0, D_6, F_6, E_6},
{0, D_7, F_7, E_7},
{0, D_8, F_8, E_8},
{0, D_9, F_9, E_9},
{0, D_10, F_10, E_10},
{0, D_11, F_11, E_11},
{0, D_12, F_12, E_12},
{0, D_13, F_13, E_13},
{1, F_1, D_1, E_1},
{1, F_2, D_2, E_2},
{1, F_3, D_3, E_3},
{1, F_4, D_4, E_4},
{1, F_5, D_5, E_5},
{1, F_6, D_6, E_6},
{1, F_7, D_7, E_7},
{1, F_8, D_8, E_8},
{1, F_9, D_9, E_9},
{1, F_10, D_10, E_10},
{1, F_11, D_11, E_11},
{1, F_12, D_12, E_12},
{1, F_14, D_14, E_14},
{0, D_14, F_14, E_14},
{1, C_1, A_1, B_1},
{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_13, A_13, B_13},
{1, C_14, A_14, B_14},
{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_7, G_7, H_7},
{1, I_10, G_10, H_10},
{1, I_11, G_11, H_11},
{1, I_12, G_12, H_12},
{1, I_13, G_13, H_13},
{1, I_14, G_14, H_14},
};
#endif

View file

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

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/>.
*/
#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 65
/* 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
# define DIM_CAPS_LOCK
# define CAPS_LOCK_INDEX 28
# define LOW_BAT_IND_INDEX 59
# ifdef KC_BLUETOOTH_ENABLE
# undef HOST_LED_MATRIX_LIST
# define HOST_LED_MATRIX_LIST \
{ 16, 17, 18 }
# endif
// 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 5 channels of LED driver */
# define PHASE_CHANNEL MSKPHASE_5CHANNEL
/* Set LED driver current */
# define CKLED2001_CURRENT_TUNE \
{ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 }
#endif

View file

@ -0,0 +1,101 @@
{
"usb": {
"pid": "0x0295",
"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":4, "x":16, "y":0},
{"matrix":[0, 2], "flags":4, "x":32, "y":0},
{"matrix":[0, 3], "flags":4, "x":48, "y":0},
{"matrix":[0, 4], "flags":4, "x":64, "y":0},
{"matrix":[0, 5], "flags":4, "x":80, "y":0},
{"matrix":[0, 6], "flags":4, "x":96, "y":0},
{"matrix":[0, 7], "flags":4, "x":112, "y":0},
{"matrix":[0, 8], "flags":4, "x":128, "y":0},
{"matrix":[0, 9], "flags":4, "x":144, "y":0},
{"matrix":[0, 10], "flags":4, "x":160, "y":0},
{"matrix":[0, 11], "flags":4, "x":176, "y":0},
{"matrix":[0, 12], "flags":4, "x":192, "y":0},
{"matrix":[0, 13], "flags":1, "x":208, "y":0},
{"matrix":[0, 14], "flags":1, "x":224, "y":0},
{"matrix":[1, 0], "flags":1, "x":4, "y":16},
{"matrix":[1, 1], "flags":8, "x":24, "y":16},
{"matrix":[1, 2], "flags":8, "x":40, "y":16},
{"matrix":[1, 3], "flags":8, "x":56, "y":16},
{"matrix":[1, 4], "flags":4, "x":72, "y":16},
{"matrix":[1, 5], "flags":4, "x":88, "y":16},
{"matrix":[1, 6], "flags":4, "x":104, "y":16},
{"matrix":[1, 7], "flags":4, "x":120, "y":16},
{"matrix":[1, 8], "flags":4, "x":136, "y":16},
{"matrix":[1, 9], "flags":4, "x":152, "y":16},
{"matrix":[1, 10], "flags":4, "x":168, "y":16},
{"matrix":[1, 11], "flags":4, "x":184, "y":16},
{"matrix":[1, 12], "flags":4, "x":200, "y":16},
{"matrix":[2, 0], "flags":8, "x":6, "y":32},
{"matrix":[2, 1], "flags":4, "x":28, "y":32},
{"matrix":[2, 2], "flags":4, "x":44, "y":32},
{"matrix":[2, 3], "flags":4, "x":60, "y":32},
{"matrix":[2, 4], "flags":4, "x":76, "y":32},
{"matrix":[2, 5], "flags":4, "x":92, "y":32},
{"matrix":[2, 6], "flags":4, "x":108, "y":32},
{"matrix":[2, 7], "flags":4, "x":124, "y":32},
{"matrix":[2, 8], "flags":4, "x":140, "y":32},
{"matrix":[2, 9], "flags":4, "x":156, "y":32},
{"matrix":[2, 10], "flags":4, "x":172, "y":32},
{"matrix":[2, 11], "flags":4, "x":188, "y":32},
{"matrix":[2, 13], "flags":1, "x":204, "y":32},
{"matrix":[1, 13], "flags":1, "x":222, "y":24},
{"matrix":[3, 0], "flags":1, "x":10, "y":48},
{"matrix":[3, 2], "flags":4, "x":36, "y":48},
{"matrix":[3, 3], "flags":4, "x":52, "y":48},
{"matrix":[3, 4], "flags":4, "x":68, "y":48},
{"matrix":[3, 5], "flags":4, "x":84, "y":48},
{"matrix":[3, 6], "flags":4, "x":100, "y":48},
{"matrix":[3, 7], "flags":4, "x":116, "y":48},
{"matrix":[3, 8], "flags":4, "x":132, "y":48},
{"matrix":[3, 9], "flags":4, "x":148, "y":48},
{"matrix":[3, 10], "flags":4, "x":164, "y":48},
{"matrix":[3, 11], "flags":4, "x":180, "y":48},
{"matrix":[3, 12], "flags":1, "x":196, "y":48},
{"matrix":[3, 13], "flags":1, "x":218, "y":48},
{"matrix":[4, 0], "flags":1, "x":2, "y":64},
{"matrix":[4, 1], "flags":1, "x":20, "y":64},
{"matrix":[4, 2], "flags":1, "x":38, "y":64},
{"matrix":[4, 3], "flags":1, "x":56, "y":64},
{"matrix":[4, 6], "flags":4, "x":104, "y":64},
{"matrix":[4, 9], "flags":1, "x":154, "y":64},
{"matrix":[4, 10], "flags":1, "x":172, "y":64},
{"matrix":[4, 11], "flags":1, "x":188, "y":64},
{"matrix":[4, 12], "flags":1, "x":204, "y":64},
{"matrix":[4, 13], "flags":1, "x":222, "y":64}
]
}
}

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_65_jis(
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_65_jis(
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_65_jis(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View file

@ -0,0 +1,63 @@
/* 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,
WIN_BASE,
MAC_FN,
WIN_FN,
FN1,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(MAC_FN),MO(FN1), KC_RCTL),
[WIN_BASE] = LAYOUT_65_jis(
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_INT3, KC_BSPC,
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN),MO(FN1), KC_RCTL),
[MAC_FN] = LAYOUT_65_jis(
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_FN] = LAYOUT_65_jis(
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, BT_HST1, BT_HST2, BT_HST3, _______, _______, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME,
BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______,
_______, _______, BL_DOWN, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[FN1] = LAYOUT_65_jis(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, BAT_LVL, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View file

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

View file

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

View file

@ -0,0 +1,96 @@
/* 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 HNU Heneral 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
* HNU Heneral Public License for more details.
*
* You should have received a copy of the HNU Heneral Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.g
*/
#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, A_1},
{0, A_2},
{0, A_3},
{0, A_4},
{0, A_5},
{0, A_6},
{0, A_7},
{0, A_8},
{0, A_9},
{0, A_10},
{0, A_11},
{0, A_12},
{0, A_13},
{0, A_14},
{0, A_15},
{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_13},
{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, B_14},
{0, D_1},
{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_14},
{0, E_1},
{0, E_2},
{0, E_3},
{0, E_4},
{0, E_7},
{0, E_10},
{0, E_11},
{0, E_12},
{0, E_13},
{0, E_14},
};
#endif

View file

@ -36,9 +36,10 @@ typedef struct PACKED {
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)
@ -141,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.
@ -160,6 +162,16 @@ void keyboard_post_init_kb(void) {
void matrix_scan_kb(void) {
if (power_on_indicator_timer_buffer) {
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 (sync_timer_elapsed32(power_on_indicator_timer_buffer) > POWER_ON_LED_DURATION) {
power_on_indicator_timer_buffer = 0;
writePin(BAT_LOW_LED_PIN, !BAT_LOW_LED_PIN_ON_STATE);
@ -183,7 +195,6 @@ 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);
/* Set bluetooth parameters */
module_param_t param = {.event_mode = 0x02,
@ -200,8 +211,8 @@ static void ckbt51_param_init(void) {
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

@ -6,15 +6,25 @@ A customizable 60% keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron K9 Pro
* Hardware Availability: [Keychron K9 Pro]()
* Hardware Availability: [Keychron K9 Pro QMK/VIA Wireless Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-k9-pro-qmk-via-wireless-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
make keychron/k9_pro/ansi/rgb:default
make keychron/k9_pro/ansi/white:default
make keychron/k9_pro/iso/rgb:default
make keychron/k9_pro/iso/white:default
make keychron/k9_pro/jis/rgb:default
make keychron/k9_pro/jis/white:default
Flashing example for this keyboard:
make keychron/k9_pro/ansi/rgb:default:flash
make keychron/k9_pro/ansi/white:default:flash
make keychron/k9_pro/iso/rgb:default:flash
make keychron/k9_pro/iso/white:default:flash
make keychron/k9_pro/jis/rgb:default:flash
make keychron/k9_pro/jis/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".