![見出し画像](https://assets.st-note.com/production/uploads/images/47291109/rectangle_large_type_2_9600154bc60511986fcca5748fca6e14.png?width=1200)
corne chocolateのkeymapをつくる
■キーマップをデフォルトから変更
最初なのでまだ固定化されてなく変化していくと思いますが、、
以下を意識しました。
・なるべく1キーで1文字(Shiftでの文字切替は小文字⇔大文字以外は使わない)
・レイヤ利用時は6×3の下段はあまり使わない(?だけ心残り・・)
・かな、英数は単独キーで切替(今の状態を意識したくない)
crkbdのdefaultをコピーして作成しています。
keymap.c
#include "keymap_jp.h"
#define _BASE 0
#define _LOWER 1
#define _RAISE 2
#define _ADJUST 3
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_COLN, JP_SCLN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT
//`--------------------------' `--------------------------'
),
[_LOWER] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, JP_ZKHK, XXXXXXX, JP_MHEN, JP_HENK, JP_KANA, JP_EISU, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, MO(3), KC_RALT
//`--------------------------' `--------------------------'
),
[_RAISE] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
JP_CAPS, JP_EXLM, JP_DQUO, JP_HASH, JP_DLR , JP_PERC, JP_AMPR, JP_QUOT, JP_LPRN, JP_RPRN, JP_EQL , JP_TILD,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
JP_GRV , JP_AT , JP_LABK, JP_RABK, JP_PLUS, JP_ASTR, JP_MINS, JP_UNDS, JP_LBRC, JP_RBRC, JP_YEN , JP_PIPE,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_BSLS, XXXXXXX, XXXXXXX, JP_LCBR, JP_RCBR, JP_QUES, JP_CIRC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
),
[_ADJUST] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
)
};
■レイヤーを変えてるときにLED色を変える
分離型のRGB周りの設定が上手くいかず、いったん左右で同じ設定で動くようにしています。
config.h の追記箇所
#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_LAYERS
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 27
#define RGBLED_MAX_LAYERS 8
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#define LED_LAYOUT( \
L00, L01, L02, \
L03, L04, L05, \
L06, L07, L08, L09, L10, L11, \
L12, L13, L14, L15, L16, L17, \
L18, L19, L20, L21, L22, L23, \
L24, L25, L26 \
) { \
L02, L01, L00, L03, L04, L05, \
L26, L23, L17, L11, \
L10, L16, L22, L25, \
L24, L21, L15, L09, \
L08, L14, L20, \
L19, L13, L07, \
L06, L12, L18 \
}
#define RGBLIGHT_LED_MAP LED_LAYOUT( \
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)
#endif
keymap.c の追記箇所
LED色はわかりやすく、defaultレイヤーは赤、lowerレイヤーは青、raiseレイヤーは緑にしています。
const rgblight_segment_t PROGMEM rgb_default_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 27, HSV_RED} // left
);
const rgblight_segment_t PROGMEM rgb_lower_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{0,27, HSV_BLUE} // left
);
const rgblight_segment_t PROGMEM rgb_raise_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 27, HSV_GREEN} // left
);
const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(
rgb_default_layer,
rgb_lower_layer,
rgb_raise_layer
);
void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = rgb_layers;
}
layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, _BASE));
rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER));
rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE));
return state;
}