Keymap: Modified of 'Helix five rows JIS" keymap (#3425)
* Change key layout in raise-layer. * Improvement update cycle to mouse key changes. * Update the readme.md
This commit is contained in:
parent
0fab3bbde3
commit
4d4b845cf5
4 changed files with 266 additions and 251 deletions
|
@ -114,4 +114,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#define USB_MAX_POWER_CONSUMPTION 100
|
#define USB_MAX_POWER_CONSUMPTION 100
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef MOUSEKEY_ENABLE
|
||||||
|
#undef MOUSEKEY_INTERVAL
|
||||||
|
#define MOUSEKEY_INTERVAL 0
|
||||||
|
|
||||||
|
#undef MOUSEKEY_TIME_TO_MAX
|
||||||
|
#define MOUSEKEY_TIME_TO_MAX 150
|
||||||
|
|
||||||
|
#undef MOUSEKEY_MAX_SPEED
|
||||||
|
#define MOUSEKEY_MAX_SPEED 3
|
||||||
|
|
||||||
|
#undef MOUSEKEY_MOVE_DELTA
|
||||||
|
#define MOUSEKEY_MOVE_DELTA 5
|
||||||
|
|
||||||
|
#undef MOUSEKEY_DELAY
|
||||||
|
#define MOUSEKEY_DELAY 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* CONFIG_USER_H */
|
#endif /* CONFIG_USER_H */
|
||||||
|
|
|
@ -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,194 +221,46 @@ 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
|
|
||||||
bool TOG_STATUS = false;
|
|
||||||
int RGB_current_mode;
|
|
||||||
|
|
||||||
void persistent_default_layer_set(uint16_t default_layer) {
|
|
||||||
eeconfig_update_default_layer(default_layer);
|
|
||||||
default_layer_set(default_layer);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef ADJUST_MACRO_ENABLE
|
|
||||||
// Setting ADJUST layer RGB back to default
|
|
||||||
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
|
|
||||||
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
rgblight_mode(RGB_current_mode);
|
|
||||||
#endif
|
|
||||||
layer_on(layer3);
|
|
||||||
} else {
|
|
||||||
layer_off(layer3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_layer, uint16_t raise_layer) {
|
|
||||||
if (pressed) {
|
|
||||||
//not sure how to have keyboard check mode and set it to a variable, so my work around
|
|
||||||
//uses another variable that would be set to true after the first time a reactive key is pressed.
|
|
||||||
if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
|
|
||||||
TOG_STATUS = !TOG_STATUS;
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
if (dist_layer == _LOWER || dist_layer == _LOW_E) {
|
|
||||||
rgblight_mode(16);
|
|
||||||
} else {
|
|
||||||
rgblight_mode(15);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
layer_on(dist_layer);
|
|
||||||
#ifdef ADJUST_MACRO_ENABLE
|
|
||||||
update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
|
|
||||||
#endif
|
|
||||||
TOG_STATUS = false;
|
|
||||||
layer_off(dist_layer);
|
|
||||||
#ifdef ADJUST_MACRO_ENABLE
|
|
||||||
update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch (keycode) {
|
|
||||||
case BASE:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
#ifdef AUDIO_ENABLE
|
|
||||||
PLAY_SONG(tone_qwerty);
|
|
||||||
#endif
|
|
||||||
persistent_default_layer_set(1UL<<_BASE);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case BAS_E:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
#ifdef AUDIO_ENABLE
|
|
||||||
PLAY_SONG(tone_qwerty);
|
|
||||||
#endif
|
|
||||||
persistent_default_layer_set(1UL<<_BAS_E);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case LOWER:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE);
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case LOW_E:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E);
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case RAISE:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE);
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case RAI_E:
|
|
||||||
toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E);
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case ADJUST:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
rgblight_mode(14);
|
|
||||||
#endif
|
|
||||||
layer_on(_ADJUST);
|
|
||||||
} else {
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
rgblight_mode(RGB_current_mode);
|
|
||||||
#endif
|
|
||||||
layer_off(_ADJUST);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
|
|
||||||
case RGB_MOD:
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
if (record->event.pressed) {
|
|
||||||
rgblight_mode(RGB_current_mode);
|
|
||||||
rgblight_step();
|
|
||||||
RGB_current_mode = rgblight_config.mode;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case EISU:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (keymap_config.swap_lalt_lgui==false) {
|
|
||||||
register_code(KC_LANG2);
|
|
||||||
} else {
|
|
||||||
SEND_STRING(SS_LALT("`"));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unregister_code(KC_LANG2);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
#ifdef KANA_ENABLE
|
|
||||||
case KANA:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if(keymap_config.swap_lalt_lgui==false){
|
|
||||||
register_code(KC_LANG1);
|
|
||||||
}else{
|
|
||||||
SEND_STRING(SS_LALT("`"));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unregister_code(KC_LANG1);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case RGBRST:
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
if (record->event.pressed) {
|
|
||||||
eeconfig_update_rgblight_default();
|
|
||||||
rgblight_enable();
|
|
||||||
RGB_current_mode = rgblight_config.mode;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
// return process_layer_control(keycode, record, false) ? process_layer_control(keycode, record, true) : true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void matrix_init_user(void) {
|
|
||||||
#ifdef AUDIO_ENABLE
|
|
||||||
startup_user();
|
|
||||||
#endif
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
RGB_current_mode = rgblight_config.mode;
|
|
||||||
#endif
|
|
||||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
|
||||||
#ifdef SSD1306OLED
|
|
||||||
TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000));
|
|
||||||
iota_gfx_init(!has_usb()); // turns on the display
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
|
||||||
|
|
||||||
void startup_user()
|
void startup_user()
|
||||||
{
|
{
|
||||||
|
@ -431,8 +283,168 @@ void music_scale_user(void)
|
||||||
PLAY_SONG(music_scale);
|
PLAY_SONG(music_scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
float tone_qwerty;
|
||||||
|
float music_scale;
|
||||||
|
#define PLAY_SONG(tone)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// define variables for reactive RGB
|
||||||
|
int RGB_current_mode;
|
||||||
|
#ifdef ADJUST_MACRO_ENABLE
|
||||||
|
// Setting ADJUST layer RGB back to default
|
||||||
|
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
|
||||||
|
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
|
||||||
|
RGBLIGHT(RGB_current_mode);
|
||||||
|
layer_on(layer3);
|
||||||
|
} else {
|
||||||
|
layer_off(layer3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#define ADJUST_MACRO(layer1, layer2, layer3) update_tri_layer_RGB(layer1, layer2, layer3)
|
||||||
|
#else
|
||||||
|
#define ADJUST_MACRO(layer1, layer2, layer3)
|
||||||
|
#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) {
|
||||||
|
if (pressed) {
|
||||||
|
//not sure how to have keyboard check mode and set it to a variable, so my work around
|
||||||
|
//uses another variable that would be set to true after the first time a reactive key is pressed.
|
||||||
|
if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
|
||||||
|
TOG_STATUS = !TOG_STATUS;
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
rgblight_mode((dist_layer == _LOWER || dist_layer == _LOW_E) ? 16 : 15);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_on(dist_layer);
|
||||||
|
ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
|
||||||
|
} else {
|
||||||
|
RGBLIGHT(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
|
||||||
|
TOG_STATUS = false;
|
||||||
|
layer_off(dist_layer);
|
||||||
|
ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
#ifdef SSD1306OLED
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_keylog(keycode, record);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (keycode) {
|
||||||
|
case BASE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
PLAY_SONG(tone_qwerty);
|
||||||
|
persistent_default_layer_set(1UL<<_BASE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BAS_E:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
PLAY_SONG(tone_qwerty);
|
||||||
|
persistent_default_layer_set(1UL<<_BAS_E);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LOWER:
|
||||||
|
toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE);
|
||||||
|
break;
|
||||||
|
case LOW_E:
|
||||||
|
toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E);
|
||||||
|
break;
|
||||||
|
case RAISE:
|
||||||
|
toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE);
|
||||||
|
break;
|
||||||
|
case RAI_E:
|
||||||
|
toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E);
|
||||||
|
break;
|
||||||
|
case ADJUST:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
RGBLIGHT(14);
|
||||||
|
layer_on(_ADJUST);
|
||||||
|
} else {
|
||||||
|
RGBLIGHT(RGB_current_mode);
|
||||||
|
layer_off(_ADJUST);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
|
||||||
|
case RGB_MOD:
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
if (record->event.pressed) {
|
||||||
|
rgblight_mode(RGB_current_mode);
|
||||||
|
rgblight_step();
|
||||||
|
RGB_current_mode = rgblight_config.mode;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case EISU:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lalt_lgui==false) {
|
||||||
|
register_code(KC_LANG2);
|
||||||
|
} else {
|
||||||
|
SEND_STRING(SS_LALT("`"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_LANG2);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#ifdef KANA_ENABLE
|
||||||
|
case KANA:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if(keymap_config.swap_lalt_lgui==false){
|
||||||
|
register_code(KC_LANG1);
|
||||||
|
}else{
|
||||||
|
SEND_STRING(SS_LALT("`"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_LANG1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
case RGBRST:
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
if (record->event.pressed) {
|
||||||
|
eeconfig_update_rgblight_default();
|
||||||
|
rgblight_enable();
|
||||||
|
RGB_current_mode = rgblight_config.mode;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
#ifdef AUDIO_ENABLE
|
||||||
|
startup_user();
|
||||||
|
#endif
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
RGB_current_mode = rgblight_config.mode;
|
||||||
|
#endif
|
||||||
|
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||||
|
#ifdef SSD1306OLED
|
||||||
|
TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000));
|
||||||
|
iota_gfx_init(!has_usb()); // turns on the display
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
//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,76 +471,62 @@ 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[]={
|
||||||
|
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};
|
||||||
|
inline void render_logo(struct CharacterMatrix *matrix) {
|
||||||
|
|
||||||
static char logo[]={
|
matrix_write(matrix, helix_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"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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) {
|
||||||
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"));
|
break;
|
||||||
} else {
|
case L_RAISE:
|
||||||
matrix_write_P(matrix, PSTR("Base"));
|
matrix_write_P(matrix, PSTR("Raise"));
|
||||||
}
|
break;
|
||||||
break;
|
case L_RAI_E:
|
||||||
case L_RAISE:
|
matrix_write_P(matrix, PSTR("RaiseEx"));
|
||||||
matrix_write_P(matrix, PSTR("Raise"));
|
break;
|
||||||
break;
|
case L_LOWER:
|
||||||
case L_RAI_E:
|
matrix_write_P(matrix, PSTR("Lower"));
|
||||||
matrix_write_P(matrix, PSTR("Raise_Ex"));
|
break;
|
||||||
break;
|
case L_LOW_E:
|
||||||
case L_LOWER:
|
matrix_write_P(matrix, PSTR("LowerEx"));
|
||||||
matrix_write_P(matrix, PSTR("Lower"));
|
break;
|
||||||
break;
|
case L_ADJUST:
|
||||||
case L_LOW_E:
|
case L_ADJUST_TRI:
|
||||||
matrix_write_P(matrix, PSTR("Lower_Ex"));
|
case L_ADJUST_TRIE:
|
||||||
break;
|
matrix_write_P(matrix, PSTR("Adjust"));
|
||||||
case L_ADJUST:
|
break;
|
||||||
case L_ADJUST_TRI:
|
default:
|
||||||
case L_ADJUST_TRIE:
|
snprintf(buf, sizeof(buf), "%d", (short)layer_state);
|
||||||
matrix_write_P(matrix, PSTR("Adjust"));
|
matrix_write(matrix, buf);
|
||||||
break;
|
}
|
||||||
default:
|
|
||||||
snprintf(buf, sizeof(buf), "Undef-%d", (short)layer_state);
|
|
||||||
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;
|
||||||
|
|
||||||
|
|
|
@ -61,9 +61,9 @@ Raise Layer
|
||||||
|
|
||||||
```
|
```
|
||||||
,-----------------------------------------. ,-----------------------------------------.
|
,-----------------------------------------. ,-----------------------------------------.
|
||||||
| 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|
|
||||||
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
@ -113,9 +113,9 @@ Raise Layer
|
||||||
|
|
||||||
```
|
```
|
||||||
,-----------------------------------------.,-----------------------------------------.
|
,-----------------------------------------.,-----------------------------------------.
|
||||||
| F1 | F2 | F3 | F4 | F5 | F6 || F7 | F8 | F9 | F10 | F11 | F12 |
|
| | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F11 |
|
||||||
|------+------+------+------+------+------||------+------+------+------+------+------|
|
|------+------+------+------+------+------||------+------+------+------+------+------|
|
||||||
| | | | | | || | | | | | |
|
| | | | | | || F12 | | | | | |
|
||||||
|------+------+------+------+------+------||------+------+------+------+------+------|
|
|------+------+------+------+------+------||------+------+------+------+------+------|
|
||||||
| | | | | | || | | | | | |
|
| | | | | | || | | | | | |
|
||||||
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
|
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
|
||||||
|
|
|
@ -67,9 +67,9 @@ Raiseレイヤー
|
||||||
|
|
||||||
```
|
```
|
||||||
,-----------------------------------------. ,-----------------------------------------.
|
,-----------------------------------------. ,-----------------------------------------.
|
||||||
| 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|
|
||||||
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
@ -129,9 +129,9 @@ Raiseレイヤー
|
||||||
|
|
||||||
```
|
```
|
||||||
,-----------------------------------------.,-----------------------------------------.
|
,-----------------------------------------.,-----------------------------------------.
|
||||||
| F1 | F2 | F3 | F4 | F5 | F6 || F7 | F8 | F9 | F10 | F11 | F12 |
|
| | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F11 |
|
||||||
|------+------+------+------+------+------||------+------+------+------+------+------|
|
|------+------+------+------+------+------||------+------+------+------+------+------|
|
||||||
| | | | | | || | | | | | |
|
| | | | | | || F12 | | | | | |
|
||||||
|------+------+------+------+------+------||------+------+------+------+------+------|
|
|------+------+------+------+------+------||------+------+------+------+------+------|
|
||||||
| | | | | | || | | | | | |
|
| | | | | | || | | | | | |
|
||||||
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
|
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
|
||||||
|
|
Loading…
Reference in a new issue