diff options
| -rw-r--r-- | keyboards/sol/keymaps/kageurufu/keymap.c | 346 | ||||
| -rw-r--r-- | keyboards/sol/keymaps/kageurufu/readme.md | 47 | ||||
| -rw-r--r-- | keyboards/zen/keymaps/kageurufu/keymap.c | 62 | ||||
| -rw-r--r-- | users/kageurufu/config.h | 4 | ||||
| -rw-r--r-- | users/kageurufu/custom_rgb.c | 18 | ||||
| -rw-r--r-- | users/kageurufu/custom_rgb.h | 3 | ||||
| -rw-r--r-- | users/kageurufu/kageurufu.c | 12 | ||||
| -rw-r--r-- | users/kageurufu/kageurufu.h | 5 | ||||
| -rw-r--r-- | users/kageurufu/layouts.h | 58 | ||||
| -rw-r--r-- | users/kageurufu/process_records.c | 44 | ||||
| -rw-r--r-- | users/kageurufu/process_records.h | 27 | ||||
| -rw-r--r-- | users/kageurufu/readme.md (renamed from keyboards/sol/keymaps/kageurufu/config.h) | 13 | ||||
| -rw-r--r-- | users/kageurufu/rules.mk | 15 | 
13 files changed, 294 insertions, 360 deletions
| diff --git a/keyboards/sol/keymaps/kageurufu/keymap.c b/keyboards/sol/keymaps/kageurufu/keymap.c index 822256d85f..9ea89db058 100644 --- a/keyboards/sol/keymaps/kageurufu/keymap.c +++ b/keyboards/sol/keymaps/kageurufu/keymap.c @@ -1,69 +1,35 @@  #include QMK_KEYBOARD_H +#include "kageurufu.h"  #ifdef PROTOCOL_LUFA  #include "lufa.h"  #include "split_util.h"  #endif -#ifdef SSD1306OLED -  #include "common/ssd1306.h" -#endif  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 { -    _QWERTY = 0, -    _COLEMAK, -    _FN, -    _ADJ -}; - -enum custom_keycodes { -  QWERTY = SAFE_RANGE, -  COLEMAK, -  FN, -  ADJ, -  BACKLIT, -  RGBRST -}; - -enum macro_keycodes { -  KC_SAMPLEMACRO, -}; - -#define FN_ESC  LT(_FN, KC_ESC) - -// Define your non-alpha grouping in this define's LAYOUT, and all your BASE_LAYERS will share the same mod/macro columns -  /* Base Layout -   * ,------------------------------------------------.  ,------------------------------------------------. -   * |   `  |      |      |      |      |      |      |  |      |      |      |      |      |      | BkSp | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * | Tab  |      |      |      |      |      |      |  |      |      |      |      |      |      |   \  | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * | Esc  |      |      |      |      |      |      |  |      |      |      |      |      |      |   '  | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * | Sft( |      |      |      |      |      |      |  |      |      |      |      |      |      | Sft) | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * | Ctrl |  Win |  Win |  Alt |  FN  | Space|  RGB |  |  FN  |  FN  |   -  |   =  | Down | PgUp | PgDn | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   *                                    | Space| Bksp |  | Enter| Space| -   *                                    `-------------'  `--------=----' -   */ -#define BASE_LAYOUT( \ +/* Base Layout +  * ,------------------------------------------------.  ,------------------------------------------------. +  * |   `  |      |      |      |      |      |      |  |      |      |      |      |      |      | BkSp | +  * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| +  * | Tab  |      |      |      |      |      |      |  |      |      |      |      |      |      |   \  | +  * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| +  * | Esc  |      |      |      |      |      |      |  |      |      |      |      |      |      |   '  | +  * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| +  * | Sft( |      |      |      |      |      |      |  |      |      |      |      |      |      | Sft) | +  * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| +  * | Ctrl |  Win |  Win |  Alt |  FN  | Space|  RGB |  |  FN  |  FN  |   -  |   =  | Down | PgUp | PgDn | +  * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| +  *                                    | Space| Bksp |  | Enter| Space| +  *                                    `-------------'  `--------=----' +  */ +#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__) +#define _BASE_LAYOUT( \    _00, _01, _02, _03, _04,  _05, _06, _07, _08, _09, \    _10, _11, _12, _13, _14,  _15, _16, _17, _18, _19, \    _20, _21, _22, _23, _24,  _25, _26, _27, _28, _29 \  ) \ -LAYOUT( \ +EXPAND_LAYOUT( \        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,   RGB_MOD,  KC_EQL,  KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \        KC_TAB,  _00,     _01,     _02,     _03,     _04,    KC_LBRC,  KC_RBRC, _05,     _06,     _07,     _08,     _09,     KC_BSLS, \        FN_ESC,  _10,     _11,     _12,     _13,     _14,    RGB_SAI,  RGB_VAI, _15,     _16,     _17,     _18,     _19,     KC_QUOT, \ @@ -71,265 +37,43 @@ LAYOUT( \        KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, FN,      KC_SPC, FN,       FN,      KC_SPC,  KC_MINS, KC_EQL,  KC_DOWN, KC_PGUP, KC_PGDN, \                          KC_VOLD, KC_VOLU,          KC_SPC, KC_BSPC,  KC_ENT,  KC_SPC,           KC_VOLD, KC_VOLU \  ) +#define BASE_LAYOUT(...) _BASE_LAYOUT(__VA_ARGS__)  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -  /* Qwerty -   * ,------------------------------------------------.  ,------------------------------------------------. -   * |      |      |      |      |      |      |      |  |      |      |      |      |      |      |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * |      |   Q  |   W  |   E  |   R  |   T  |      |  |      |   Y  |   U  |   I  |   O  |   P  |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * |      |   A  |   S  |   D  |   F  |   G  |      |  |      |   H  |   J  |   K  |   L  |   ;  |      | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * |      |   Z  |   X  |   C  |   V  |   B  |      |  |      |   N  |   M  |   ,  |   .  |   /  |      | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * |      |      |      |      |      |      |      |  |      |      |      |      |      |      |      | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   *                                    |      |      |  |      |      | -   *                                    `-------------'  `--------=----' -   */ +    [_QWERTY] = BASE_LAYOUT( \ -      KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    \ -      KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, \ -      KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH  \ +      _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, \ +      _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, \ +      _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ \    ), -  /* Colemak -   * ,------------------------------------------------.  ,------------------------------------------------. -   * |      |      |      |      |      |      |      |  |      |      |      |      |      |      |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * |      |   Q  |   W  |   F  |   P  |   B  |      |  |      |   J  |   L  |   U  |   Y  |   ;  |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * |      |   A  |   R  |   S  |   T  |   G  |      |  |      |   K  |   N  |   E  |   I  |   O  |      | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * |      |   Z  |   X  |   C  |   D  |   V  |   [  |  |   ]  |   M  |   H  |   ,  |   .  |   /  |      | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * |      |      |      |      |      |      |      |  |      |      |      |      |      |      |      | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   *                                    |      |      |  |      |      | -   *                                    `-------------'  `--------=----' -   */    [_COLEMAK] = BASE_LAYOUT( \ -      KC_Q,    KC_W,    KC_F,    KC_P,    KC_B,   KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, \ -      KC_A,    KC_R,    KC_S,    KC_T,    KC_G,   KC_K,    KC_N,    KC_E,    KC_I,    KC_O,    \ -      KC_Z,    KC_X,    KC_C,    KC_D,    KC_V,   KC_M,    KC_H,    KC_COMM, KC_DOT,  KC_SLSH +      _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, \ +      _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, \ +      _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ \    ), +  [_COLEMAK_DH] = BASE_LAYOUT( \ +      ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, \ +      ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, \ +      ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ \ +  ), -  /* FN -   * ,------------------------------------------------.  ,------------------------------------------------. -   * |   ~  |   !  |   @  |   #  |   $  |   %  |      |  |      |   ^  |   &  |   *  |   (  |   )  |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * |   ~  |   !  |   @  |   #  |   $  |   %  |      |  |      |   ^  |   &  |   *  |   (  |   )  |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * | Ctrl |   A  |   O  |   E  |   U  |   I  |      |  |      |   D  |   H  |   T  |   N  |   S  |  /   | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * | Shift|   ;  |   Q  |   J  |   K  |   X  |   [  |  |   ]  |   B  |   M  |   W  |   V  |   Z  |Enter | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * |  ADJ | Esc  | Alt  | GUI  | EISU |Lower |Space |  |Space |FN | KANA | Left | Down |  Up  |Right | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   *                                    |Lower |Space |  |Space |FN | -   *                                    `-------------'  `------------' -   */ -  [_FN] = LAYOUT( \ -      KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   _______, KC_PSCR, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12, \ -      _______, KC_PGDN, KC_UP,   KC_PGUP, _______, KC_LBRC, _______, _______, KC_RBRC, KC_7,    KC_UP,   KC_9,    KC_0,    KC_HOME, \ -      ADJ,     KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_RBRC, KC_END, \ -      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, _______, \ -      _______, _______, _______, _______, ADJ,     _______, ADJ,     ADJ,     ADJ,     KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, \ -                        KC_VOLD, KC_VOLU,          _______, KC_DEL,  _______, _______,          KC_VOLD, KC_VOLU \ +  [_FN] = EXPAND_LAYOUT( \ +      ________________FUNCTION_L1________________, _______, KC_PSCR, ________________FUNCTION_R1________________, \ +      ________________FUNCTION_L2________________, _______, _______, ________________FUNCTION_R2________________, \ +      ________________FUNCTION_L3________________, _______, _______, ________________FUNCTION_R3________________, \ +      ________________FUNCTION_L4________________, _______, _______, ________________FUNCTION_R4________________, \ +      ________________FUNCTION_L5________________, ADJ,     ADJ,     ________________FUNCTION_R5________________, \ +               KC_VOLD, KC_VOLU,          _______, KC_DEL,  _______, _______,          KC_VOLD, KC_VOLU \        ), -  /* ADJ -   * ,------------------------------------------------.  ,------------------------------------------------. -   * |   ~  |   !  |   @  |   #  |   $  |   %  |      |  |      |   ^  |   &  |   *  |   (  |   )  |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * |   ~  |   !  |   @  |   #  |   $  |   %  |      |  |      |   ^  |   &  |   *  |   (  |   )  |      | -   * |------+------+------+------+------+------|------|  |------|------+------+------+------+------+------| -   * | Ctrl |   A  |   O  |   E  |   U  |   I  |      |  |      |   D  |   H  |   T  |   N  |   S  |  /   | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * | Shift|   ;  |   Q  |   J  |   K  |   X  |   [  |  |   ]  |   B  |   M  |   W  |   V  |   Z  |Enter | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   * |ADJ| Esc  | Alt  | GUI  | EISU |Lower |Space |  |Space |FN | KANA | Left | Down |  Up  |Right | -   * |------+------+------+------+------+------+------|  |------+------+------+------+------+------+------| -   *                                    |Lower |Space |  |Space |FN | -   *                                    `-------------'  `------------' -   */ - -  [_ADJ] =  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, \ -      _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET,   _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ -      _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST,  _______, _______, _______, _______, QWERTY,  COLEMAK, _______, _______, _______, \ -      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ -      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \ +  [_ADJ] =  EXPAND_LAYOUT( \ +      _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________, \ +      _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________, \ +      _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, \ +      _________________ADJUST_L4_________________, _______, _______, _________________ADJUST_R4_________________, \ +      _________________ADJUST_L5_________________, _______, _______, _________________ADJUST_R5_________________, \                 KC_VOLD, KC_VOLU,          _______, _______, _______, _______,          KC_VOLD, KC_VOLU \        )  }; - - -// define variables for reactive RGB -bool TOG_STATUS = false; -int RGB_current_mode; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { -  //uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)); - -  switch (keycode) { -    case QWERTY: -      if (record->event.pressed) { -        set_single_persistent_default_layer(_QWERTY); -      } -      return false; -      break; -    case COLEMAK: -      if(record->event.pressed) { -        set_single_persistent_default_layer(_COLEMAK); -      } -      return false; -      break; -    case FN: -      if (record->event.pressed) { -        layer_on(_FN); -      } else { -        layer_off(_FN); -      } -      return false; -      break; -    case ADJ: -        if (record->event.pressed) { -          layer_on(_ADJ); -        } else { -          layer_off(_ADJ); -        } -        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 RGBRST: -      #ifdef RGBLIGHT_ENABLE -        if (record->event.pressed) { -          eeconfig_update_rgblight_default(); -          rgblight_enable(); -          RGB_current_mode = rgblight_config.mode; -        } -      #endif -      break; -  } -  return true; -} - -void matrix_init_user(void) { -    #ifdef RGBLIGHT_ENABLE -      RGB_current_mode = rgblight_config.mode; -    #endif -    //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h -    #ifdef SSD1306OLED -        iota_gfx_init(!has_usb());   // turns on the display -    #endif -} - -void matrix_scan_user(void) { -  #ifdef SSD1306OLED -    led_test_init(); -    iota_gfx_task();  // this is what updates the display continuously -  #endif -} - - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// hook point for 'led_test' keymap -//   'default' keymap's led_test_init() is empty function, do nothing -//   'led_test' keymap's led_test_init() force rgblight_mode_noeeprom(35); -__attribute__ ((weak)) -void led_test_init(void) {} - -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 0 -#define L_FN (1<<_FN) -#define L_ADJ (1<<_ADJ) -#define L_ADJ_TRI (L_ADJ|L_FN) - -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[40]; -  snprintf(buf,sizeof(buf), "Undef-%ld", layer_state); -  matrix_write_P(matrix, PSTR("\nLayer: ")); -    switch (layer_state) { -        case L_BASE: -           matrix_write_P(matrix, PSTR("Default")); -           break; -        case L_FN: -           matrix_write_P(matrix, PSTR("FN")); -           break; -        case L_ADJ: -        case L_ADJ_TRI: -           matrix_write_P(matrix, PSTR("ADJ")); -           break; -        default: -           matrix_write(matrix, buf); -    } - -  // Host Keyboard LED Status -  char led[40]; -    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 diff --git a/keyboards/sol/keymaps/kageurufu/readme.md b/keyboards/sol/keymaps/kageurufu/readme.md deleted file mode 100644 index 07e15682ec..0000000000 --- a/keyboards/sol/keymaps/kageurufu/readme.md +++ /dev/null @@ -1,47 +0,0 @@ -# KageUrufu's Sol Layout - -Read the keymap for the layout, I don't want to deal with maintained ascii art - -## Customize - -see `qmk_firmware/keyboards/sol/rev1/keymaps/default/rules.mk` - -``` -# Variables you can set for SOL - -BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no        # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes       # Audio control and System control(+450) -CONSOLE_ENABLE = yes        # Console for debug(+400) -COMMAND_ENABLE = yes        # 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 -RGBLIGHT_ENABLE = yes       # Enable global lighting effects. Do not enable with RGB Matrix -LED_ANIMATIONS = yes        # LED animations -LED_MIRRORED = no           # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) -RGB_MATRIX_ENABLE = no      # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500) -RGB_MATRIX_KEYPRESSES = no  # Enable reactive per-key effects. Can be very laggy (+1500) -RGBLIGHT_FULL_POWER = no    # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port -UNICODE_ENABLE = no         # Unicode -SWAP_HANDS_ENABLE = no      # Enable one-hand typing -ENCODER_ENABLE_CUSTOM = yes # Enable rotary encoder (+90) - -OLED_ENABLE = no            # OLED_ENABLE (+5000) -IOS_DEVICE_ENABLE = no      # Limit max brightness to connect to IOS device (iPad,iPhone) - -``` -## Compile - -go to qmk top directory. -``` -$ cd qmk_firmware -``` - -build -``` -$ make sol:default -``` - -After the initial flash with AVRdudess, you should be able to flash using this: -``` -$ make sol:default:dfu -```
\ No newline at end of file diff --git a/keyboards/zen/keymaps/kageurufu/keymap.c b/keyboards/zen/keymaps/kageurufu/keymap.c new file mode 100644 index 0000000000..761100dbe5 --- /dev/null +++ b/keyboards/zen/keymaps/kageurufu/keymap.c @@ -0,0 +1,62 @@ +#include QMK_KEYBOARD_H +#include "kageurufu.h" +#ifdef PROTOCOL_LUFA +#include "lufa.h" +#include "split_util.h" +#endif + +extern keymap_config_t keymap_config; +extern uint8_t is_master; + + +#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__) +#define _BASE_LAYOUT( \ +  _00, _01, _02, _03, _04,  _05, _06, _07, _08, _09, \ +  _10, _11, _12, _13, _14,  _15, _16, _17, _18, _19, \ +  _20, _21, _22, _23, _24,  _25, _26, _27, _28, _29 \ +) \ +EXPAND_LAYOUT( \ +      KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                       KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \ +      KC_TAB,  _00,     _01,     _02,     _03,     _04,                       _05,     _06,     _07,     _08,     _09,     KC_BSLS, \ +      FN_ESC,  _10,     _11,     _12,     _13,     _14,                       _15,     _16,     _17,     _18,     _19,     KC_QUOT, \ +      KC_LSPO, _20,     _21,     _22,     _23,     _24,                       _25,     _26,     _27,     _28,     _29,     KC_RSPC, \ +      KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, FN,      KC_SPC, KC_BSPC,  KC_ENT,  KC_SPC,  KC_MINS, KC_EQL,  KC_DOWN, KC_PGUP, KC_PGDN \ +) +#define BASE_LAYOUT(...) _BASE_LAYOUT(__VA_ARGS__) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  [_QWERTY] = BASE_LAYOUT( \ +      _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, \ +      _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, \ +      _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ \ +  ), + +  [_COLEMAK] = BASE_LAYOUT( \ +      _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, \ +      _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, \ +      _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ \ +  ), + +  [_COLEMAK_DH] = BASE_LAYOUT( \ +      ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, \ +      ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, \ +      ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ \ +  ), + +  [_FN] = EXPAND_LAYOUT( \ +      ________________FUNCTION_L1________________,                   ________________FUNCTION_R1________________, \ +      ________________FUNCTION_L2________________,                   ________________FUNCTION_R2________________, \ +      ________________FUNCTION_L3________________,                   ________________FUNCTION_R3________________, \ +      ________________FUNCTION_L4________________,                   ________________FUNCTION_R4________________, \ +      ________________FUNCTION_L5________________, _______, KC_DEL,  ________________FUNCTION_R5________________ \ +      ), + +  [_ADJ] =  EXPAND_LAYOUT( \ +      _________________ADJUST_L1_________________,                   _________________ADJUST_R1_________________, \ +      _________________ADJUST_L2_________________,                   _________________ADJUST_R2_________________, \ +      _________________ADJUST_L3_________________,                   _________________ADJUST_R3_________________, \ +      _________________ADJUST_L4_________________,                   _________________ADJUST_R4_________________, \ +      _________________ADJUST_L5_________________, _______, _______, _________________ADJUST_R5_________________ \ +      ) +}; diff --git a/users/kageurufu/config.h b/users/kageurufu/config.h new file mode 100644 index 0000000000..938d43dd5a --- /dev/null +++ b/users/kageurufu/config.h @@ -0,0 +1,4 @@ +#pragma once + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/users/kageurufu/custom_rgb.c b/users/kageurufu/custom_rgb.c new file mode 100644 index 0000000000..8e99129b0b --- /dev/null +++ b/users/kageurufu/custom_rgb.c @@ -0,0 +1,18 @@ +#include "custom_rgb.h" + +#if defined(RGBLIGHT_ENABLE) +  extern rgblight_config_t rgblight_config; +  rgblight_config_t _pushed_rgblight_config; +  #define push_rgb_config() { if (_pushed_rgblight_config.raw == 0) { _pushed_rgblight_config.raw = rgblight_config.raw; } } +  #define pop_rgb_config() { if (_pushed_rgblight_config.raw == 0) { rgblight_config.raw = _pushed_rgblight_config.raw; _pushed_rgblight_config.raw = 0; } } +#elif defined(RGB_MATRIX_ENABLE) +  extern rgb_config_t rgb_matrix_config; +  rgb_config_t _pushed_rgb_matrix_config; +  #define push_rgb_config() _pushed_rgb_matrix_config.raw = rgb_matrix_config.raw +  #define pop_rgb_config() rgb_matrix_config.raw = _pushed_rgb_matrix_config.raw +#endif + + +bool process_record_rgb(uint16_t keycode, keyrecord_t *record) { +  return true; +} diff --git a/users/kageurufu/custom_rgb.h b/users/kageurufu/custom_rgb.h new file mode 100644 index 0000000000..62d64fd4c5 --- /dev/null +++ b/users/kageurufu/custom_rgb.h @@ -0,0 +1,3 @@ +#pragma once + +#include "kageurufu.h" diff --git a/users/kageurufu/kageurufu.c b/users/kageurufu/kageurufu.c new file mode 100644 index 0000000000..e16af571bd --- /dev/null +++ b/users/kageurufu/kageurufu.c @@ -0,0 +1,12 @@ +#include "kageurufu.h" +#include "quantum.h" +#include "process_records.h" + +#ifdef RGBLIGHT_ENABLE +  //Following line allows macro to read current RGB settings +  extern rgblight_config_t rgblight_config; +  rgblight_config_t backup_rgblight_config; + +  __attribute__((weak)) +  uint8_t RGBLIGHT_MODS[] = {0}; +#endif diff --git a/users/kageurufu/kageurufu.h b/users/kageurufu/kageurufu.h new file mode 100644 index 0000000000..76a0126fec --- /dev/null +++ b/users/kageurufu/kageurufu.h @@ -0,0 +1,5 @@ +#pragma once + +#include "quantum.h" +#include "process_records.h" +#include "layouts.h" diff --git a/users/kageurufu/layouts.h b/users/kageurufu/layouts.h new file mode 100644 index 0000000000..eccfa0700e --- /dev/null +++ b/users/kageurufu/layouts.h @@ -0,0 +1,58 @@ +#pragma once + + +#define _________________NUMROW_L1_________________        KC_1,    KC_2,    KC_3,    KC_4,    KC_5 +#define _________________NUMROW_R1_________________        KC_6,    KC_7,    KC_8,    KC_9,    KC_0 + + +#define _________________QWERTY_L1_________________        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T +#define _________________QWERTY_L2_________________        KC_A,    KC_S,    KC_D,    KC_F,    KC_G +#define _________________QWERTY_L3_________________        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B + +#define _________________QWERTY_R1_________________        KC_Y,    KC_U,    KC_I,    KC_O,    KC_P +#define _________________QWERTY_R2_________________        KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN +#define _________________QWERTY_R3_________________        KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLASH + + +#define _________________COLEMAK_L1________________       KC_Q,    KC_W,    KC_F,    KC_P,    KC_G +#define _________________COLEMAK_L2________________       KC_A,    KC_R,    KC_S,    KC_T,    KC_D +#define _________________COLEMAK_L3________________       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B + +#define _________________COLEMAK_R1________________       KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN +#define _________________COLEMAK_R2________________       KC_H,    KC_N,    KC_E,    KC_I,    KC_O +#define _________________COLEMAK_R3________________       KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLASH + + +#define ______________COLEMAK_MOD_DH_L1____________       KC_Q,    KC_W,    KC_F,    KC_P,    KC_B +#define ______________COLEMAK_MOD_DH_L2____________       KC_A,    KC_R,    KC_S,    KC_T,    KC_G +#define ______________COLEMAK_MOD_DH_L3____________       KC_Z,    KC_X,    KC_C,    KC_D,    KC_V + +#define ______________COLEMAK_MOD_DH_R1____________       KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN +#define ______________COLEMAK_MOD_DH_R2____________       KC_M,    KC_N,    KC_E,    KC_I,    KC_O +#define ______________COLEMAK_MOD_DH_R3____________       KC_K,    KC_H,    KC_COMM, KC_DOT,  KC_SLASH + + +#define ________________FUNCTION_L1________________     KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6 +#define ________________FUNCTION_L2________________     _______, KC_PGDN, KC_UP,   KC_PGUP, _______, KC_LBRC +#define ________________FUNCTION_L3________________     ADJ,     KC_LEFT, KC_DOWN, KC_RGHT, _______, _______ +#define ________________FUNCTION_L4________________     _______, _______, _______, _______, _______, _______ +#define ________________FUNCTION_L5________________     _______, _______, _______, _______, ADJ,     _______ + +#define ________________FUNCTION_R1________________     KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12 +#define ________________FUNCTION_R2________________     KC_RBRC, KC_7,    KC_UP,   KC_9,    KC_0,    KC_HOME +#define ________________FUNCTION_R3________________     _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_RBRC, KC_END +#define ________________FUNCTION_R4________________     _______, _______, _______, KC_PGDN, KC_PGUP, _______ +#define ________________FUNCTION_R5________________     ADJ,     KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU + + +#define _________________ADJUST_L1_________________     KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6 +#define _________________ADJUST_L2_________________     _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET,   _______ +#define _________________ADJUST_L3_________________     _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST,  _______ +#define _________________ADJUST_L4_________________     _______, _______, _______, _______, _______, _______ +#define _________________ADJUST_L5_________________     _______, _______, _______, _______, _______, _______ + +#define _________________ADJUST_R1_________________     KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12 +#define _________________ADJUST_R2_________________     _______, _______, _______, _______, _______, KC_DEL +#define _________________ADJUST_R3_________________     _______, QWERTY,  COLEMAK, CMAK_DH, _______, _______ +#define _________________ADJUST_R4_________________     _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI +#define _________________ADJUST_R5_________________     _______, _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD diff --git a/users/kageurufu/process_records.c b/users/kageurufu/process_records.c new file mode 100644 index 0000000000..63dbcff89b --- /dev/null +++ b/users/kageurufu/process_records.c @@ -0,0 +1,44 @@ +#include "kageurufu.h" + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +  switch (keycode) { +    case QWERTY: +      if (record->event.pressed) { +        set_single_persistent_default_layer(_QWERTY); +      } +      return false; +      break; +    case COLEMAK: +      if(record->event.pressed) { +        set_single_persistent_default_layer(_COLEMAK); +      } +      return false; +      break; +    case RGBRST: +      #ifdef RGBLIGHT_ENABLE +        if (record->event.pressed) { +          eeconfig_update_rgblight_default(); +          rgblight_enable(); +        } +      #endif +      break; +  } + + +  return process_record_keymap(keycode, record) && +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) +    process_record_rgb(keycode, record) && +#endif // RGBLIGHT_ENABLE; +    true; +} + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { +  return true; +} + + +__attribute__ ((weak)) +bool process_record_rgb(uint16_t keycode, keyrecord_t *record) { +  return true; +} diff --git a/users/kageurufu/process_records.h b/users/kageurufu/process_records.h new file mode 100644 index 0000000000..d1c50a4112 --- /dev/null +++ b/users/kageurufu/process_records.h @@ -0,0 +1,27 @@ +#pragma once +#include "kageurufu.h" + +#define FN_ESC  LT(_FN, KC_ESC) +#define FN      MO(_FN) +#define ADJ     MO(_ADJ) + +enum layer_number { +    _QWERTY = 0, +    _COLEMAK, +    _COLEMAK_DH, +    _FN, +    _ADJ, +    ADDITIONAL_LAYER +}; + +enum custom_keycodes { +  QWERTY = SAFE_RANGE, +  COLEMAK, +  CMAK_DH, +  RGBRST, +  KAGEURUFU_SAFE_RANGE +}; + + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record); +bool process_record_rgb(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/sol/keymaps/kageurufu/config.h b/users/kageurufu/readme.md index 452cdda823..57dd85d6be 100644 --- a/keyboards/sol/keymaps/kageurufu/config.h +++ b/users/kageurufu/readme.md @@ -1,8 +1,4 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako <[email protected]> -Copyright 2015 Jack Humbert +Copyright 2018- Franklyn Tackitt [email protected] @kageurufu  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 @@ -16,10 +12,3 @@ 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/>. -*/ - -#pragma once - - -// place overrides here - diff --git a/users/kageurufu/rules.mk b/users/kageurufu/rules.mk new file mode 100644 index 0000000000..1bd16e2626 --- /dev/null +++ b/users/kageurufu/rules.mk @@ -0,0 +1,15 @@ +SRC += kageurufu.c \ +       process_records.c \ +       custom_rgb.c + +# Link time optimization, should save on firmware size +EXTRAFLAGS += -flto + + +# Some usual defaults +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +COMMAND_ENABLE = yes +CONSOLE_ENABLE = yes +RGBLIGHT_ENABLE = yes +RGBLIGHT_ANIMATIONS = yes | 
