~ruther/qmk_firmware

90ad47b1f24af2aef20b871b4061523c68eb2c4e — QMK Bot 3 years ago f996a4c + 07f6fba
Merge remote-tracking branch 'origin/master' into develop
A keyboards/preonic/keymaps/jpe230/config.h => keyboards/preonic/keymaps/jpe230/config.h +28 -0
@@ 0,0 1,28 @@
/*
Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>

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

#pragma once

#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(ODE_TO_JOY)
#endif

#define MUSIC_MASK (keycode != KC_NO)

#define ENABLE_COMPILE_KEYCODE
#define AUDIO_ENABLE_TONE_MULTIPLEXING
#define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
\ No newline at end of file

A keyboards/preonic/keymaps/jpe230/jpe230.h => keyboards/preonic/keymaps/jpe230/jpe230.h +35 -0
@@ 0,0 1,35 @@
/*
Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>

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

#ifdef VIA_ENABLE
  #define USER_START USER00
#else
  #define USER_START SAFE_RANGE
#endif

enum jpe230_keycodes {
  KC_LSRS = USER_START,
  KC_LERS,
  KC_LSRE
};

#define LEFT_BAR 0, 9, 5
#define RIGHT_BAR 0, 9, 1

float song_lsrs[][2] = SONG(QWERTY_SOUND);
float song_lers[][2] = SONG(COLEMAK_SOUND);
float song_lsre[][2] = SONG(DVORAK_SOUND);
\ No newline at end of file

A keyboards/preonic/keymaps/jpe230/keymap.c => keyboards/preonic/keymaps/jpe230/keymap.c +116 -0
@@ 0,0 1,116 @@
/*
Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>

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

#include QMK_KEYBOARD_H
#include "jpe230.h"

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT_preonic_grid(
  //,-----------------------------------------------------------------------------------------------------------.
       KC_ESC,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,  KC_DEL,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
       KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,  KC_BSPC,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_LCTL,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_LSFT,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,  KC_ESC,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_LBRC, KC_RBRC, KC_LGUI,   MO(1), _______,  KC_SPC, _______,  KC_ENT,   MO(2), KC_RALT, KC_MINS,  KC_EQL
  //`-----------------------------------------------------------------------------------------------------------'
  ),

  [1] = LAYOUT_preonic_grid(
  //,-----------------------------------------------------------------------------------------------------------.
       KC_GRV,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10, KC_BSPC,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
       KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______,   CK_UP,  AU_TOG,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_CAPS, _______, _______, _______, _______, _______, _______,   KC_UP, _______, _______, CK_DOWN, _______,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_LSFT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______,  CK_RST, _______,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      _______, _______, _______, _______, _______, _______, _______, _______,   MO(3), _______, _______, _______
  //`-----------------------------------------------------------------------------------------------------------'
  ),

  [2] = LAYOUT_preonic_grid(
  //,-----------------------------------------------------------------------------------------------------------.
       KC_GRV,  KC_F11,  KC_F12,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10, KC_BSPC,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
       KC_ESC, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_CAPS, _______, KC_MS_U, _______, _______, _______, KC_MINS,  KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,  KC_GRV,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_LSFT, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      _______, _______, _______,  MO(3),  _______, KC_BTN1, _______, _______, _______, _______, _______, _______
  //`-----------------------------------------------------------------------------------------------------------'
  ),

  [3] = LAYOUT_preonic_grid(
  //,-----------------------------------------------------------------------------------------------------------.
       KC_ESC,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,  KC_DEL,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_MUTE, KC_WBAK, KC_WFWD,   KC_F7,   KC_F8,   KC_F9, _______,    KC_7,    KC_8,    KC_9, _______, QK_BOOT,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_VOLU, _______, KC_MNXT,   KC_F6,   KC_F5,   KC_F6, _______,    KC_6,    KC_5,    KC_4, _______, QK_MAKE,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
      KC_VOLD, KC_MPRV, KC_MNXT,   KC_F1,   KC_F2,   KC_F3, KC_LSRS,    KC_1,    KC_2,    KC_3, _______, DB_TOGG,
  //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
       MU_TOG,  MU_MOD, _______, _______, _______, KC_LSRE, _______, KC_LERS, _______, _______, _______,  EE_CLR
  //`-----------------------------------------------------------------------------------------------------------'
  )
};

/* 
Logic to shift between the bars:
    KC_LSRE => Left Bar - Space... Right Bar - Enter
    KC_LERS => Left Bar - Enter... Right Bar - Space
    KC_LSRS => Left Bar - Space... Right Bar - Space

    Hack into dynamic_keymap_set_keycode and change the value of the keymap.
    (Just like VIA does, but instead it is done inside the keyboard so no need
    to open the app)

    Possible alternatives:
        - Create 3 layers but only change the KC_ENTER and KC_SPACE position between them
        - Create a custom keycode and use process_record_user to alter the behaviour
*/
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  if (record->event.pressed) {
    switch (keycode) {
    case KC_LSRS:
      dynamic_keymap_set_keycode(LEFT_BAR, KC_SPC);
      dynamic_keymap_set_keycode(RIGHT_BAR, KC_SPC);
      PLAY_SONG(song_lsrs);
      return false;
    case KC_LERS:
      dynamic_keymap_set_keycode(LEFT_BAR, KC_ENT);
      dynamic_keymap_set_keycode(RIGHT_BAR, KC_SPC);
      PLAY_SONG(song_lers);
      return false;
    case KC_LSRE:
      dynamic_keymap_set_keycode(LEFT_BAR, KC_SPC);
      dynamic_keymap_set_keycode(RIGHT_BAR, KC_ENT);
      PLAY_SONG(song_lsre);
      return false;
    default:
      return true; // Process all other keycodes normally
    }
  }
  return true;
}

A keyboards/preonic/keymaps/jpe230/rules.mk => keyboards/preonic/keymaps/jpe230/rules.mk +9 -0
@@ 0,0 1,9 @@
# Disable unused features inherited from the kb rules.mk
RGBLIGHT_ENABLE   = no 
ENCODER_ENABLE    = no
DIP_SWITCH_ENABLE = no
CONSOLE_ENABLE    = no
COMMAND_ENABLE    = no

# Enable VIA
VIA_ENABLE = yes
\ No newline at end of file

A keyboards/ymdk/sp64/keymaps/minkezhang/config.h => keyboards/ymdk/sp64/keymaps/minkezhang/config.h +5 -0
@@ 0,0 1,5 @@
// Copyright 2022 Minke Zhang (@minkezhang)
// SPDX-License-Identifier: GPL-3.0-only
#pragma once

#define RGBLIGHT_LAYERS

A keyboards/ymdk/sp64/keymaps/minkezhang/keymap.c => keyboards/ymdk/sp64/keymaps/minkezhang/keymap.c +149 -0
@@ 0,0 1,149 @@
// Copyright 2022 Minke Zhang (@minkezhang)
// SPDX-License-Identifier: GPL-3.0-only
#include QMK_KEYBOARD_H

/* Layer transitions diagram
 *
 * BASE <-> _FN     [MO]
 * BASE <-> _NUM    [TG]
 * _NUM <-> _MIRROR [MO]
 *
 * Direct transitions between layers not listed here are considered bugs.
 */
enum layer_names {
    BASE,     // default layer
    _FN,      // function layer
    _NUM,     // numpad
    _MIRROR,  // mirrorboard layer
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
 *
 * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐    ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐
 * │ Esc │  1  │  2  │  3  │  4  │  5  │  6  │    │  7  │  8  │  9  │  0  │  -  │  =  │ BkSp     │
 * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤
 * │ Tab    │  Q  │  W  │  E  │  R  │  T  │    │  Y  │  U  │  I  │  O  │  P  │  [  │  ]  │ \     │
 * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤
 * │ Caps    │  A  │  S  │  D  │  F  │  G  │    │  H  │  J  │  K  │  L  │  ;  │  '  │ Enter      │
 * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤
 * │ LShift   │  Z  │  X  │  C  │  V  │  B  │    │  N  │  M  │  <  │  >  │  ?  │Shft │ Up  │ Del │
 * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘   ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤
 * │ Ctrl │ Win │ Alt  │ Fn          │ Sp  │    │               │ Alt   │ Fn   │ Lft │ Dwn │ Rgt │
 * └------┴-----┴------┴-------------┴-----┘    └---------------┴-------┴------┴-----┴-----┴-----┘
 */
[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_MINUS,    KC_EQUAL,    KC_BSPC,
  KC_TAB,  KC_Q,    KC_W,    KC_E,     KC_R, KC_T,           KC_Y,     KC_U, KC_I,    KC_O,     KC_P,      KC_LBRACKET, KC_RBRACKET, KC_BSLS,
  KC_CAPS, KC_A,    KC_S,    KC_D,     KC_F, KC_G,           KC_H,     KC_J, KC_K,    KC_L,     KC_SCOLON, KC_QUOTE,                 KC_ENT,
  KC_LSFT, KC_Z,    KC_X,    KC_C,     KC_V, KC_B,           KC_N,     KC_M, KC_COMM, KC_DOT,   KC_SLSH,   KC_RSFT,     KC_UP,       KC_DEL,
  KC_LCTL, KC_LGUI, KC_LALT, MO(_FN),        KC_SPACE,       KC_SPACE,       KC_RALT, TG(_NUM),            KC_LEFT,     KC_DOWN,     KC_RIGHT
  ),

/* Function
 *
 * Cannot access the _NUM layer directly.
 *
 * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐    ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐
 * │  `  │ F1  │ F2  │ F3  │ F4  │ F5  │ F6  │    │ F7  │ F8  │ F9  │ F10 │ F11 │ F12 │          │
 * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤
 * │        │     │     │ Up  │     │     │    │     │     │     │     │     │     │     │       │
 * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤
 * │ Enter   │     │ Lft │ Dwn │ Rgt │     │    │     │     │     │     │     │     │            │
 * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤
 * │          │     │     │     │     │     │    │     │     │     │     │     │     │     │     │
 * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘   ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤
 * │      │     │      │             │     │    │               │       │ NO   │     │     │     │
 * └------┴-----┴------┴-------------┴-----┘    └---------------┴-------┴------┴-----┴-----┴-----┘
 */
[_FN] = LAYOUT(
  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,    KC_F5,   KC_F6,          KC_F7,   KC_F8,   KC_F9,   KC_F10,   KC_F11,   KC_F12,  _______,
  _______, _______, _______, KC_UP,   _______,  _______,        _______, _______, _______, _______, _______,  _______,  _______, _______,
  KC_ENT,  _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,        _______, _______, _______, _______, _______,  _______,           _______,
  _______, _______, _______, _______, _______,  _______,        _______, _______, _______, _______, _______,  _______,  _______, _______,
  _______, _______, _______, _______,           _______,        _______,          _______, KC_NO,             _______,  _______, _______
  ),

/* Numpad
 *
 * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐    ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐
 * │  `  │     │     │     │     │     │     │    │ Num │  /  │  *  │  -  │     |     │          |
 * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤
 * │        │     │     │     │     │     │    │     │  7  │  8  │  9  │  +  │     │     │       │
 * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤
 * │         │     │     │     │     │     │    │     │  4  │  5  │  6  │     │     │            │
 * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤
 * │          │     │     │     │     │     │    │     │  1  │  2  │  3  │ Ent │     │     │     │
 * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘   ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤
 * │      │     │      │ Fn          │     │    │ 0             │ .     │ Fn   │     │     │     │
 * └------┴-----┴------┴-------------┴-----┘    └---------------┴-------┴------┴-----┴-----┴-----┘
 */
[_NUM] = LAYOUT(
  KC_GRV,  _______, _______, _______,     _______, _______, _______,          KC_NUM, KC_PSLS, KC_PAST,  KC_PMNS, _______, _______, _______,
  _______, _______, _______, _______,     _______, _______,          _______, KC_P7,  KC_P8,   KC_P9,    KC_PPLS, _______, _______, _______,
  _______, _______, _______, _______,     _______, _______,          _______, KC_P4,  KC_P5,   KC_P6,    _______, _______,          _______,
  _______, _______, _______, _______,     _______, _______,          _______, KC_P1,  KC_P2,   KC_P3,    KC_PENT, _______, _______, _______,
  _______, _______, _______, MO(_MIRROR),          _______,          KC_P0,           KC_PDOT, TG(_NUM),          _______, _______, _______
  ),

/* Mirrorboard
 *
 * Useful in some niche situations per XKCD. Cannot pass directly to BASE layer
 * without releasing the _MIRROR toggle key.
 *
 * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐    ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐
 * │ Bk  │  =  │  -  │  0  │  9  │  8  │  7  │    │     │     │     │     │     |     │          |
 * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤
 * │ \      │  P  │  O  │  I  │  U  │  Y  │    │     │     │     │     │     │     │     │       │
 * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤
 * │ Enter   │  ;  │  L  │  K  │  J  │  H  │    │     │     │     │     │     │     │            │
 * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐   └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤
 * │          │  ?  │  >  │  <  │  M  │  N  │    │     │     │     │     │     │     │     │     │
 * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘   ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤
 * │      │     │      │             │     │    │               │       │ NO   │     │     │     │
 * └------┴-----┴------┴-------------┴-----┘    └---------------┴-------┴------┴-----┴-----┴-----┘
 */
[_MIRROR] = LAYOUT(
  KC_BSPC, KC_EQUAL,  KC_MINUS, KC_0,    KC_9, KC_8,    KC_7,          _______, _______, _______, _______, _______, _______, _______,
  KC_BSLS, KC_P,      KC_O,     KC_I,    KC_U, KC_Y,          _______, _______, _______, _______, _______, _______, _______, _______,
  KC_ENT,  KC_SCOLON, KC_L,     KC_K,    KC_J, KC_H,          _______, _______, _______, _______, _______, _______,          _______,
  _______, KC_SLSH,   KC_DOT,   KC_COMM, KC_M, KC_N,          _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______,   _______,  _______,       _______,       _______,          _______, KC_NO,            _______, _______, _______
  ),
};

#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS)
const rgblight_segment_t PROGMEM BASE_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_OFF});
const rgblight_segment_t PROGMEM _FN_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_RED});
const rgblight_segment_t PROGMEM _NUM_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_YELLOW});
const rgblight_segment_t PROGMEM _MIRROR_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_ORANGE});

const rgblight_segment_t* const PROGMEM user_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
    BASE_layer,
    _FN_layer,
    _NUM_layer,
    _MIRROR_layer
);

void keyboard_post_init_user(void) {
    rgblight_layers = user_rgb_layers;
}
layer_state_t default_layer_state_set_user(layer_state_t state) {
    rgblight_set_layer_state(0, layer_state_cmp(state, BASE));

    return state;
}

layer_state_t layer_state_set_user(layer_state_t state) {

/* Add some indication for current function layer.
 *
 * N.B.: rgblight_set_layer_state calls rgblight_mode_noeeprom.
 */
    rgblight_set_layer_state(1, layer_state_cmp(state, _FN));
    rgblight_set_layer_state(2, layer_state_cmp(state, _NUM));
    rgblight_set_layer_state(3, layer_state_cmp(state, _MIRROR));

    return state;
}
#endif

A keyboards/ymdk/sp64/keymaps/minkezhang/readme.md => keyboards/ymdk/sp64/keymaps/minkezhang/readme.md +7 -0
@@ 0,0 1,7 @@
# YMDK Split 64
Personal Keymap for [minkezhang](https://github.com/minkezhang)

## Compile
```bash
qmk compile -kb ymdk/sp64 -km minkezhang
```

A keyboards/ymdk/sp64/keymaps/minkezhang/rules.mk => keyboards/ymdk/sp64/keymaps/minkezhang/rules.mk +1 -0
@@ 0,0 1,1 @@
RGBLIGHT_ENABLE = yes