From 0728200e28102c78bde5f1608633f461ced48df7 Mon Sep 17 00:00:00 2001 From: Rob Hilgefort Date: Mon, 11 Jan 2021 00:11:42 -0700 Subject: [Keymap] revamped rjhilgefort planck keymap (#11385) --- keyboards/planck/keymaps/rjhilgefort/keymap.c | 273 +++++++++++++++++--------- 1 file changed, 184 insertions(+), 89 deletions(-) (limited to 'keyboards/planck/keymaps/rjhilgefort/keymap.c') diff --git a/keyboards/planck/keymaps/rjhilgefort/keymap.c b/keyboards/planck/keymaps/rjhilgefort/keymap.c index 3331915311..57f966e74e 100644 --- a/keyboards/planck/keymaps/rjhilgefort/keymap.c +++ b/keyboards/planck/keymaps/rjhilgefort/keymap.c @@ -17,99 +17,89 @@ #include QMK_KEYBOARD_H #include "muse.h" -extern keymap_config_t keymap_config; enum planck_layers { - _QWERTY, + _MAC, + _LINUX, _LOWER, _RAISE, _ADJUST }; enum planck_keycodes { - QWERTY = SAFE_RANGE, + MAC = SAFE_RANGE, + LINUX, BACKLIT, - EXT_PLV }; +#define ALT_ESC ALT_T(KC_ESC) +#define CTL_ESC CTL_T(KC_ESC) +#define GUI_ESC GUI_T(KC_ESC) +#define HYPER LGUI(LSFT(KC_LALT)) + #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define CTRL_ESC MT(MOD_LCTL, KC_ESC) -#define HYPER LCTL(LALT(QK_LGUI)) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Qwerty -* ,-------------------------------------------------------------------------------------------------------. -* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | -* |--------+--------+--------+--------+--------+-------+-------+------+--------+--------+--------+--------| -* | Ct/Esc | A | S | D | F | G | H | J | K | L | ; | " | -* |--------+--------+--------+--------+--------+-------+-------+------+--------+--------+--------+--------| -* | Shift | Z | X | C | V | B | N | M | , | . | / | Enter | -* |--------+--------+--------+--------+--------+-------+-------+------+--------+--------+--------+--------| -* | | Ctrl | Raise | Alt | GUI | Space | Lowr | Hyper | | | Raise | -* `-------------------------------------------------------------------------------------------------------' -*/ -[_QWERTY] = LAYOUT_planck_grid( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - CTRL_ESC, 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_ENT, - _______, KC_LCTL, RAISE, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, LOWER, HYPER, _______, _______, RAISE +[_MAC] = LAYOUT_planck_grid( +// ,-----------------------------------------------------------------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + CTL_ESC, 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_ENT, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, RAISE, ALT_ESC, KC_LGUI, KC_SPC, KC_SPC, LOWER, HYPER, _______, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. +), + +[_LINUX] = LAYOUT_planck_grid( +// ,-----------------------------------------------------------------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + ALT_ESC, 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_ENT, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, RAISE, GUI_ESC, KC_LCTL, KC_SPC, KC_SPC, LOWER, HYPER, _______, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. ), -/* Lower -* ,-----------------------------------------------------------------------------------------------------------. -* | | \ | / | [ | ] | ~ | | | = | + | - | _ | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+--------| -* | | { | } | ( | ) | ` | ← | ↓ | ↑ | → | Alt | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+--------| -* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+--------| -* | | | | | | | | | | | | -* `-----------------------------------------------------------------------------------------------------------' -*/ [_LOWER] = LAYOUT_planck_grid( - _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______, - _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LALT, _______, - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. + _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. ), -/* Raise -* ,----------------------------------------------------------------------------------------------------------. -* | | | | | | | | 7 | 8 | 9 | | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| -* | | VolMte | Vol - | Vol + | Ply/Pse| | | 4 | 5 | 6 | | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| -* | | Trak ← | Trak → | Scrn - | Scrn + | | | 1 | 2 | 3 | | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| -* | | | | | | | | 0 | . | | | -* `----------------------------------------------------------------------------------------------------------' -*/ [_RAISE] = LAYOUT_planck_grid( - _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, - _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, KC_4, KC_5, KC_6, _______, _______, - _______, KC_MRWD, KC_MFFD, KC_SLCK, KC_PAUS, _______, _______, KC_1, KC_2, KC_3, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. + _______, _______, KC_BRID, KC_VOLU, KC_BRIU, _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_4, KC_5, KC_6, KC_PLUS, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_VOLD, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. ), -/* Adjust (Lower + Raise) - * ,----------------------------------------------------------------------------------------------------------. - * | | Reset | | | | | | | | | | Del | - * |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | MuMod | AudOn | AudOff | | | Qwerty | | | | | - * |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | Voice- | Voice+ | MusOn | Musoff | MIDIon | MIDIof | TermOn | TermOff| | | | - * |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | | | | | | | | - * `----------------------------------------------------------------------------------------------------------' - */ [_ADJUST] = LAYOUT_planck_grid( - _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, - _______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, QWERTY, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. + _______, MAC, LINUX, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ,-----------------------------------------------------------------------------------------------------------. ) }; @@ -119,10 +109,135 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); #endif -uint32_t layer_state_set_user(uint32_t state) { +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MAC: + if (record->event.pressed) { + set_single_persistent_default_layer(_MAC); + } + return false; + break; + case LINUX: + if (record->event.pressed) { + set_single_persistent_default_layer(_LINUX); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + #ifdef KEYBOARD_planck_rev5 + writePinLow(E6); + #endif + } else { + unregister_code(KC_RSFT); + #ifdef KEYBOARD_planck_rev5 + writePinHigh(E6); + #endif + } + return false; + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void encoder_update(bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } +} + +void dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { +#ifdef AUDIO_ENABLE + static bool play_sound = false; +#endif + if (active) { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_song); } +#endif + layer_on(_ADJUST); + } else { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_gb_song); } +#endif + layer_off(_ADJUST); + } +#ifdef AUDIO_ENABLE + play_sound = true; +#endif + break; + } + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } +} + +void matrix_scan_user(void) { +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif +} + bool music_mask_user(uint16_t keycode) { switch (keycode) { case RAISE: @@ -132,23 +247,3 @@ bool music_mask_user(uint16_t keycode) { return true; } } - -/* -* Example -* ,----------------------------------------------------------------------------------------------------------. -* | | | | | | | | | | | | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| -* | | | | | | | | | | | | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| -* | | | | | | | | | | | | | -* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| -* | | | | | | | | | | | | -* `----------------------------------------------------------------------------------------------------------' -* -[_EXAMPLE] = LAYOUT_planck_grid( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), -*/ -- cgit v1.2.1