~ruther/qmk_firmware

0b9b2a6376df286d3a5bc44a99274dc196524fc1 — epaew 7 years ago f28f569
Add edvorakjp keymap for the Helix (rev2) keyboard (#3340)

* add readme.md

* add extern declaration of edvorakjp_config to edvorakjp.h

* add oled.c

* add layout definitions

* add keymap.c

* add rules.mk

* fix rgblight issue: rgblight_setrgb() ignore RGBLIGHT_LIMIT_VAL
A keyboards/helix/rev2/keymaps/edvorakjp/config.h => keyboards/helix/rev2/keymaps/edvorakjp/config.h +10 -0
@@ 0,0 1,10 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H

#include "../../config.h"

#undef TAPPING_FORCE_HOLD
#undef TAPPING_TERM
#define TAPPING_TERM 120

#endif /* CONFIG_USER_H */

A keyboards/helix/rev2/keymaps/edvorakjp/keymap.c => keyboards/helix/rev2/keymaps/edvorakjp/keymap.c +61 -0
@@ 0,0 1,61 @@
#include QMK_KEYBOARD_H
#include "split_util.h"
#include "keymap_xrows.h"
#ifdef SSD1306OLED
  #include "oled.h"
#endif

// keymaps definitions are moved to keymap_Xrows.c.

bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  switch(keycode) {
    case KC_LOCK:
      if (record->event.pressed) {
        if (edvorakjp_config.enable_kc_lang) {
          SEND_STRING( SS_LCTRL(SS_LSFT(SS_TAP(X_POWER))) );
        } else {
          SEND_STRING( SS_LGUI("l") );
        }
      }
      return false;
  }
  return true;
}

#ifdef SSD1306OLED
void matrix_init_keymap(void) {
  //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
  iota_gfx_init(!has_usb());   // turns on the display
}

void matrix_scan_user(void) {
  iota_gfx_task();  // this is what updates the display continuously
}
#endif

#ifdef RGBLIGHT_ENABLE
uint32_t layer_state_set_keymap(uint32_t state) {
  rgblight_mode_noeeprom(1);
  switch (biton32(state)) {
    case _EDVORAKJ1:
    case _EDVORAKJ2:
      // _EDVORAKJ1 & J2 are same colored
      rgblight_sethsv_noeeprom_white();
      break;
    case _LOWER:
      rgblight_sethsv_noeeprom_red();
      break;
    case _RAISE:
      rgblight_sethsv_noeeprom_blue();
      break;
    case _ADJUST:
      rgblight_sethsv_noeeprom_green();
      break;
    default: //  for any other layers, or the default layer
      rgblight_mode_noeeprom(28);
      rgblight_sethsv_noeeprom_red();
      break;
  }
  return state;
}
#endif

A keyboards/helix/rev2/keymaps/edvorakjp/keymap_4rows.c => keyboards/helix/rev2/keymaps/edvorakjp/keymap_4rows.c +89 -0
@@ 0,0 1,89 @@
#include "helix.h"
#include "keymap_xrows.h"

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  [_EDVORAK] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
     LBRC,RBRC,COMM,DOT , P  , Y  ,                F  , G  , R  , W  , Q  ,BSLS,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     EQL , A  , O  , E  , I  , U  ,                D  , T  , N  , S  , M  ,MINS,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     QUOT,SCLN, X  , C  , V  , Z  ,                B  , H  , J  , K  , L  ,SLSH,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
     LEFT,DOWN, UP ,RGHT,TMB1,TMB2,TMB3,     TMB6,TMB7,TMB8,LEFT,DOWN, UP ,RGHT
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_EDVORAKJ1] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         , AI , OU , EI ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,                   ,    ,    , Y  ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,ANN ,ONN ,ENN ,INN ,UNN ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_EDVORAKJ2] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         , AI , OU , EI ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,                   , Y  ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,ANN ,ONN ,ENN ,INN ,UNN ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_QWERTY] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
     EQL , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,MINS,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     LBRC, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     RBRC, Z  , X  , C  , V  , B  ,                N  , M  ,COMM,DOT ,SLSH,BSLS,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_LOWER] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
      F1 , F2 , F3 , F4 , F5 ,LCBR,               RCBR, 7  , 8  , 9  ,MINS,SLSH,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
      F6 , F7 , F8 , F9 ,F10 ,LPRN,               RPRN, 4  , 5  , 6  ,PLUS,ASTR,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     F11 ,F12 ,PSCR,SLCK,PAUS,LBRC,               RBRC, 1  , 2  , 3  , NO , NO ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
     HOME,PGDN,PGUP,END ,    ,    ,    ,         ,ESC , 0  ,HOME,PGDN,PGUP,END
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_RAISE] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
      F1 , F2 , F3 , F4 , F5 , F6 ,                F7 , F8 , F9 ,F10 ,F11 ,F12 ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     TILD,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN, NO ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     GRV , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  , NO ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
     HOME,PGDN,PGUP,END ,TMB9,ESC ,    ,         ,    ,    ,HOME,PGDN,PGUP,END
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_ADJUST] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         ,    ,    ,   ,EXTOFF,   ,                   ,EXTON,   ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,RST ,DBUG,RTOG,WIN ,    ,                   ,MAC ,QWER,EDJP,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  )
};

A keyboards/helix/rev2/keymaps/edvorakjp/keymap_5rows.c => keyboards/helix/rev2/keymaps/edvorakjp/keymap_5rows.c +103 -0
@@ 0,0 1,103 @@
#include "helix.h"
#include "keymap_xrows.h"

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  [_EDVORAK] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
     GRV ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     LBRC,RBRC,COMM,DOT , P  , Y  ,                F  , G  , R  , W  , Q  ,BSLS,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     EQL , A  , O  , E  , I  , U  ,                D  , T  , N  , S  , M  ,MINS,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
     QUOT,SCLN, X  , C  , V  , Z  ,TMB4,     TMB5, B  , H  , J  , K  , L  ,SLSH,
  //|----+----+----+----+----+----+----|    |----+----+----+----+----+----+----|
     LEFT,DOWN, UP ,RGHT,TMB1,TMB2,TMB3,     TMB6,TMB7,TMB8,LEFT,DOWN, UP ,RGHT
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_EDVORAKJ1] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         , AI , OU , EI ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,                   ,    ,    , Y  ,    ,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
         ,ANN ,ONN ,ENN ,INN ,UNN ,    ,         ,    ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----+----|    |----+----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_EDVORAKJ2] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         , AI , OU , EI ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,                   , Y  ,    ,    ,    ,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
         ,ANN ,ONN ,ENN ,INN ,UNN ,    ,         ,    ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----+----|    |----+----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_QWERTY] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
     GRV ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     EQL , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,MINS,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
     LBRC, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
     RBRC, Z  , X  , C  , V  , B  ,    ,         , N  , M  ,COMM,DOT ,SLSH,BSLS,
  //|----+----+----+----+----+----+----|    |----+----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_LOWER] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         ,    ,    ,    ,    ,    ,                   ,    ,SLSH,ASTR,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
      F1 , F2 , F3 , F4 , F5 ,LCBR,               RCBR, 7  , 8  , 9  ,MINS,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
      F6 , F7 , F8 , F9 ,F10 ,LPRN,               RPRN, 4  , 5  , 6  ,PLUS,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
     F11 ,F12 ,PSCR,SLCK,PAUS,LBRC,LOCK,         ,RBRC, 1  , 2  , 3  ,    ,    ,
  //|----+----+----+----+----+----+----|    |----+----+----+----+----+----+----|
     HOME,PGDN,PGUP,END ,TMB9,    ,    ,         ,    , 0  ,HOME,PGDN,PGUP,END
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_RAISE] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         ,    ,    ,    ,    ,    ,                   ,    ,SLSH,ASTR,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
      F1 , F2 , F3 , F4 , F5 ,LCBR,               RCBR, 7  , 8  , 9  ,MINS,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
      F6 , F7 , F8 , F9 ,F10 ,LPRN,               RPRN, 4  , 5  , 6  ,PLUS,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
     F11 ,F12 ,PSCR,SLCK,PAUS,LBRC,LOCK,         ,RBRC, 1  , 2  , 3  ,    ,    ,
  //|----+----+----+----+----+----+----|    |----+----+----+----+----+----+----|
     HOME,PGDN,PGUP,END ,TMB9,    ,    ,         ,    , 0  ,HOME,PGDN,PGUP,END
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  ),

  [_ADJUST] = LAYOUT_kc(
  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
         ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,    ,    ,   ,EXTOFF,   ,                   ,EXTON,   ,    ,    ,    ,
  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
         ,RST ,DBUG,RTOG,WIN ,    ,                   ,MAC ,QWER,EDJP,    ,    ,
  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,    ,
  //|----+----+----+----+----+----+----|    |----+----+----+----+----+----+----|
         ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
  //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
  )
};

A keyboards/helix/rev2/keymaps/edvorakjp/keymap_xrows.h => keyboards/helix/rev2/keymaps/edvorakjp/keymap_xrows.h +28 -0
@@ 0,0 1,28 @@
#ifndef KEYMAP_XROWS_H
#define KEYMAP_XROWS_H

#include "edvorakjp.h"

enum custom_keycodes {
  KC_LOCK = NEW_SAFE_RANGE,
};

#define KC_ KC_TRNS

#define KC_TMB1 LGUI_T(KC_TAB)
#define KC_TMB2 LSFT_T(KC_SPC)
#define KC_TMB3 LOWER // act as LOWER when hold, as KC_LANG2(=English) when tapped
#define KC_TMB4 LCTL_T(KC_ESC)
#define KC_TMB5 RSFT_T(KC_DEL)
#define KC_TMB6 RAISE // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
#define KC_TMB7 RCTL_T(KC_BSPC)
#define KC_TMB8 RALT_T(KC_ENT)
#define KC_TMB9 LGUI(KC_TAB)

#define KC_RST  RESET
#define KC_DBUG DEBUG
#define KC_RTOG RGB_TOG
#define KC_EDJP EDVORAK
#define KC_QWER QWERTY

#endif

A keyboards/helix/rev2/keymaps/edvorakjp/oled.c => keyboards/helix/rev2/keymaps/edvorakjp/oled.c +87 -0
@@ 0,0 1,87 @@
#include <string.h>
#include "oled.h"

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);
}

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;
  }
}

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 (edvorakjp_config.enable_kc_lang) {
    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[40];
  snprintf(buf,sizeof(buf), "Undef-%ld", layer_state);
  matrix_write_P(matrix, PSTR("\nLayer: "));
  switch (biton32(layer_state)) {
    case L_BASE:
      matrix_write_P(matrix,
          default_layer_state == 1UL<<_EDVORAK ? PSTR("EDVORAK") : PSTR("QWERTY")
          );
      break;
    case _EDVORAKJ1:
    case _EDVORAKJ2:
      matrix_write_P(matrix, PSTR("JP_EXT"));
      break;
    case _RAISE:
      matrix_write_P(matrix, PSTR("Raise"));
      break;
    case _LOWER:
      matrix_write_P(matrix, PSTR("Lower"));
      break;
    case _ADJUST:
      matrix_write_P(matrix, PSTR("Adjust"));
      break;
    default:
      matrix_write(matrix, buf);
  }

  // Host Keyboard LED Status
  char led[40];
  snprintf(led, sizeof(led), "\n%s %s %s %s",
      edvorakjp_config.enable_jp_extra_layer && japanese_mode ? "EXT" : "   ",
      (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NMLK" : "    ",
      (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);
}

A keyboards/helix/rev2/keymaps/edvorakjp/oled.h => keyboards/helix/rev2/keymaps/edvorakjp/oled.h +19 -0
@@ 0,0 1,19 @@
#ifndef OLED_USER_H
#define OLED_USER_H

//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#include "ssd1306.h"
#include "edvorakjp.h"

//assign the right code to your layers for OLED display
#define L_BASE 0

extern uint8_t is_master;
extern bool japanese_mode;

void matrix_update(struct CharacterMatrix *dest,
                   const struct CharacterMatrix *source);
void render_status(struct CharacterMatrix *matrix);
void iota_gfx_task_user(void);

#endif // OLED_CONFIG_USER_H

A keyboards/helix/rev2/keymaps/edvorakjp/readme.md => keyboards/helix/rev2/keymaps/edvorakjp/readme.md +21 -0
@@ 0,0 1,21 @@
# edvorakjp

Epaew's Enhanced Dvorak layout for Japanese Programmer  
see [here](/users/edvorakjp) for more informations.

## License

Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew

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/>.

A keyboards/helix/rev2/keymaps/edvorakjp/rules.mk => keyboards/helix/rev2/keymaps/edvorakjp/rules.mk +126 -0
@@ 0,0 1,126 @@
# 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" instead 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 'edvorakjp' keymap: convenient command line option
##    make HELIX=<options> helix:edvorakjp
##    option= oled | back | under | na | ios
##    ex.
##      make HELIX=oled          helix:edvorakjp
##      make HELIX=oled,back     helix:edvorakjp
##      make HELIX=oled,under    helix:edvorakjp
##      make HELIX=oled,back,na  helix:edvorakjp
##      make HELIX=oled,back,ios helix:edvorakjp
##
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 )

ifeq ($(strip $(HELIX_ROWS)), 4)
  SRC += keymap_4rows.c
else ifeq ($(strip $(HELIX_ROWS)), 5)
  SRC += keymap_5rows.c
else
  $(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value)
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
  OPT_DEFS += -DRGBLED_BACK
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
  SRC += oled.c
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 )

M keyboards/iris/keymaps/edvorakjp/keymap.c => keyboards/iris/keymaps/edvorakjp/keymap.c +0 -2
@@ 4,8 4,6 @@

#include "edvorakjp.h"

extern edvorakjp_config_t edvorakjp_config;

enum custom_keycodes {
  KC_LOCK = NEW_SAFE_RANGE,
};

M users/edvorakjp/edvorakjp.h => users/edvorakjp/edvorakjp.h +1 -0
@@ 15,6 15,7 @@ typedef union {
    bool enable_kc_lang        : 1;  // for macOS
  };
} edvorakjp_config_t;
extern edvorakjp_config_t edvorakjp_config;

enum edvorakjp_layers {
  _EDVORAK = 0,