From 7f65844f75c30f17804d57d34c0f0ce971226b59 Mon Sep 17 00:00:00 2001 From: Scott Sheffield Date: Mon, 17 Jun 2019 22:40:38 -0400 Subject: [Keymap] 40percent/gherkin Midi Layout (#6130) * Add midi layout for 40percent/gherkin * Add readme for 40percent/gherkin:midi --- .../40percentclub/gherkin/keymaps/midi/keymap.c | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 keyboards/40percentclub/gherkin/keymaps/midi/keymap.c (limited to 'keyboards/40percentclub/gherkin/keymaps/midi/keymap.c') diff --git a/keyboards/40percentclub/gherkin/keymaps/midi/keymap.c b/keyboards/40percentclub/gherkin/keymaps/midi/keymap.c new file mode 100644 index 0000000000..965652441a --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/midi/keymap.c @@ -0,0 +1,115 @@ +#include QMK_KEYBOARD_H + +enum layer_number { + _IONIAN = 0, + _DORIAN, + _PHRYGIAN, + _LYDIAN, + _MIXOLYDIAN, + _AEOLIAN, + _LOCRIAN, + _MENU +}; + +enum custom_keycodes { + IONIAN = SAFE_RANGE, + DORIAN, + PHRYGIAN, + LYDIAN, + MIXOLYDIAN, + AEOLIAN, + LOCRIAN, +}; + +#define MENU MO(_MENU) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_IONIAN] = LAYOUT_ortho_3x10( + MI_C_1, MI_F_1, MI_B_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, MI_OCTD, MI_OCTU, + MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_B_2, MI_E_3, MI_A_3, MI_D_4, MI_TRNSD, MI_TRNSU, + MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_B_3, MI_E_4, MI_SUS, MENU + ), + + [_DORIAN] = LAYOUT_ortho_3x10( + MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______, + MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_A_3, MI_D_4, _______, _______, + MI_Ds_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______ + ), + + [_PHRYGIAN] = LAYOUT_ortho_3x10( + MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_G_3, MI_C_4, _______, _______, + MI_Cs_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______, + MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______ + ), + + [_LYDIAN] = LAYOUT_ortho_3x10( + MI_C_1, MI_Fs_1, MI_B_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______, + MI_D_1, MI_G_1, MI_C_2, MI_Fs_2, MI_B_2, MI_E_3, MI_A_3, MI_D_4, _______, _______, + MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_Fs_3, MI_B_3, MI_E_4, _______, _______ + ), + + [_MIXOLYDIAN] = LAYOUT_ortho_3x10( + MI_C_1, MI_F_1, MI_As_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______, + MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_E_3, MI_A_3, MI_D_4, _______, _______, + MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_E_4, _______, _______ + ), + + [_AEOLIAN] = LAYOUT_ortho_3x10( + MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_D_3, MI_G_3, MI_C_4, _______, _______, + MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_D_4, _______, _______, + MI_Ds_1, MI_Gs_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______ + ), + + [_LOCRIAN] = LAYOUT_ortho_3x10( + MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_Fs_3, MI_C_4, _______, _______, + MI_Cs_1, MI_Fs_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______, + MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_Fs_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______ + ), + + [_MENU] = LAYOUT_ortho_3x10( + IONIAN, LYDIAN, LOCRIAN, _______, _______, _______, _______, _______, _______, _______, + DORIAN, MIXOLYDIAN, _______, _______, _______, _______, _______, _______, _______, _______, + PHRYGIAN, AEOLIAN, _______, _______, _______, _______, _______, _______, RESET, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case IONIAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_IONIAN); + } + break; + case DORIAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_DORIAN); + } + break; + case PHRYGIAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_PHRYGIAN); + } + break; + case LYDIAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_LYDIAN); + } + break; + case MIXOLYDIAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_MIXOLYDIAN); + } + break; + case AEOLIAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_AEOLIAN); + } + break; + case LOCRIAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_LOCRIAN); + } + break; + } + return true; +} -- cgit v1.2.3