|
|
@ -159,9 +159,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
|
|
|
|
|
|
|
/* Raise JIS Normal
|
|
|
|
/* Raise JIS Normal
|
|
|
|
* ,-----------------------------------------. ,-----------------------------------------.
|
|
|
|
* ,-----------------------------------------. ,-----------------------------------------.
|
|
|
|
* | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
|
|
|
|
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* | | | | | | | | | | | | Home |PageUp|
|
|
|
|
* | | | | | | | | F12 | | | | Home |PageUp|
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* | | | | | | | | | | | | End |PageDn|
|
|
|
|
* | | | | | | | | | | | | End |PageDn|
|
|
|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
|
|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
|
|
@ -171,8 +171,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
* `-------------------------------------------------------------------------------------------------'
|
|
|
|
* `-------------------------------------------------------------------------------------------------'
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
[_RAISE] = LAYOUT( \
|
|
|
|
[_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, \
|
|
|
|
_______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
|
|
|
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \
|
|
|
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F12 , XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \
|
|
|
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_PGDN, \
|
|
|
|
_______, 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, \
|
|
|
|
_______, 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 \
|
|
|
|
_______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R \
|
|
|
@ -180,9 +180,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
|
|
|
|
|
|
|
/* Raise JIS Exchange L and R
|
|
|
|
/* Raise JIS Exchange L and R
|
|
|
|
* ,-----------------------------------------. ,-----------------------------------------.
|
|
|
|
* ,-----------------------------------------. ,-----------------------------------------.
|
|
|
|
* | F7 | F8 | F9 | F10 | F11 | F12 | | F1 | F2 | F3 | F4 | F5 | F6 |
|
|
|
|
* | F6 | F7 | F8 | F9 | F10 | F11 | | | F1 | F2 | F3 | F4 | F5 |
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* | | | | | | | | | | | | | |
|
|
|
|
* | F12 | | | | | | | | | | | | |
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
|
|
|
* | | | | | | | | | | | | | |
|
|
|
|
* | | | | | | | | | | | | | |
|
|
|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
|
|
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
|
|
@ -192,8 +192,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
* `-------------------------------------------------------------------------------------------------'
|
|
|
|
* `-------------------------------------------------------------------------------------------------'
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
[_RAI_E] = LAYOUT( \
|
|
|
|
[_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, \
|
|
|
|
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, \
|
|
|
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
|
|
|
KC_F12, 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, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
|
|
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, 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 \
|
|
|
|
_______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX \
|
|
|
@ -221,45 +221,105 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
),
|
|
|
|
),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#elif HELIX_ROWS == 4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
|
|
|
// Do it yourself :)
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
#error "undefined keymaps"
|
|
|
|
#error "undefined keymaps"
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef SSD1306OLED
|
|
|
|
|
|
|
|
char keylog[20] = {};
|
|
|
|
|
|
|
|
const char code_to_name[60] = {
|
|
|
|
|
|
|
|
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
|
|
|
|
|
|
|
|
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
|
|
|
|
|
|
|
|
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
|
|
|
|
|
|
|
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
|
|
|
|
|
|
|
|
'R', 'E', 'B', 'T', ' ', '-', ' ', '@', ' ', ' ',
|
|
|
|
|
|
|
|
' ', ';', ':', ' ', ',', '.', '/', ' ', ' ', ' '};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void set_keylog(uint16_t keycode, keyrecord_t *record)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
char name = ' ';
|
|
|
|
|
|
|
|
uint8_t leds = host_keyboard_leds();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (keycode < 60)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
name = code_to_name[keycode];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// update keylog
|
|
|
|
|
|
|
|
snprintf(keylog, sizeof(keylog), "\n%dx%d %2x %c %c %c %c",
|
|
|
|
|
|
|
|
record->event.key.row,
|
|
|
|
|
|
|
|
record->event.key.col,
|
|
|
|
|
|
|
|
keycode,
|
|
|
|
|
|
|
|
name,
|
|
|
|
|
|
|
|
(leds & (1<<USB_LED_NUM_LOCK)) ? 'N' : ' ',
|
|
|
|
|
|
|
|
(leds & (1<<USB_LED_CAPS_LOCK)) ? 'C' : ' ',
|
|
|
|
|
|
|
|
(leds & (1<<USB_LED_SCROLL_LOCK)) ? 'S' : ' '
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef AUDIO_ENABLE
|
|
|
|
#ifdef AUDIO_ENABLE
|
|
|
|
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
|
|
|
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
|
|
|
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
|
|
|
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// define variables for reactive RGB
|
|
|
|
void startup_user()
|
|
|
|
bool TOG_STATUS = false;
|
|
|
|
{
|
|
|
|
int RGB_current_mode;
|
|
|
|
_delay_ms(20); // gets rid of tick
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void persistent_default_layer_set(uint16_t default_layer) {
|
|
|
|
void shutdown_user()
|
|
|
|
eeconfig_update_default_layer(default_layer);
|
|
|
|
{
|
|
|
|
default_layer_set(default_layer);
|
|
|
|
_delay_ms(150);
|
|
|
|
|
|
|
|
stop_all_notes();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void music_on_user(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
music_scale_user();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void music_scale_user(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
PLAY_SONG(music_scale);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
float tone_qwerty;
|
|
|
|
|
|
|
|
float music_scale;
|
|
|
|
|
|
|
|
#define PLAY_SONG(tone)
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// define variables for reactive RGB
|
|
|
|
|
|
|
|
int RGB_current_mode;
|
|
|
|
#ifdef ADJUST_MACRO_ENABLE
|
|
|
|
#ifdef ADJUST_MACRO_ENABLE
|
|
|
|
// Setting ADJUST layer RGB back to default
|
|
|
|
// Setting ADJUST layer RGB back to default
|
|
|
|
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
|
|
|
|
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
|
|
|
|
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
|
|
|
|
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
RGBLIGHT(RGB_current_mode);
|
|
|
|
rgblight_mode(RGB_current_mode);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
layer_on(layer3);
|
|
|
|
layer_on(layer3);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
layer_off(layer3);
|
|
|
|
layer_off(layer3);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#define ADJUST_MACRO(layer1, layer2, layer3) update_tri_layer_RGB(layer1, layer2, layer3)
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
#define ADJUST_MACRO(layer1, layer2, layer3)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
|
|
|
|
#define RGBLIGHT(mode) rgblight_mode(mode)
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
#define RGBLIGHT(mode)
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void persistent_default_layer_set(uint16_t default_layer) {
|
|
|
|
|
|
|
|
eeconfig_update_default_layer(default_layer);
|
|
|
|
|
|
|
|
default_layer_set(default_layer);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool TOG_STATUS = false;
|
|
|
|
|
|
|
|
|
|
|
|
void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_layer, uint16_t raise_layer) {
|
|
|
|
void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_layer, uint16_t raise_layer) {
|
|
|
|
if (pressed) {
|
|
|
|
if (pressed) {
|
|
|
|
//not sure how to have keyboard check mode and set it to a variable, so my work around
|
|
|
|
//not sure how to have keyboard check mode and set it to a variable, so my work around
|
|
|
@ -267,79 +327,60 @@ void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_
|
|
|
|
if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
|
|
|
|
if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
|
|
|
|
TOG_STATUS = !TOG_STATUS;
|
|
|
|
TOG_STATUS = !TOG_STATUS;
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
if (dist_layer == _LOWER || dist_layer == _LOW_E) {
|
|
|
|
rgblight_mode((dist_layer == _LOWER || dist_layer == _LOW_E) ? 16 : 15);
|
|
|
|
rgblight_mode(16);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
rgblight_mode(15);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
layer_on(dist_layer);
|
|
|
|
layer_on(dist_layer);
|
|
|
|
#ifdef ADJUST_MACRO_ENABLE
|
|
|
|
ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
|
|
|
|
update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
RGBLIGHT(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
|
|
|
|
rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
TOG_STATUS = false;
|
|
|
|
TOG_STATUS = false;
|
|
|
|
layer_off(dist_layer);
|
|
|
|
layer_off(dist_layer);
|
|
|
|
#ifdef ADJUST_MACRO_ENABLE
|
|
|
|
ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
|
|
|
|
update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
|
|
|
|
|
#ifdef SSD1306OLED
|
|
|
|
|
|
|
|
if (record->event.pressed) {
|
|
|
|
|
|
|
|
set_keylog(keycode, record);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
switch (keycode) {
|
|
|
|
switch (keycode) {
|
|
|
|
case BASE:
|
|
|
|
case BASE:
|
|
|
|
if (record->event.pressed) {
|
|
|
|
if (record->event.pressed) {
|
|
|
|
#ifdef AUDIO_ENABLE
|
|
|
|
|
|
|
|
PLAY_SONG(tone_qwerty);
|
|
|
|
PLAY_SONG(tone_qwerty);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
persistent_default_layer_set(1UL<<_BASE);
|
|
|
|
persistent_default_layer_set(1UL<<_BASE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case BAS_E:
|
|
|
|
case BAS_E:
|
|
|
|
if (record->event.pressed) {
|
|
|
|
if (record->event.pressed) {
|
|
|
|
#ifdef AUDIO_ENABLE
|
|
|
|
|
|
|
|
PLAY_SONG(tone_qwerty);
|
|
|
|
PLAY_SONG(tone_qwerty);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
persistent_default_layer_set(1UL<<_BAS_E);
|
|
|
|
persistent_default_layer_set(1UL<<_BAS_E);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case LOWER:
|
|
|
|
case LOWER:
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE);
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE);
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case LOW_E:
|
|
|
|
case LOW_E:
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E);
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E);
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case RAISE:
|
|
|
|
case RAISE:
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE);
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE);
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case RAI_E:
|
|
|
|
case RAI_E:
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E);
|
|
|
|
toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E);
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case ADJUST:
|
|
|
|
case ADJUST:
|
|
|
|
if (record->event.pressed) {
|
|
|
|
if (record->event.pressed) {
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
RGBLIGHT(14);
|
|
|
|
rgblight_mode(14);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
layer_on(_ADJUST);
|
|
|
|
layer_on(_ADJUST);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
RGBLIGHT(RGB_current_mode);
|
|
|
|
rgblight_mode(RGB_current_mode);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
layer_off(_ADJUST);
|
|
|
|
layer_off(_ADJUST);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
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
|
|
|
|
//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:
|
|
|
|
case RGB_MOD:
|
|
|
@ -350,7 +391,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
|
RGB_current_mode = rgblight_config.mode;
|
|
|
|
RGB_current_mode = rgblight_config.mode;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case EISU:
|
|
|
|
case EISU:
|
|
|
|
if (record->event.pressed) {
|
|
|
|
if (record->event.pressed) {
|
|
|
@ -362,7 +402,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
unregister_code(KC_LANG2);
|
|
|
|
unregister_code(KC_LANG2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
#ifdef KANA_ENABLE
|
|
|
|
#ifdef KANA_ENABLE
|
|
|
|
case KANA:
|
|
|
|
case KANA:
|
|
|
@ -375,7 +414,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
unregister_code(KC_LANG1);
|
|
|
|
unregister_code(KC_LANG1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
case RGBRST:
|
|
|
|
case RGBRST:
|
|
|
@ -387,10 +425,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
return false;
|
|
|
|
// return process_layer_control(keycode, record, false) ? process_layer_control(keycode, record, true) : true;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void matrix_init_user(void) {
|
|
|
|
void matrix_init_user(void) {
|
|
|
@ -407,33 +446,6 @@ void matrix_init_user(void) {
|
|
|
|
#endif
|
|
|
|
#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
|
|
|
|
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
|
|
|
#ifdef SSD1306OLED
|
|
|
|
#ifdef SSD1306OLED
|
|
|
|
|
|
|
|
|
|
|
@ -441,7 +453,7 @@ void matrix_scan_user(void) {
|
|
|
|
iota_gfx_task(); // this is what updates the display continuously
|
|
|
|
iota_gfx_task(); // this is what updates the display continuously
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void matrix_update(struct CharacterMatrix *dest,
|
|
|
|
inline void matrix_update(struct CharacterMatrix *dest,
|
|
|
|
const struct CharacterMatrix *source) {
|
|
|
|
const struct CharacterMatrix *source) {
|
|
|
|
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
|
|
|
|
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
|
|
|
|
memcpy(dest->display, source->display, sizeof(dest->display));
|
|
|
|
memcpy(dest->display, source->display, sizeof(dest->display));
|
|
|
@ -459,55 +471,48 @@ void matrix_update(struct CharacterMatrix *dest,
|
|
|
|
#define L_RAI_E (1<<_RAI_E)
|
|
|
|
#define L_RAI_E (1<<_RAI_E)
|
|
|
|
#define L_ADJUST_TRIE (L_ADJUST|L_RAI_E|L_LOW_E)
|
|
|
|
#define L_ADJUST_TRIE (L_ADJUST|L_RAI_E|L_LOW_E)
|
|
|
|
|
|
|
|
|
|
|
|
static void render_logo(struct CharacterMatrix *matrix) {
|
|
|
|
const char helix_logo[]={
|
|
|
|
|
|
|
|
|
|
|
|
static char logo[]={
|
|
|
|
|
|
|
|
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
|
|
|
|
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,
|
|
|
|
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,
|
|
|
|
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
|
|
|
|
0};
|
|
|
|
0};
|
|
|
|
matrix_write(matrix, logo);
|
|
|
|
inline void render_logo(struct CharacterMatrix *matrix) {
|
|
|
|
//matrix_write_P(&matrix, PSTR(" Split keyboard kit"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
matrix_write(matrix, helix_logo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void render_status(struct CharacterMatrix *matrix) {
|
|
|
|
const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
|
|
|
|
|
|
|
|
inline void render_status(struct CharacterMatrix *matrix) {
|
|
|
|
|
|
|
|
|
|
|
|
// Render to mode icon
|
|
|
|
// 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){
|
|
|
|
if(keymap_config.swap_lalt_lgui==false){
|
|
|
|
matrix_write(matrix, logo[0][0]);
|
|
|
|
matrix_write(matrix, mac_win_logo[0][0]);
|
|
|
|
matrix_write_P(matrix, PSTR("\n"));
|
|
|
|
matrix_write_P(matrix, PSTR("\n"));
|
|
|
|
matrix_write(matrix, logo[0][1]);
|
|
|
|
matrix_write(matrix, mac_win_logo[0][1]);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
matrix_write(matrix, logo[1][0]);
|
|
|
|
matrix_write(matrix, mac_win_logo[1][0]);
|
|
|
|
matrix_write_P(matrix, PSTR("\n"));
|
|
|
|
matrix_write_P(matrix, PSTR("\n"));
|
|
|
|
matrix_write(matrix, logo[1][1]);
|
|
|
|
matrix_write(matrix, mac_win_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
|
|
|
|
// 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];
|
|
|
|
char buf[20];
|
|
|
|
matrix_write_P(matrix, PSTR("\nLayer: "));
|
|
|
|
matrix_write_P(matrix, PSTR("\nLayer: "));
|
|
|
|
switch (layer_state) {
|
|
|
|
switch (layer_state) {
|
|
|
|
case L_BASE:
|
|
|
|
case L_BASE:
|
|
|
|
if (default_layer_state == (1UL<<_BAS_E)) {
|
|
|
|
matrix_write_P(matrix, default_layer_state == (1UL<<_BAS_E) ? PSTR("BaseEx") : PSTR("Base"));
|
|
|
|
matrix_write_P(matrix, PSTR("Base_Ex"));
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
matrix_write_P(matrix, PSTR("Base"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case L_RAISE:
|
|
|
|
case L_RAISE:
|
|
|
|
matrix_write_P(matrix, PSTR("Raise"));
|
|
|
|
matrix_write_P(matrix, PSTR("Raise"));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case L_RAI_E:
|
|
|
|
case L_RAI_E:
|
|
|
|
matrix_write_P(matrix, PSTR("Raise_Ex"));
|
|
|
|
matrix_write_P(matrix, PSTR("RaiseEx"));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case L_LOWER:
|
|
|
|
case L_LOWER:
|
|
|
|
matrix_write_P(matrix, PSTR("Lower"));
|
|
|
|
matrix_write_P(matrix, PSTR("Lower"));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case L_LOW_E:
|
|
|
|
case L_LOW_E:
|
|
|
|
matrix_write_P(matrix, PSTR("Lower_Ex"));
|
|
|
|
matrix_write_P(matrix, PSTR("LowerEx"));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case L_ADJUST:
|
|
|
|
case L_ADJUST:
|
|
|
|
case L_ADJUST_TRI:
|
|
|
|
case L_ADJUST_TRI:
|
|
|
@ -515,20 +520,13 @@ void render_status(struct CharacterMatrix *matrix) {
|
|
|
|
matrix_write_P(matrix, PSTR("Adjust"));
|
|
|
|
matrix_write_P(matrix, PSTR("Adjust"));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
snprintf(buf, sizeof(buf), "Undef-%d", (short)layer_state);
|
|
|
|
snprintf(buf, sizeof(buf), "%d", (short)layer_state);
|
|
|
|
matrix_write(matrix, buf);
|
|
|
|
matrix_write(matrix, buf);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Host Keyboard LED Status
|
|
|
|
matrix_write(matrix, keylog);
|
|
|
|
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) {
|
|
|
|
void iota_gfx_task_user(void) {
|
|
|
|
struct CharacterMatrix matrix;
|
|
|
|
struct CharacterMatrix matrix;
|
|
|
|
|
|
|
|
|
|
|
|