見出し画像

corne chocolateのkeymapをつくる

■キーマップをデフォルトから変更

画像1

最初なのでまだ固定化されてなく変化していくと思いますが、、
以下を意識しました。
・なるべく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;
}


この記事が気に入ったらサポートをしてみませんか?