aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
diff options
context:
space:
mode:
authorGravatar marksard <38324387+marksard@users.noreply.github.com>2018-07-17 12:08:31 +0900
committerGravatar Drashna Jaelre <drashna@live.com>2018-07-16 20:08:31 -0700
commit4d4b845cf59749c4af4f91d05c39b9196b00ab99 (patch)
tree47ae4934c49c7b97d2e1d75a8608287466d37df2 /keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
parent0fab3bbde33f82301a8c5e177c3c0ceb7ad2219c (diff)
downloadqmk_firmware-4d4b845cf59749c4af4f91d05c39b9196b00ab99.tar.gz
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
Diffstat (limited to 'keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c')
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c286
1 files changed, 142 insertions, 144 deletions
diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
index 480ae2f03..eeb22df7a 100644
--- a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
+++ b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
@@ -159,9 +159,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 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|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
@@ -171,8 +171,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-------------------------------------------------------------------------------------------------'
*/
[_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, \
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \
+ _______, 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, KC_F12 , XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \
_______, 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, \
_______, _______, _______, _______, 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
* ,-----------------------------------------. ,-----------------------------------------.
- * | 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( \
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, \
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, \
+ 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, KC_MS_U, XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, XXXXXXX, 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
#error "undefined keymaps"
#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
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-#endif
-// define variables for reactive RGB
-bool TOG_STATUS = false;
-int RGB_current_mode;
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+}
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
+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);
+}
+
+#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
// 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
+ 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
@@ -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
TOG_STATUS = !TOG_STATUS;
#ifdef RGBLIGHT_ENABLE
- if (dist_layer == _LOWER || dist_layer == _LOW_E) {
- rgblight_mode(16);
- } else {
- rgblight_mode(15);
- }
+ rgblight_mode((dist_layer == _LOWER || dist_layer == _LOW_E) ? 16 : 15);
#endif
}
layer_on(dist_layer);
- #ifdef ADJUST_MACRO_ENABLE
- update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
- #endif
+ ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
} else {
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
- #endif
+ RGBLIGHT(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
TOG_STATUS = false;
layer_off(dist_layer);
- #ifdef ADJUST_MACRO_ENABLE
- update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
- #endif
+ 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) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_qwerty);
- #endif
+ PLAY_SONG(tone_qwerty);
persistent_default_layer_set(1UL<<_BASE);
}
- return false;
break;
case BAS_E:
if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_qwerty);
- #endif
+ PLAY_SONG(tone_qwerty);
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
+ RGBLIGHT(14);
layer_on(_ADJUST);
} else {
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(RGB_current_mode);
- #endif
+ RGBLIGHT(RGB_current_mode);
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:
@@ -350,7 +391,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
RGB_current_mode = rgblight_config.mode;
}
#endif
- return false;
break;
case EISU:
if (record->event.pressed) {
@@ -362,7 +402,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} else {
unregister_code(KC_LANG2);
}
- return false;
break;
#ifdef KANA_ENABLE
case KANA:
@@ -375,7 +414,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} else {
unregister_code(KC_LANG1);
}
- return false;
break;
#endif
case RGBRST:
@@ -387,10 +425,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
#endif
break;
+ default:
+ return true;
}
- return true;
- // return process_layer_control(keycode, record, false) ? process_layer_control(keycode, record, true) : true;
+ return false;
}
void matrix_init_user(void) {
@@ -407,33 +446,6 @@ void matrix_init_user(void) {
#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
#ifdef SSD1306OLED
@@ -441,7 +453,7 @@ void matrix_scan_user(void) {
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) {
if (memcmp(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_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[]={
- 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"));
+ 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
- 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(matrix, mac_win_logo[0][0]);
matrix_write_P(matrix, PSTR("\n"));
- matrix_write(matrix, logo[0][1]);
+ matrix_write(matrix, mac_win_logo[0][1]);
} else {
- matrix_write(matrix, logo[1][0]);
+ matrix_write(matrix, mac_win_logo[1][0]);
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
- char buf[16];
+ char buf[20];
matrix_write_P(matrix, PSTR("\nLayer: "));
- switch (layer_state) {
- case L_BASE:
- if (default_layer_state == (1UL<<_BAS_E)) {
- matrix_write_P(matrix, PSTR("Base_Ex"));
- } else {
- matrix_write_P(matrix, PSTR("Base"));
- }
- break;
- case L_RAISE:
- matrix_write_P(matrix, PSTR("Raise"));
- break;
- case L_RAI_E:
- matrix_write_P(matrix, PSTR("Raise_Ex"));
- break;
- case L_LOWER:
- matrix_write_P(matrix, PSTR("Lower"));
- break;
- case L_LOW_E:
- matrix_write_P(matrix, PSTR("Lower_Ex"));
- break;
- case L_ADJUST:
- case L_ADJUST_TRI:
- case L_ADJUST_TRIE:
- matrix_write_P(matrix, PSTR("Adjust"));
- break;
- default:
- snprintf(buf, sizeof(buf), "Undef-%d", (short)layer_state);
- matrix_write(matrix, buf);
- }
+ switch (layer_state) {
+ case L_BASE:
+ matrix_write_P(matrix, default_layer_state == (1UL<<_BAS_E) ? PSTR("BaseEx") : PSTR("Base"));
+ break;
+ case L_RAISE:
+ matrix_write_P(matrix, PSTR("Raise"));
+ break;
+ case L_RAI_E:
+ matrix_write_P(matrix, PSTR("RaiseEx"));
+ break;
+ case L_LOWER:
+ matrix_write_P(matrix, PSTR("Lower"));
+ break;
+ case L_LOW_E:
+ matrix_write_P(matrix, PSTR("LowerEx"));
+ break;
+ case L_ADJUST:
+ case L_ADJUST_TRI:
+ case L_ADJUST_TRIE:
+ matrix_write_P(matrix, PSTR("Adjust"));
+ break;
+ default:
+ snprintf(buf, sizeof(buf), "%d", (short)layer_state);
+ matrix_write(matrix, buf);
+ }
- // Host Keyboard LED Status
- 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);
+ matrix_write(matrix, keylog);
}
-
void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;