Refacto from reviews

This commit is contained in:
Ciaanh 2023-05-21 20:06:08 +02:00
parent b1bf7d7ef3
commit 8e7fb4eb92
11 changed files with 571 additions and 506 deletions

View File

@ -1,60 +0,0 @@
/* Copyright 2023 Ciaanh (@ciaanh)
*
* 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"
#define NA NO_LED
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = {
{
// Key Matrix to LED Index
{ 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, NA },
{ 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13 },
{ 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27 },
{ 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 66 },
{ 65, NA, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 67 },
{ 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68 }
},
{
// LED Index to Physical Position
{189, 0}, {175, 0}, {161, 0}, {147, 0}, {126, 0}, {112, 0}, { 98, 0}, { 84, 0}, { 63, 0}, { 49, 0}, { 35, 0}, { 21, 0}, { 0, 0},
{189, 12}, {168, 12}, {154, 12}, {140, 12}, {126, 12}, {112, 12}, { 98, 12}, { 84, 12}, { 70, 12}, { 56, 12}, { 42, 12}, { 28, 12}, { 14, 12}, { 0, 12},
{189, 23}, {179, 23}, {161, 23}, {147, 23}, {133, 23}, {119, 23}, {105, 23}, { 91, 23}, { 77, 23}, { 63, 23}, { 49, 23}, { 35, 23}, { 21, 23}, { 4, 23},
{187, 35}, {165, 35}, {151, 35}, {137, 35}, {123, 35}, {109, 35}, { 95, 35}, { 81, 35}, { 67, 35}, { 53, 35}, { 39, 35}, { 25, 35}, { 5, 35},
{177, 47}, {158, 47}, {144, 47}, {130, 47}, {116, 47}, {102, 47}, { 88, 47}, { 74, 47}, { 60, 47}, { 46, 47}, { 32, 47}, { 9, 47},
{224, 12},
{224, 23},
{224, 35},
{214, 61},
{200, 49}, {200, 61}, {186, 61}, {168, 58}, {154, 58}, {140, 58}, {114, 64}, { 82, 64}, { 70, 58}, { 32, 58}, { 16, 58}, { 0, 58},
},
{
// LED Index to Flag
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
4,
4,
4, 4,
4, 4, 4, 1, 1, 1, 4, 4, 1, 1, 1, 1,
}};
#endif

View File

@ -8,18 +8,39 @@
"pid": "0x0010",
"device_version": "2.1.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"matrix_size": {
"cols": 14,
"rows": 6
},
"matrix_pins": {
"rows": ["GP28", "GP27", "GP26", "GP22", "GP21", "GP20"],
"cols": ["GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18"]
},
"features": {
"audio": false,
"backlight": false,
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": false,
"nkro": false,
"rgb_matrix": true,
"rgblight": false
},
"encoder": {
"rotary": [
{"pin_a": "GP2", "pin_b": "GP3"}
]
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"rows": ["GP28", "GP27", "GP26", "GP22", "GP21", "GP20"],
"cols": ["GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18"]
"bootmagic": {
"enabled": true,
"matrix": [0, 13]
},
"processor": "RP2040",
"bootloader": "rp2040",
"layouts": {
"LAYOUT": {
@ -119,5 +140,100 @@
{ "label": "Right", "matrix": [5, 11], "x": 15.25, "y": 5.25 }
]
}
},
"rgb_matrix": {
"driver": "WS2812",
"center_point": [ 90, 28],
"layout": [
{ "flags": 4,"matrix": [0,12],"x": 189, "y": 0 },
{ "flags": 4,"matrix": [0,11],"x": 175, "y": 0 },
{ "flags": 4,"matrix": [0,10],"x": 161, "y": 0 },
{ "flags": 4,"matrix": [0, 9],"x": 147, "y": 0 },
{ "flags": 4,"matrix": [0, 8],"x": 126, "y": 0 },
{ "flags": 4,"matrix": [0, 7],"x": 112, "y": 0 },
{ "flags": 4,"matrix": [0, 6],"x": 98, "y": 0 },
{ "flags": 4,"matrix": [0, 5],"x": 84, "y": 0 },
{ "flags": 4,"matrix": [0, 4],"x": 63, "y": 0 },
{ "flags": 4,"matrix": [0, 3],"x": 49, "y": 0 },
{ "flags": 4,"matrix": [0, 2],"x": 35, "y": 0 },
{ "flags": 4,"matrix": [0, 1],"x": 21, "y": 0 },
{ "flags": 4,"matrix": [0, 0],"x": 0, "y": 0 },
{ "flags": 1,"matrix": [1,13],"x": 189, "y": 12 },
{ "flags": 4,"matrix": [1,12],"x": 168, "y": 12 },
{ "flags": 4,"matrix": [1,11],"x": 154, "y": 12 },
{ "flags": 4,"matrix": [1,10],"x": 140, "y": 12 },
{ "flags": 4,"matrix": [1, 9],"x": 126, "y": 12 },
{ "flags": 4,"matrix": [1, 8],"x": 112, "y": 12 },
{ "flags": 4,"matrix": [1, 7],"x": 98, "y": 12 },
{ "flags": 4,"matrix": [1, 6],"x": 84, "y": 12 },
{ "flags": 4,"matrix": [1, 5],"x": 70, "y": 12 },
{ "flags": 4,"matrix": [1, 4],"x": 56, "y": 12 },
{ "flags": 4,"matrix": [1, 3],"x": 42, "y": 12 },
{ "flags": 4,"matrix": [1, 2],"x": 28, "y": 12 },
{ "flags": 4,"matrix": [1, 1],"x": 14, "y": 12 },
{ "flags": 4,"matrix": [1, 0],"x": 0, "y": 12 },
{ "flags": 1,"matrix": [2,13],"x": 189, "y": 23 },
{ "flags": 4,"matrix": [2,12],"x": 179, "y": 23 },
{ "flags": 4,"matrix": [2,11],"x": 161, "y": 23 },
{ "flags": 4,"matrix": [2,10],"x": 147, "y": 23 },
{ "flags": 4,"matrix": [2, 9],"x": 133, "y": 23 },
{ "flags": 4,"matrix": [2, 8],"x": 119, "y": 23 },
{ "flags": 4,"matrix": [2, 7],"x": 105, "y": 23 },
{ "flags": 4,"matrix": [2, 6],"x": 91, "y": 23 },
{ "flags": 4,"matrix": [2, 5],"x": 77, "y": 23 },
{ "flags": 4,"matrix": [2, 4],"x": 63, "y": 23 },
{ "flags": 4,"matrix": [2, 3],"x": 49, "y": 23 },
{ "flags": 4,"matrix": [2, 2],"x": 35, "y": 23 },
{ "flags": 4,"matrix": [2, 1],"x": 21, "y": 23 },
{ "flags": 1,"matrix": [2, 0],"x": 4, "y": 23 },
{ "flags": 1,"matrix": [3,12],"x": 187, "y": 35 },
{ "flags": 4,"matrix": [3,11],"x": 165, "y": 35 },
{ "flags": 4,"matrix": [3,10],"x": 151, "y": 35 },
{ "flags": 4,"matrix": [3, 9],"x": 137, "y": 35 },
{ "flags": 4,"matrix": [3, 8],"x": 123, "y": 35 },
{ "flags": 4,"matrix": [3, 7],"x": 109, "y": 35 },
{ "flags": 4,"matrix": [3, 6],"x": 95, "y": 35 },
{ "flags": 4,"matrix": [3, 5],"x": 81, "y": 35 },
{ "flags": 4,"matrix": [3, 4],"x": 67, "y": 35 },
{ "flags": 4,"matrix": [3, 3],"x": 53, "y": 35 },
{ "flags": 4,"matrix": [3, 2],"x": 39, "y": 35 },
{ "flags": 4,"matrix": [3, 1],"x": 25, "y": 35 },
{ "flags": 1,"matrix": [3, 0],"x": 5, "y": 35 },
{ "flags": 1,"matrix": [4,12],"x": 177, "y": 47 },
{ "flags": 4,"matrix": [4,11],"x": 158, "y": 47 },
{ "flags": 4,"matrix": [4,10],"x": 144, "y": 47 },
{ "flags": 4,"matrix": [4, 9],"x": 130, "y": 47 },
{ "flags": 4,"matrix": [4, 8],"x": 116, "y": 47 },
{ "flags": 4,"matrix": [4, 7],"x": 102, "y": 47 },
{ "flags": 4,"matrix": [4, 6],"x": 88, "y": 47 },
{ "flags": 4,"matrix": [4, 5],"x": 74, "y": 47 },
{ "flags": 4,"matrix": [4, 4],"x": 60, "y": 47 },
{ "flags": 4,"matrix": [4, 3],"x": 46, "y": 47 },
{ "flags": 4,"matrix": [4, 2],"x": 32, "y": 47 },
{ "flags": 1,"matrix": [4, 0],"x": 9, "y": 47 },
{ "flags": 1,"matrix": [3,13],"x": 224, "y": 12 },
{ "flags": 4,"matrix": [4,13],"x": 224, "y": 23 },
{ "flags": 4,"matrix": [5,13],"x": 224, "y": 35 },
{ "flags": 4,"matrix": [5,11],"x": 214, "y": 61 },
{ "flags": 4,"matrix": [5,12],"x": 200, "y": 49 },
{ "flags": 4,"matrix": [5,10],"x": 200, "y": 61 },
{ "flags": 4,"matrix": [5, 9],"x": 186, "y": 61 },
{ "flags": 1,"matrix": [5, 8],"x": 168, "y": 58 },
{ "flags": 1,"matrix": [5, 7],"x": 154, "y": 58 },
{ "flags": 1,"matrix": [5, 6],"x": 140, "y": 58 },
{ "flags": 4,"matrix": [5, 5],"x": 114, "y": 64 },
{ "flags": 4,"matrix": [5, 4],"x": 82, "y": 64 },
{ "flags": 1,"matrix": [5, 3],"x": 70, "y": 58 },
{ "flags": 1,"matrix": [5, 2],"x": 32, "y": 58 },
{ "flags": 1,"matrix": [5, 1],"x": 16, "y": 58 },
{ "flags": 1,"matrix": [5, 0],"x": 0, "y": 58 }
]
}
}

View File

@ -0,0 +1,165 @@
/* Copyright 2023 Ciaanh (@ciaanh)
*
* 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
#define ___ KC_NO
enum layers
{
_BASE,
_LOWER,
_RAISE,
_ADJUST
};
enum custom_keycodes
{
CUSTOMKEY = SAFE_RANGE,
};
#define TO_BASE TO(_BASE)
#define TG_LOW TG(_LOWER)
#define TG_UP TG(_RAISE)
#define _SCRNSHOT LSFT(LGUI(KC_S))
/* Keyboard layout
* ,---------. ,---------------------------------------. ,---------------------------------------. ,---------------------------------------. ,---------.
* | ka0 | | ka1 | ka2 | ka3 | ka4 | | ka5 | ka6 | ka7 | ka8 | | ka9 | ka10 | ka11 | ka12 | | sw99 |
* `---------' `---------+---------+---------+---------' `---------+---------+---------+---------' `---------+---------+---------+---------' `---------'
* ,-------------------------------------------------------------------------------------------------------------------------------------------. ,---------.
* | kb0 | kb1 | kb2 | kb3 | kb4 | kb5 | kb6 | kb7 | kb8 | kb9 | kb10 | kb11 | kb12 | kb13 | | kd13 |
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| |---------|
* | kc0 | kc1 | kc2 | kc3 | kc4 | kc5 | kc6 | kc7 | kc8 | kc9 | kc10 | kc11 | kc12 | kc13 | | ke13 |
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' |---------|
* | kd0 | kd1 | kd2 | kd3 | kd4 | kd5 | kd6 | kd7 | kd8 | kd9 | kd10 | kd11 | kd12 | | kf13 |
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'---------' `---------'
* | ke0 | --- | ke2 | ke3 | ke4 | ke5 | ke6 | ke7 | ke8 | ke9 | ke10 | ke11 | ke12 | ,---------.
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | kf12 |
* | kf0 | kf1 | kf2 | kf3 | ,---------. ,---------. | kf6 | kf7 | kf8 | ,---------|---------|---------.
* `---------+---------+---------+---------+ | kf4 | | kf5 | +---------+---------+---------' | kf9 | kf10 | kf11 |
* `---------' `---------' `---------+---------+---------'
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap: BASE
* ,---------. ,---------------------------------------. ,---------------------------------------. ,---------------------------------------. ,---------.
* | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 | | ENCODER |
* `---------' `---------+---------+---------+---------' `---------+---------+---------+---------' `---------+---------+---------+---------' `---------'
* ,-------------------------------------------------------------------------------------------------------------------------------------------. ,---------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backspace| | Delete |
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| |---------|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | HOME |
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' |---------|
* | CapsL | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | | END |
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'---------' `---------'
* | LShift | --- | Z | X | C | V | B | N | M | , | . | / | RShift | ,---------.
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | UP |
* | LCtrl | LGUI | LAlt | TG_LOW | ,---------. ,---------. | RAlt | TG_UP | RCtrl | ,---------|---------|---------.
* |---------+---------+---------+---------+ | Space | | Space | +---------+---------+---------' | LEFT | DOWN | RIGHT |
* `---------' `---------' `---------+---------+---------'
*/
[_BASE] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, \
KC_CAPS, KC_A, LT(0,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, \
KC_LSFT, XXXXXXX, KC_Z, LT(0,KC_X), LT(0,KC_C), LT(0,KC_V), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, TG_LOW, KC_SPC, KC_SPC, KC_RALT, TG_UP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
),
[_LOWER] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_SCRNSHOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, TO_BASE, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_RAISE] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, TO_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_ADJUST] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, RGB_SPD, _______, RGB_SPI, RGB_SAD, RGB_HUD, RGB_SAI \
)
};
/*****************************************************************************************************/
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CUSTOMKEY:
if (record->event.pressed) {
if (get_mods() & MOD_MASK_SHIFT) {
tap_code16(G(A(KC_K)));
} else {
tap_code(KC_MPLY);
}
}
break;
case LT(0,KC_X):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_X)); // Intercept hold function to send Ctrl-X
return false;
}
return true;
case LT(0,KC_C):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_C)); // Intercept hold function to send Ctrl-C
return false;
}
return true;
case LT(0,KC_V):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_V)); // Intercept hold function to send Ctrl-V
return false;
}
return true;
case LT(0,KC_S):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_S)); // Intercept hold function to send Ctrl-S
return false;
}
return true;
}
return true;
}
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_CODE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_FUNC] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
[_TOP] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
};
#endif

View File

@ -25,17 +25,6 @@ enum layers
_TOP
};
enum custom_keycodes
{
CUSTOMKEY = SAFE_RANGE,
};
#define TO_BASE TO(_BASE)
#define TO_FUNC TG(_FUNC)
#define L_CODE MO(_CODE)
#define _SCRNSHOT LSFT(LGUI(KC_S))
/* Keyboard layout
* ,---------. ,---------------------------------------. ,---------------------------------------. ,---------------------------------------. ,---------.
* | ka0 | | ka1 | ka2 | ka3 | ka4 | | ka5 | ka6 | ka7 | ka8 | | ka9 | ka10 | ka11 | ka12 | | sw99 |
@ -73,99 +62,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `---------' `---------' `---------+---------+---------'
*/
[_BASE] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, \
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, \
KC_CAPS, KC_A, LT(0,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, \
KC_LSFT, XXXXXXX, KC_Z, LT(0,KC_X), LT(0,KC_C), LT(0,KC_V), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, L_CODE, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, TO_FUNC, KC_LEFT, KC_DOWN, KC_RGHT \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, \
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_SPC, KC_RALT,MO(_RAISE), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
),
[_CODE] = LAYOUT(
[_LOWER] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_SCRNSHOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_FUNC] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, RGB_SPD, RGB_SPI, TO_BASE, RGB_SAD, RGB_HUD, RGB_SAI \
),
[_TOP] = LAYOUT(
[_RAISE] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_ADJUST] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SPD, RGB_SPI, XXXXXXX, _______, XXXXXXX, RGB_SAD, RGB_HUD, RGB_SAI \
)
};
/*****************************************************************************************************/
#ifdef OLED_ENABLE
static void render_status(void) {
// 21 characters per line
// 16 cols / 4 rows
oled_write_P(PSTR(" Kanagawa rev 2.1 "), false);
//oled_write_ln("", false);
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _BASE:
oled_write_P(PSTR("_\n"), false);
break;
case _FUNC:
oled_write_P(PSTR("[Fn]\n"), false);
break;
case _CODE:
oled_write_P(PSTR("[Code]\n"), false);
break;
default:
oled_write_P(PSTR("Undefined\n"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_ln(led_state.caps_lock ? "CAPLOCK" : " ", false);
// oled_write_P(PSTR(" "), false);
// oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
// oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
// oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
}
bool oled_task_user(void) {
render_status();
return false;
}
#endif
/*****************************************************************************************************/
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CUSTOMKEY:

View File

@ -20,22 +20,11 @@
enum layers
{
_BASE,
_CODE,
_FUNC,
_TOP
_LOWER,
_RAISE,
_ADJUST
};
enum custom_keycodes
{
CUSTOMKEY = SAFE_RANGE,
};
#define TO_BASE TO(_BASE)
#define TO_FUNC TG(_FUNC)
#define L_CODE MO(_CODE)
#define _SCRNSHOT LSFT(LGUI(KC_S))
/* Keyboard layout
* ,---------. ,---------------------------------------. ,---------------------------------------. ,---------------------------------------. ,---------.
* | ka0 | | ka1 | ka2 | ka3 | ka4 | | ka5 | ka6 | ka7 | ka8 | | ka9 | ka10 | ka11 | ka12 | | sw99 |
@ -68,149 +57,62 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'---------' `---------'
* | LShift | --- | Z | X | C | V | B | N | M | , | . | / | RShift | ,---------.
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | UP |
* | LCtrl | LGUI | LAlt | CODE | ,---------. ,---------. | RAlt | RCtrl | FUNC | ,---------|---------|---------.
* | LCtrl | LGUI | LAlt | LOWER | ,---------. ,---------. | RAlt | RAISE | RCtrl | ,---------|---------|---------.
* |---------+---------+---------+---------+ | Space | | Space | +---------+---------+---------' | LEFT | DOWN | RIGHT |
* `---------' `---------' `---------+---------+---------'
*/
[_BASE] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, \
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, \
KC_CAPS, KC_A, LT(0,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, \
KC_LSFT, XXXXXXX, KC_Z, LT(0,KC_X), LT(0,KC_C), LT(0,KC_V), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, L_CODE, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, TO_FUNC, KC_LEFT, KC_DOWN, KC_RGHT \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, \
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_SPC, KC_RALT,MO(_RAISE), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
),
[_CODE] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
[_LOWER] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_SCRNSHOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_FUNC] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, \
[_RAISE] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, RGB_SPD, RGB_SPI, TO_BASE, RGB_SAD, RGB_HUD, RGB_SAI \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_TOP] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_ADJUST] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SPD, RGB_SPI, XXXXXXX, _______, XXXXXXX, RGB_SAD, RGB_HUD, RGB_SAI \
)
};
/*****************************************************************************************************/
#ifdef OLED_ENABLE
static void render_status(void) {
// 21 characters per line
// 16 cols / 4 rows
oled_write_P(PSTR(" Kanagawa rev 2.1 "), false);
//oled_write_ln("", false);
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _BASE:
oled_write_P(PSTR("_\n"), false);
break;
case _FUNC:
oled_write_P(PSTR("[Fn]\n"), false);
break;
case _CODE:
oled_write_P(PSTR("[Code]\n"), false);
break;
default:
oled_write_P(PSTR("Undefined\n"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_ln(led_state.caps_lock ? "CAPLOCK" : " ", false);
// oled_write_P(PSTR(" "), false);
// oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
// oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
// oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
}
bool oled_task_user(void) {
render_status();
return false;
}
#endif
/*****************************************************************************************************/
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CUSTOMKEY:
if (record->event.pressed) {
if (get_mods() & MOD_MASK_SHIFT) {
tap_code16(G(A(KC_K)));
} else {
tap_code(KC_MPLY);
}
}
break;
case LT(0,KC_X):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_X)); // Intercept hold function to send Ctrl-X
return false;
}
return true;
case LT(0,KC_C):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_C)); // Intercept hold function to send Ctrl-C
return false;
}
return true;
case LT(0,KC_V):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_V)); // Intercept hold function to send Ctrl-V
return false;
}
return true;
case LT(0,KC_S):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_S)); // Intercept hold function to send Ctrl-S
return false;
}
return true;
}
return true;
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_CODE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_FUNC] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
[_TOP] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LOWER] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_RAISE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_ADJUST] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
};
#endif

View File

@ -36,7 +36,7 @@
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
# define RGB_MATRIX_KEYPRESSES
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
# define ENABLE_RGB_MATRIX_BREATHING

View File

@ -5,21 +5,41 @@
"maintainer": "Ciaanh",
"usb": {
"vid": "0xC1E0",
"pid": "0x0010",
"pid": "0x0011",
"device_version": "2.1.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"matrix_size": {
"cols": 14,
"rows": 6
},
"matrix_pins": {
"rows": ["GP28", "GP27", "GP26", "GP22", "GP21", "GP20"],
"cols": ["GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18"]
},
"features": {
"audio": false,
"backlight": false,
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": false,
"nkro": false,
"rgb_matrix": true,
"rgblight": false
},
"encoder": {
"rotary": [
{"pin_a": "GP2", "pin_b": "GP3"}
]
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"rows": ["GP28", "GP27", "GP26", "GP22", "GP21", "GP20"],
"cols": ["GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18"]
"bootmagic": {
"enabled": true,
"matrix": [0, 13]
},
"processor": "RP2040",
"bootloader": "rp2040",
"layouts": {
"LAYOUT": {
@ -119,5 +139,101 @@
{ "label": "Right", "matrix": [5, 11], "x": 15.25, "y": 5.25 }
]
}
},
"rgb_matrix": {
"driver": "WS2812",
"center_point": [ 90, 28],
"layout": [
{ "flags": 4,"matrix": [0,12],"x": 189, "y": 0 },
{ "flags": 4,"matrix": [0,11],"x": 175, "y": 0 },
{ "flags": 4,"matrix": [0,10],"x": 161, "y": 0 },
{ "flags": 4,"matrix": [0, 9],"x": 147, "y": 0 },
{ "flags": 4,"matrix": [0, 8],"x": 126, "y": 0 },
{ "flags": 4,"matrix": [0, 7],"x": 112, "y": 0 },
{ "flags": 4,"matrix": [0, 6],"x": 98, "y": 0 },
{ "flags": 4,"matrix": [0, 5],"x": 84, "y": 0 },
{ "flags": 4,"matrix": [0, 4],"x": 63, "y": 0 },
{ "flags": 4,"matrix": [0, 3],"x": 49, "y": 0 },
{ "flags": 4,"matrix": [0, 2],"x": 35, "y": 0 },
{ "flags": 4,"matrix": [0, 1],"x": 21, "y": 0 },
{ "flags": 4,"matrix": [0, 0],"x": 0, "y": 0 },
{ "flags": 1,"matrix": [1,13],"x": 189, "y": 12 },
{ "flags": 4,"matrix": [1,12],"x": 168, "y": 12 },
{ "flags": 4,"matrix": [1,11],"x": 154, "y": 12 },
{ "flags": 4,"matrix": [1,10],"x": 140, "y": 12 },
{ "flags": 4,"matrix": [1, 9],"x": 126, "y": 12 },
{ "flags": 4,"matrix": [1, 8],"x": 112, "y": 12 },
{ "flags": 4,"matrix": [1, 7],"x": 98, "y": 12 },
{ "flags": 4,"matrix": [1, 6],"x": 84, "y": 12 },
{ "flags": 4,"matrix": [1, 5],"x": 70, "y": 12 },
{ "flags": 4,"matrix": [1, 4],"x": 56, "y": 12 },
{ "flags": 4,"matrix": [1, 3],"x": 42, "y": 12 },
{ "flags": 4,"matrix": [1, 2],"x": 28, "y": 12 },
{ "flags": 4,"matrix": [1, 1],"x": 14, "y": 12 },
{ "flags": 4,"matrix": [1, 0],"x": 0, "y": 12 },
{ "flags": 1,"matrix": [2,13],"x": 189, "y": 23 },
{ "flags": 4,"matrix": [2,12],"x": 179, "y": 23 },
{ "flags": 4,"matrix": [2,11],"x": 161, "y": 23 },
{ "flags": 4,"matrix": [2,10],"x": 147, "y": 23 },
{ "flags": 4,"matrix": [2, 9],"x": 133, "y": 23 },
{ "flags": 4,"matrix": [2, 8],"x": 119, "y": 23 },
{ "flags": 4,"matrix": [2, 7],"x": 105, "y": 23 },
{ "flags": 4,"matrix": [2, 6],"x": 91, "y": 23 },
{ "flags": 4,"matrix": [2, 5],"x": 77, "y": 23 },
{ "flags": 4,"matrix": [2, 4],"x": 63, "y": 23 },
{ "flags": 4,"matrix": [2, 3],"x": 49, "y": 23 },
{ "flags": 4,"matrix": [2, 2],"x": 35, "y": 23 },
{ "flags": 4,"matrix": [2, 1],"x": 21, "y": 23 },
{ "flags": 1,"matrix": [2, 0],"x": 4, "y": 23 },
{ "flags": 1,"matrix": [3,12],"x": 187, "y": 35 },
{ "flags": 4,"matrix": [3,11],"x": 165, "y": 35 },
{ "flags": 4,"matrix": [3,10],"x": 151, "y": 35 },
{ "flags": 4,"matrix": [3, 9],"x": 137, "y": 35 },
{ "flags": 4,"matrix": [3, 8],"x": 123, "y": 35 },
{ "flags": 4,"matrix": [3, 7],"x": 109, "y": 35 },
{ "flags": 4,"matrix": [3, 6],"x": 95, "y": 35 },
{ "flags": 4,"matrix": [3, 5],"x": 81, "y": 35 },
{ "flags": 4,"matrix": [3, 4],"x": 67, "y": 35 },
{ "flags": 4,"matrix": [3, 3],"x": 53, "y": 35 },
{ "flags": 4,"matrix": [3, 2],"x": 39, "y": 35 },
{ "flags": 4,"matrix": [3, 1],"x": 25, "y": 35 },
{ "flags": 1,"matrix": [3, 0],"x": 5, "y": 35 },
{ "flags": 1,"matrix": [4,12],"x": 177, "y": 47 },
{ "flags": 4,"matrix": [4,11],"x": 158, "y": 47 },
{ "flags": 4,"matrix": [4,10],"x": 144, "y": 47 },
{ "flags": 4,"matrix": [4, 9],"x": 130, "y": 47 },
{ "flags": 4,"matrix": [4, 8],"x": 116, "y": 47 },
{ "flags": 4,"matrix": [4, 7],"x": 102, "y": 47 },
{ "flags": 4,"matrix": [4, 6],"x": 88, "y": 47 },
{ "flags": 4,"matrix": [4, 5],"x": 74, "y": 47 },
{ "flags": 4,"matrix": [4, 4],"x": 60, "y": 47 },
{ "flags": 4,"matrix": [4, 3],"x": 46, "y": 47 },
{ "flags": 4,"matrix": [4, 2],"x": 32, "y": 47 },
{ "flags": 4,"matrix": [4, 1],"x": 18, "y": 47 },
{ "flags": 1,"matrix": [4, 0],"x": 2, "y": 47 },
{ "flags": 1,"matrix": [3,13],"x": 224, "y": 12 },
{ "flags": 4,"matrix": [4,13],"x": 224, "y": 23 },
{ "flags": 4,"matrix": [5,13],"x": 224, "y": 35 },
{ "flags": 4,"matrix": [5,11],"x": 214, "y": 61 },
{ "flags": 4,"matrix": [5,12],"x": 200, "y": 49 },
{ "flags": 4,"matrix": [5,10],"x": 200, "y": 61 },
{ "flags": 4,"matrix": [5, 9],"x": 186, "y": 61 },
{ "flags": 1,"matrix": [5, 8],"x": 168, "y": 58 },
{ "flags": 1,"matrix": [5, 7],"x": 154, "y": 58 },
{ "flags": 1,"matrix": [5, 6],"x": 140, "y": 58 },
{ "flags": 4,"matrix": [5, 5],"x": 114, "y": 64 },
{ "flags": 4,"matrix": [5, 4],"x": 82, "y": 64 },
{ "flags": 1,"matrix": [5, 3],"x": 70, "y": 58 },
{ "flags": 1,"matrix": [5, 2],"x": 32, "y": 58 },
{ "flags": 1,"matrix": [5, 1],"x": 16, "y": 58 },
{ "flags": 1,"matrix": [5, 0],"x": 0, "y": 58 }
]
}
}

View File

@ -1,60 +0,0 @@
/* Copyright 2023 Ciaanh (@ciaanh)
*
* 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"
#define NA NO_LED
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = {
{
// Key Matrix to LED Index
{ 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, NA },
{ 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13 },
{ 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27 },
{ 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 66 },
{ 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 69, 67 },
{ 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 68 }
},
{
// LED Index to Physical Position
{189, 0}, {175, 0}, {161, 0}, {147, 0}, {126, 0}, {112, 0}, { 98, 0}, { 84, 0}, { 63, 0}, { 49, 0}, { 35, 0}, { 21, 0}, { 0, 0},
{189, 12}, {168, 12}, {154, 12}, {140, 12}, {126, 12}, {112, 12}, { 98, 12}, { 84, 12}, { 70, 12}, { 56, 12}, { 42, 12}, { 28, 12}, { 14, 12}, { 0, 12},
{189, 23}, {179, 23}, {161, 23}, {147, 23}, {133, 23}, {119, 23}, {105, 23}, { 91, 23}, { 77, 23}, { 63, 23}, { 49, 23}, { 35, 23}, { 21, 23}, { 4, 23},
{187, 35}, {165, 35}, {151, 35}, {137, 35}, {123, 35}, {109, 35}, { 95, 35}, { 81, 35}, { 67, 35}, { 53, 35}, { 39, 35}, { 25, 35}, { 5, 35},
{177, 47}, {158, 47}, {144, 47}, {130, 47}, {116, 47}, {102, 47}, { 88, 47}, { 74, 47}, { 60, 47}, { 46, 47}, { 32, 47}, { 18, 47}, { 2, 47},
{224, 12},
{224, 23},
{224, 35},
{214, 61},
{200, 49}, {200, 61}, {186, 61}, {168, 58}, {154, 58}, {140, 58}, {114, 64}, { 82, 64}, { 70, 58}, { 32, 58}, { 16, 58}, { 0, 58},
},
{
// LED Index to Flag
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
4,
4,
4, 4,
4, 4, 4, 1, 1, 1, 4, 4, 1, 1, 1, 1,
}};
#endif

View File

@ -20,22 +20,11 @@
enum layers
{
_BASE,
_CODE,
_FUNC,
_TOP
_LOWER,
_RAISE,
_ADJUST
};
enum custom_keycodes
{
CUSTOMKEY = SAFE_RANGE,
};
#define TO_BASE TO(_BASE)
#define TO_FUNC TG(_FUNC)
#define L_CODE MO(_CODE)
#define _SCRNSHOT LSFT(LGUI(KC_S))
/* Keyboard layout
* ,---------. ,---------------------------------------. ,---------------------------------------. ,---------------------------------------. ,---------.
* | ka0 | | ka1 | ka2 | ka3 | ka4 | | ka5 | ka6 | ka7 | ka8 | | ka9 | ka10 | ka11 | ka12 | | sw99 |
@ -68,148 +57,62 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'---------' `---------'
* | LShift | NUBS < | Z | X | C | V | B | N | M | , | . | / | RShift | ,---------.
* |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | UP |
* | LCtrl | LGUI | LAlt | CODE | ,---------. ,---------. | RAlt | RCtrl | FUNC | ,---------|---------|---------.
* | LCtrl | LGUI | LAlt | LOWER | ,---------. ,---------. | RAlt | RAISE | RCtrl | ,---------|---------|---------.
* |---------+---------+---------+---------+ | Space | | Space | +---------+---------+---------' | LEFT | DOWN | RIGHT |
* `---------' `---------' `---------+---------+---------'
*/
[_BASE] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, \
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_HOME, \
KC_CAPS, KC_A, LT(0,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_END, \
KC_LSFT, KC_NUBS, KC_Z, LT(0,KC_X), LT(0,KC_C), LT(0,KC_V), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, L_CODE, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, TO_FUNC, KC_LEFT, KC_DOWN, KC_RGHT \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_HOME, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_END, \
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_SPC, KC_RALT,MO(_RAISE), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
),
[_CODE] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
[_LOWER] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_SCRNSHOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_FUNC] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, \
[_RAISE] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, RGB_SPD, RGB_SPI, TO_BASE, RGB_SAD, RGB_HUD, RGB_SAI \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_TOP] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_ADJUST] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, \
XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SPD, RGB_SPI, XXXXXXX, _______, XXXXXXX, RGB_SAD, RGB_HUD, RGB_SAI \
)
};
/*****************************************************************************************************/
#ifdef OLED_ENABLE
static void render_status(void) {
// 21 characters per line
// 16 cols / 4 rows
oled_write_P(PSTR(" Kanagawa rev 2.0 "), false);
//oled_write_ln("", false);
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _BASE:
oled_write_P(PSTR("_\n"), false);
break;
case _FUNC:
oled_write_P(PSTR("[Fn]\n"), false);
break;
case _CODE:
oled_write_P(PSTR("[Code]\n"), false);
break;
default:
oled_write_P(PSTR("Undefined\n"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_ln(led_state.caps_lock ? "CAPLOCK" : " ", false);
// oled_write_P(PSTR(" "), false);
// oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
// oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
// oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
// oled_write_ln("", false);
}
bool oled_task_user(void) {
render_status();
return false;
}
#endif
/*****************************************************************************************************/
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CUSTOMKEY:
if (record->event.pressed) {
if (get_mods() & MOD_MASK_SHIFT) {
tap_code16(G(A(KC_K)));
} else {
tap_code(KC_MPLY);
}
}
break;
case LT(0,KC_X):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_X)); // Intercept hold function to send Ctrl-X
return false;
}
return true;
case LT(0,KC_C):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_C)); // Intercept hold function to send Ctrl-C
return false;
}
return true;
case LT(0,KC_V):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_V)); // Intercept hold function to send Ctrl-V
return false;
}
return true;
case LT(0,KC_S):
if (!record->tap.count && record->event.pressed) {
tap_code16(C(KC_S)); // Intercept hold function to send Ctrl-S
return false;
}
return true;
}
return true;
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_CODE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_FUNC] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
[_TOP] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LOWER] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_RAISE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_ADJUST] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
};
#endif

View File

@ -0,0 +1,61 @@
/* Copyright 2021 Sleepdealer
*
* 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
#ifdef OLED_ENABLE
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
// 21 characters per line
// 16 cols / 4 rows
oled_write_P(PSTR(" Kanagawa rev 2.1 "), false);
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_P(PSTR("_\n"), false);
break;
case 1:
oled_write_P(PSTR("[Lower]\n"), false);
break;
case 2:
oled_write_P(PSTR("[Raise]\n"), false);
break;
case 3:
oled_write_P(PSTR("[Adjust]\n"), false);
break;
default:
oled_write_P(PSTR("Undefined\n"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_ln(led_state.caps_lock ? "CAPLOCK" : " ", false);
// oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
// oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
// oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
oled_advance_page(true);
return true;
}
#endif

View File

@ -1,20 +1,3 @@
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
ENCODER_ENABLE = yes
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
WS2812_DRIVER = vendor
OLED_ENABLE = yes
OLED_DRIVER = SSD1306