Helix five rows jis (#3274) * Added keymap for Helix like Japanese JIS keyboard. * * Refactored * Supported to display of exchange layer
5 files changed, 1111 insertions(+), 0 deletions(-) A keyboards/helix/rev2/keymaps/five_rows_jis/config.h A keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c A keyboards/helix/rev2/keymaps/five_rows_jis/readme.md A keyboards/helix/rev2/keymaps/five_rows_jis/readme_jp.md A keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk
A keyboards/helix/rev2/keymaps/five_rows_jis/config.h => keyboards/helix/rev2/keymaps/five_rows_jis/config.h +121 -0
@@ 0,0 1,121 @@ /* This is the c configuration file for the keymap Copyright 2012 Jun Wako <wakojun@gmail.com> Copyright 2015 Jack Humbert 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/>. */ #ifndef CONFIG_USER_H #define CONFIG_USER_H #include "../../config.h" /* Use I2C or Serial */ #define USE_I2C #define USE_SERIAL //#define USE_MATRIX_I2C /* Select hand configuration */ #define MASTER_LEFT // #define MASTER_RIGHT // #define EE_HANDS // Helix keyboard OLED support // see ./rules.mk: OLED_ENABLE=yes or no #ifdef OLED_ENABLE #define SSD1306OLED #endif /* Select rows configuration */ // Rows are 4 or 5 // #define HELIX_ROWS 5 see ./rules.mk /* key matrix size */ // Rows are doubled-up #if HELIX_ROWS == 4 #define MATRIX_ROWS 8 #define MATRIX_COLS 7 #define MATRIX_ROW_PINS { D4, C6, D7, E6 } #elif HELIX_ROWS == 5 #define MATRIX_ROWS 10 #define MATRIX_COLS 7 #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } #else #error "expected HELIX_ROWS 4 or 5" #endif #define USE_SERIAL_PD2 #define PREVENT_STUCK_MODIFIERS #define TAPPING_FORCE_HOLD #define TAPPING_TERM 100 // Helix keyboard RGB LED support //#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no // see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes #ifdef RGBLED_BACK #if HELIX_ROWS == 4 #define RGBLED_NUM 25 #elif HELIX_ROWS == 5 #define RGBLED_NUM 32 #endif #else #define RGBLED_NUM 6 #endif #ifndef IOS_DEVICE_ENABLE #if RGBLED_NUM <= 6 #define RGBLIGHT_LIMIT_VAL 255 #else #if HELIX_ROWS == 5 #define RGBLIGHT_LIMIT_VAL 120 #else #define RGBLIGHT_LIMIT_VAL 130 #endif #endif #define RGBLIGHT_VAL_STEP 17 #else #if RGBLED_NUM <= 6 #define RGBLIGHT_LIMIT_VAL 90 #else #if HELIX_ROWS == 5 #define RGBLIGHT_LIMIT_VAL 35 #else #define RGBLIGHT_LIMIT_VAL 45 #endif #endif #define RGBLIGHT_VAL_STEP 4 #endif #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for Helix keyboard // 120 RGBoff, OLEDoff // 120 OLED // 330 RGB 6 // 300 RGB 32 // 310 OLED & RGB 32 #define USB_MAX_POWER_CONSUMPTION 400 #else // fix iPhone and iPad power adapter issue // iOS device need lessthan 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif #endif /* CONFIG_USER_H */
A keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c => keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c +551 -0
@@ 0,0 1,551 @@ #include "helix.h" #include "bootloader.h" #include "action_layer.h" #include "eeconfig.h" #ifdef PROTOCOL_LUFA #include "lufa.h" #include "split_util.h" #endif #include "LUFA/Drivers/Peripheral/TWI.h" #ifdef AUDIO_ENABLE #include "audio.h" #endif #ifdef SSD1306OLED #include "ssd1306.h" #endif // * If you want to recognize that you pressed the Adjust key with the Lower / Raise key you can enable this comment out. However, the binary size may be over. * // #define ADJUST_MACRO_ENABLE // * If you want to use the Kana key you can enable this comment out. However, the binary size may be over. * // #define KANA_ENABLE extern keymap_config_t keymap_config; #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings extern rgblight_config_t rgblight_config; #endif extern uint8_t is_master; // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. enum layer_number { _BASE = 0, _BAS_E, _LOWER, _LOW_E, _RAISE, _RAI_E, _ADJUST, }; enum custom_keycodes { BASE = SAFE_RANGE, BAS_E, LOWER, LOW_E, RAISE, RAI_E, ADJUST, EISU, #ifdef KANA_ENABLE KANA, #endif RGBRST }; // JIS key aliases #define JP_CFTD KC_EQL // ^ and ~ Circumflex (Hat) and Tilde #define JP_ATBQ KC_LBRC // @ and ` Atmark and Back-quote #define JP_CLAS KC_QUOT // : and * Colon and Asterisk #define JP_BSVL KC_JYEN // \ and | Back slash and and Vertical-line) #define JP_LBRC KC_RBRC // [ and { Left-bracket #define JP_RBRC KC_BSLS // ] and } Right-bracket #define JP_BSUS KC_RO // \ and _ Back slash and Under-score // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO #if HELIX_ROWS == 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty JIS Normal * ,-----------------------------------------. ,-----------------------------------------. * | Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right | * `-------------------------------------------------------------------------------------------------' */ [_BASE] = LAYOUT( \ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \ EISU, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, \ KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_BSPC, KC_SPC, KC_SPC, RAISE, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT \ ), /* Qwerty JIS Exchange L and R * ,-----------------------------------------. ,-----------------------------------------. * | 6& | 7' | 8( | 9) | 0 | -= | | Esc | 1! | 2" | 3# | 4$ | 5% | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Y | U | I | O | P | @` | | Tab | Q | W | E | R | T | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | H | J | K | L | ;+ | :* | | | A | S | D | F | G | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | N | M | ,< | .> | /? | Up |Enter |KANJI | Shift| Z | X | C | V | B | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * |Space |Raise | }] | APP | Left | Down |Right |Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp | * `-------------------------------------------------------------------------------------------------' */ [_BAS_E] = LAYOUT( \ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \ KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, \ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, EISU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \ KC_SPC, RAI_E, JP_RBRC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, ADJUST, KC_LCTL, KC_LALT, KC_LGUI, JP_LBRC, LOW_E, KC_BSPC \ ), /* Lower JIS Normal * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | -= | ^~ | \| | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | | | | | | | | @` | [{ | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | | | | | | | ;+ | :* | ]} | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | ,< | .> | /? | \_ | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | Del | | | | | | | | * `-------------------------------------------------------------------------------------------------' */ [_LOWER] = LAYOUT( \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, \ _______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_DEL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ ), /* Lower JIS Exchange L and R * ,-----------------------------------------. ,-----------------------------------------. * | | | | -= | ^~ | \| | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | @` | [{ | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | ;+ | :* | ]} | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | ,< | .> | /? | \_ |PageUp| | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | Home |PageDn| End | | | | | | | Del | * `-------------------------------------------------------------------------------------------------' */ [_LOW_E] = LAYOUT( \ _______, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, KC_PGUP, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, XXXXXXX, _______, KC_DEL \ ), /* Raise JIS Normal * ,-----------------------------------------. ,-----------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | | | | | | | | Home |PageUp| * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | | | | | | | | End |PageDn| * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | |MsLeft|MsDown|MsRght| * `-------------------------------------------------------------------------------------------------' */ [_RAISE] = LAYOUT( \ KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_PGDN, \ _______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, \ _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R \ ), /* Raise JIS Exchange L and R * ,-----------------------------------------. ,-----------------------------------------. * | F7 | F8 | F9 | F10 | F11 | F12 | | F1 | F2 | F3 | F4 | F5 | F6 | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | MsUp | | | |MsBtn1|MsBtn2| | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | |MsLeft|MsDown|MsRght| | | | | | | | * `-------------------------------------------------------------------------------------------------' */ [_RAI_E] = LAYOUT( \ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX \ ), /* Adjust (Lower + Raise) Common map for Normal and Exchange * ,-----------------------------------------. ,-----------------------------------------. * | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | | * |------+------+------+------+------+------| |------+------+------+------+------|------+ * | |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | | * |------+------+------+------+------+------+------+------+------+------+------+------+------|------+ * | | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | | | * `-------------------------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT( \ XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, \ XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, \ XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, \ XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), }; #elif HELIX_ROWS == 4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Do it yourself :) }; #else #error "undefined keymaps" #endif #ifdef AUDIO_ENABLE float tone_qwerty[][2] = SONG(QWERTY_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif // define variables for reactive RGB bool TOG_STATUS = false; int RGB_current_mode; void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } #ifdef ADJUST_MACRO_ENABLE // Setting ADJUST layer RGB back to default void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { #ifdef RGBLIGHT_ENABLE rgblight_mode(RGB_current_mode); #endif layer_on(layer3); } else { layer_off(layer3); } } #endif void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_layer, uint16_t raise_layer) { if (pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around //uses another variable that would be set to true after the first time a reactive key is pressed. if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false TOG_STATUS = !TOG_STATUS; #ifdef RGBLIGHT_ENABLE if (dist_layer == _LOWER || dist_layer == _LOW_E) { rgblight_mode(16); } else { rgblight_mode(15); } #endif } layer_on(dist_layer); #ifdef ADJUST_MACRO_ENABLE update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST); #endif } else { #ifdef RGBLIGHT_ENABLE rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change #endif TOG_STATUS = false; layer_off(dist_layer); #ifdef ADJUST_MACRO_ENABLE update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST); #endif } } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case BASE: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty); #endif persistent_default_layer_set(1UL<<_BASE); } return false; break; case BAS_E: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty); #endif persistent_default_layer_set(1UL<<_BAS_E); } return false; break; case LOWER: toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE); return false; break; case LOW_E: toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E); return false; break; case RAISE: toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE); return false; break; case RAI_E: toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E); return false; break; case ADJUST: if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_mode(14); #endif layer_on(_ADJUST); } else { #ifdef RGBLIGHT_ENABLE rgblight_mode(RGB_current_mode); #endif layer_off(_ADJUST); } return false; break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); RGB_current_mode = rgblight_config.mode; } #endif return false; break; case EISU: if (record->event.pressed) { if (keymap_config.swap_lalt_lgui==false) { register_code(KC_LANG2); } else { SEND_STRING(SS_LALT("`")); } } else { unregister_code(KC_LANG2); } return false; break; #ifdef KANA_ENABLE case KANA: if (record->event.pressed) { if(keymap_config.swap_lalt_lgui==false){ register_code(KC_LANG1); }else{ SEND_STRING(SS_LALT("`")); } } else { unregister_code(KC_LANG1); } return false; break; #endif case RGBRST: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { eeconfig_update_rgblight_default(); rgblight_enable(); RGB_current_mode = rgblight_config.mode; } #endif break; } return true; // return process_layer_control(keycode, record, false) ? process_layer_control(keycode, record, true) : true; } void matrix_init_user(void) { #ifdef AUDIO_ENABLE startup_user(); #endif #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_config.mode; #endif //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000)); iota_gfx_init(!has_usb()); // turns on the display #endif } #ifdef AUDIO_ENABLE void startup_user() { _delay_ms(20); // gets rid of tick } void shutdown_user() { _delay_ms(150); stop_all_notes(); } void music_on_user(void) { music_scale_user(); } void music_scale_user(void) { PLAY_SONG(music_scale); } #endif //SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED void matrix_scan_user(void) { iota_gfx_task(); // this is what updates the display continuously } void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { if (memcmp(dest->display, source->display, sizeof(dest->display))) { memcpy(dest->display, source->display, sizeof(dest->display)); dest->dirty = true; } } //assign the right code to your layers for OLED display #define L_BASE _BASE #define L_LOWER (1<<_LOWER) #define L_RAISE (1<<_RAISE) #define L_ADJUST (1<<_ADJUST) #define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) #define L_LOW_E (1<<_LOW_E) #define L_RAI_E (1<<_RAI_E) #define L_ADJUST_TRIE (L_ADJUST|L_RAI_E|L_LOW_E) static void render_logo(struct CharacterMatrix *matrix) { static char logo[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, 0}; matrix_write(matrix, logo); //matrix_write_P(&matrix, PSTR(" Split keyboard kit")); } void render_status(struct CharacterMatrix *matrix) { // Render to mode icon static char logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; if(keymap_config.swap_lalt_lgui==false){ matrix_write(matrix, logo[0][0]); matrix_write_P(matrix, PSTR("\n")); matrix_write(matrix, logo[0][1]); } else { matrix_write(matrix, logo[1][0]); matrix_write_P(matrix, PSTR("\n")); matrix_write(matrix, logo[1][1]); } // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below char buf[16]; matrix_write_P(matrix, PSTR("\nLayer: ")); switch (layer_state) { case L_BASE: if (default_layer_state == (1UL<<_BAS_E)) { matrix_write_P(matrix, PSTR("Base_Ex")); } else { matrix_write_P(matrix, PSTR("Base")); } break; case L_RAISE: matrix_write_P(matrix, PSTR("Raise")); break; case L_RAI_E: matrix_write_P(matrix, PSTR("Raise_Ex")); break; case L_LOWER: matrix_write_P(matrix, PSTR("Lower")); break; case L_LOW_E: matrix_write_P(matrix, PSTR("Lower_Ex")); break; case L_ADJUST: case L_ADJUST_TRI: case L_ADJUST_TRIE: matrix_write_P(matrix, PSTR("Adjust")); break; default: snprintf(buf, sizeof(buf), "Undef-%d", (short)layer_state); matrix_write(matrix, buf); } // Host Keyboard LED Status char led[32]; snprintf(led, sizeof(led), "\n%s %s %s", (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ", (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ", (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " "); matrix_write(matrix, led); } void iota_gfx_task_user(void) { struct CharacterMatrix matrix; #if DEBUG_TO_SCREEN if (debug_enable) { return; } #endif matrix_clear(&matrix); if (is_master) { render_status(&matrix); } else { render_logo(&matrix); } matrix_update(&display, &matrix); } #endif
A keyboards/helix/rev2/keymaps/five_rows_jis/readme.md => keyboards/helix/rev2/keymaps/five_rows_jis/readme.md +150 -0
@@ 0,0 1,150 @@ # Helix 5 rows JIS layout This keymap was created with the concept that users using Japanese JIS keyboard layout can operate without difficulty. It has the following features. * We are considering to be able to input long Japanese notes without moving the layer * We are arranging the relation of symbols that can not fit in the Lower layer keeping the positional relationship * The four-way key is in a convex arrangement * Ctrl, Shift, Tab, Kanji, Esc, GUI (Win), App keys are arranged keeping positional relationship * Lower / Raise keymap is considering easy placement so that it can be used without memorizing This keymap also includes a "NORMAL" keymap that uses Helix's split keyboard as usual, and an "EXCHANGE" key that exchanges left and right sides of Helix's split keyboard for key position optimization I am trying to switch maps. These have the following additional features. ## NORMAL Keymap * It is possible to press the N key with the left index finger and the B key with the right index finger ## EXCHANGE Keymap * By using the 2 key under Pro micro effectively add `` `[{` `` `` `]]` ``, `` `/?` `` Keys to NORMAL's base keymap And make inputs other than the `` `\ _` `` key possible with the base map * To avoid mistakes in pressing the Kanji key and the Enter key, we are moving to the 2 key. ## 配列 ### NORMAL Keymap Adjust + ModExc key switches to the NORMAL keymap. Base Layer ``` ,-----------------------------------------. ,-----------------------------------------. | Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= | |------+------+------+------+------+------| |------+------+------+------+------+------| | KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` | |------+------+------+------+------+------| |------+------+------+------+------+------| | Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right | `-------------------------------------------------------------------------------------------------' ``` Lower Layer ``` ,-----------------------------------------. ,-----------------------------------------. | | | | | | | | | | | -= | ^~ | \| | |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | | @` | [{ | |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | ;+ | :* | ]} | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | ,< | .> | /? | \_ | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | Del | | | | | | | | `-------------------------------------------------------------------------------------------------' ``` Raise Layer ``` ,-----------------------------------------. ,-----------------------------------------. | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | | Home |PageUp| |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | | End |PageDn| |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | |MsLeft|MsDown|MsRght| `-------------------------------------------------------------------------------------------------' ``` ### EXCHANGE Keymap Adjust + ModExc key switches to the EXCHANGE keymap. Base Layer ``` ,-----------------------------------------.,-----------------------------------------. | Esc | 1! | 2" | 3# | 4$ | 5% || 6& | 7' | 8( | 9) | 0 | -= | |------+------+------+------+------+------||------+------+------+------+------+------| | Tab | Q | W | E | R | T || Y | U | I | O | P | @` | |------+------+------+------+------+------||------+------+------+------+------+------| | | A | S | D | F | G || H | J | K | L | ;+ | :* | ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. |KANJI | Shift| Z | X | C | V | B || N | M | ,< | .> | /? | Up |Enter | |------+------+------+------+------+------+------||------+------+------+------+------+------+------| |Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp ||Space |Raise | }] | APP | Left | Down |Right | `------------------------------------------------'`------------------------------------------------' ``` Lower Layer ``` ,-----------------------------------------.,-----------------------------------------. | | | | | | || | | | -= | ^~ | \| | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | | @` | [{ | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | ;+ | :* | ]} | ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. | | | | | | | || | ,< | .> | /? | \_ |PageUp| | |------+------+------+------+------+------+------||------+------+------+------+------+------+------| | | | | | | | Del || | | | | Home |PageDn| End | `------------------------------------------------'`------------------------------------------------' ``` Raise Layer ``` ,-----------------------------------------.,-----------------------------------------. | F1 | F2 | F3 | F4 | F5 | F6 || F7 | F8 | F9 | F10 | F11 | F12 | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | | | | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | | | | ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. | | |MsBtn1|MsBtn2| | | || | | | | | MsUp | | |------+------+------+------+------+------+------||------+------+------+------+------+------+------| | | | | | | | || | | | |MsLeft|MsDown|MsRght| `------------------------------------------------'`------------------------------------------------' ``` ### NORMAL/EXCHANGE common Layer Adjust Layer NORMAL / EXCHANGE This layer is used in common. The same items are arranged in the same row on both sides so that they can be used in common. ``` ,-----------------------------------------. ,-----------------------------------------. | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| | |------+------+------+------+------+------| |------+------+------+------+------+------| | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | | |------+------+------+------+------+------| |------+------+------+------+------|------+ | |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | | |------+------+------+------+------+------+------+------+------+------+------+------+------|------+ | | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | | | | `-------------------------------------------------------------------------------------------------' ``` ## How to compile these program See the readme of the Default keymap.
A keyboards/helix/rev2/keymaps/five_rows_jis/readme_jp.md => keyboards/helix/rev2/keymaps/five_rows_jis/readme_jp.md +166 -0
@@ 0,0 1,166 @@ # Helix 5 rows JIS layout このキーマップは日本語JISキーボード配列を利用しているユーザーが無理なく操作出来るというコンセプトで作成しました。以下の特徴があります。 * 日本語の長音記号をレイヤーを移動せずに入力可能なように考慮しています * 入りきらない記号関連をLowerレイヤーに位置関係を維持して配置しています * 十字キーを凸配置にしています * Ctrl,Shift,Tab,漢字,Esc,GUI(Win),Appの各キーは位置関係を維持して配置しています * Lower/Raiseキーマップは暗記しないでも使えるようにわかりやすい配置を考慮しています またこのキーマップにはHelixの分割されたキーボードを通常通りに使用する「NORMAL」キーマップと、キー位置の最適化のためにHelixの分割されたキーボードの左右を交換して使う「EXCHANGE」キーマップを切り替えられるようにしています。これらにはさらに以下の特徴があります。 ## NORMALキーマップ * Nキーを左人差し指で、Bキーを右人差し指で押下することが可能 ## EXCHANGEキーマップ * Pro micro下の2キーを有効に使うことにより、NORMALのベースキーマップに```[{```,```}]```,```/?```の各キーを追加し、```\_```キー以外の入力をベースマップで可能にしています * 漢字キー,Enterキーの押し間違いを避けるためPro micro下の2キーに移動しています ## 配列 ### NORMALキーマップ Adjust + ModNrmキーでNORMALキーマップに切り替わります。 Baseレイヤー ``` ,-----------------------------------------. ,-----------------------------------------. | Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= | |------+------+------+------+------+------| |------+------+------+------+------+------| | KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` | |------+------+------+------+------+------| |------+------+------+------+------+------| | Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right | `-------------------------------------------------------------------------------------------------' ``` Lowerレイヤー 記号キーと、BackSpace位置にDeleteキーを配置しています。 例えば```|```キーを入力する場合、Lower + Shift + \キーで入力することが出来ます。 ``` ,-----------------------------------------. ,-----------------------------------------. | | | | | | | | | | | -= | ^~ | \| | |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | | @` | [{ | |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | ;+ | :* | ]} | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | ,< | .> | /? | \_ | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | Del | | | | | | | | `-------------------------------------------------------------------------------------------------' ``` Raiseレイヤー rules.mkのMOUSEKEY_ENABLEをyesにした場合マウスキーを利用できます。ただしバイナリ容量を食いますのでmakeした時に確認できるバイナリサイズがオーバーしていないことに十分注意してください。 また、F1-F12キーをHHKBライクに使えるように横並びにしました。 ``` ,-----------------------------------------. ,-----------------------------------------. | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | | Home |PageUp| |------+------+------+------+------+------| |------+------+------+------+------+------| | | | | | | | | | | | | End |PageDn| |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | |MsLeft|MsDown|MsRght| `-------------------------------------------------------------------------------------------------' ``` ### EXCHANGEキーマップ Adjust + ModExcキーでEXCHANGEキーマップに切り替わります。 HelixのUSBやフォンケーブルの接続は変更せず、分割された左右のキーボードを入れ替えて使います。 Baseレイヤー ちょっと無理やりですが```[{```,```}]```キーを突っ込んでいます。 ``` ,-----------------------------------------.,-----------------------------------------. | Esc | 1! | 2" | 3# | 4$ | 5% || 6& | 7' | 8( | 9) | 0 | -= | |------+------+------+------+------+------||------+------+------+------+------+------| | Tab | Q | W | E | R | T || Y | U | I | O | P | @` | |------+------+------+------+------+------||------+------+------+------+------+------| | | A | S | D | F | G || H | J | K | L | ;+ | :* | ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. |KANJI | Shift| Z | X | C | V | B || N | M | ,< | .> | /? | Up |Enter | |------+------+------+------+------+------+------||------+------+------+------+------+------+------| |Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp ||Space |Raise | }] | APP | Left | Down |Right | `------------------------------------------------'`------------------------------------------------' ``` Lowerレイヤー 記号キーと、BackSpace位置にDeleteキーを配置しています。 PageDown/Up, Home/EndをCtrl+十字キーの延長線上で使用できるように配置しています。 ``` ,-----------------------------------------.,-----------------------------------------. | | | | | | || | | | -= | ^~ | \| | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | | @` | [{ | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | ;+ | :* | ]} | ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. | | | | | | | || | ,< | .> | /? | \_ |PageUp| | |------+------+------+------+------+------+------||------+------+------+------+------+------+------| | | | | | | | Del || | | | | Home |PageDn| End | `------------------------------------------------'`------------------------------------------------' ``` Raiseレイヤー rules.mkのMOUSEKEY_ENABLEをyesにした場合マウスキーを利用できます。ただしバイナリ容量を食いますのでmakeした時に確認できるバイナリサイズがオーバーしていないことに十分注意してください。 また、F1-F12キーをHHKBライクに使えるように横並びにしました。 マウスキーは十字キーの延長線上で使用できるように配置しています。 ``` ,-----------------------------------------.,-----------------------------------------. | F1 | F2 | F3 | F4 | F5 | F6 || F7 | F8 | F9 | F10 | F11 | F12 | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | | | | |------+------+------+------+------+------||------+------+------+------+------+------| | | | | | | || | | | | | | ,------+------+------+------+------+------+------||------+------+------+------+------+------+------. | | |MsBtn1|MsBtn2| | | || | | | | | MsUp | | |------+------+------+------+------+------+------||------+------+------+------+------+------+------| | | | | | | | || | | | |MsLeft|MsDown|MsRght| `------------------------------------------------'`------------------------------------------------' ``` ### NORMAL/EXCHANGE共通レイヤー Adjustレイヤー NORMAL/EXCHANGE共通で利用するレイヤーです。共通で使えるように両側同じ並びで同じものを配置しています。 ``` ,-----------------------------------------. ,-----------------------------------------. | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| | |------+------+------+------+------+------| |------+------+------+------+------+------| | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | | |------+------+------+------+------+------| |------+------+------+------+------|------+ | |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | | |------+------+------+------+------+------+------+------+------+------+------+------+------|------+ | | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | | |------+------+------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | | | | `-------------------------------------------------------------------------------------------------' ``` ## コンパイルの仕方 Defaultキーマップのreadmeを参照してください。
A keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk => keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk +123 -0
@@ 0,0 1,123 @@ # Build Options # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = no # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SWAP_HANDS_ENABLE = no # Enable one-hand typing define HELIX_CUSTOMISE_MSG $(info Helix customize) $(info - OLED_ENABLE=$(OLED_ENABLE)) $(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE)) $(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE)) $(info - LED_ANIMATION=$(LED_ANIMATIONS)) $(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE)) endef # Helix keyboard customize # you can edit follows 7 Variables # jp: 以下の7つの変数を必要に応じて編集します。 HELIX_ROWS = 5 # Helix Rows is 4 or 5 OLED_ENABLE = no # OLED_ENABLE LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_ANIMATIONS = yes # LED animations IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) #### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. #### Do not enable these with audio at the same time. ### Helix keyboard 'default' keymap: convenient command line option ## make HELIX=<options> helix:defualt ## option= oled | back | under | na | ios ## ex. ## make HELIX=oled helix:defualt ## make HELIX=oled,back helix:defualt ## make HELIX=oled,under helix:defualt ## make HELIX=oled,back,na helix:defualt ## make HELIX=oled,back,ios helix:defualt ## ifneq ($(strip $(HELIX)),) ifeq ($(findstring oled,$(HELIX)), oled) OLED_ENABLE = yes endif ifeq ($(findstring back,$(HELIX)), back) LED_BACK_ENABLE = yes else ifeq ($(findstring under,$(HELIX)), under) LED_UNDERGLOW_ENABLE = yes endif ifeq ($(findstring na,$(HELIX)), na) LED_ANIMATIONS = no endif ifeq ($(findstring ios,$(HELIX)), ios) IOS_DEVICE_ENABLE = yes endif $(eval $(call HELIX_CUSTOMISE_MSG)) $(info ) endif # Uncomment these for checking # jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。 # $(eval $(call HELIX_CUSTOMISE_MSG)) # $(info ) ifneq ($(strip $(HELIX_ROWS)), 4) ifneq ($(strip $(HELIX_ROWS)), 5) $(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value) endif endif OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS)) ifeq ($(strip $(LED_BACK_ENABLE)), yes) RGBLIGHT_ENABLE = yes OPT_DEFS += -DRGBLED_BACK ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) $(eval $(call HELIX_CUSTOMISE_MSG)) $(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes') endif else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) RGBLIGHT_ENABLE = yes else RGBLIGHT_ENABLE = no endif ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) OPT_DEFS += -DIOS_DEVICE_ENABLE endif ifeq ($(strip $(LED_ANIMATIONS)), yes) OPT_DEFS += -DRGBLIGHT_ANIMATIONS endif ifeq ($(strip $(OLED_ENABLE)), yes) OPT_DEFS += -DOLED_ENABLE endif ifeq ($(strip $(LOCAL_GLCDFONT)), yes) OPT_DEFS += -DLOCAL_GLCDFONT endif # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile endif # Uncomment these for debugging # $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE)) # $(info -- OPT_DEFS=$(OPT_DEFS)) # $(info )