diff options
Diffstat (limited to 'keyboards/lily58/keymaps/muppetjones/keymap.c')
-rw-r--r-- | keyboards/lily58/keymaps/muppetjones/keymap.c | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/keyboards/lily58/keymaps/muppetjones/keymap.c b/keyboards/lily58/keymaps/muppetjones/keymap.c new file mode 100644 index 0000000000..6e02482289 --- /dev/null +++ b/keyboards/lily58/keymaps/muppetjones/keymap.c @@ -0,0 +1,240 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H +#include "muppetjones.h" +#include "features/bongo_cat.h" +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +/* + * qmk compile -kb lily58/rev1 -km muppetjones + */ + +// GACS (Lower) +#define HR_LBRC LCTL_T(KC_LBRC) +#define HR_RBRC LSFT_T(KC_RBRC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + +/* Colemak DH + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BADJ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | F | P | B | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' | + * |------+------+------+------+------+------| Raise | | Lower |------+------+------+------+------+------| + * |LShift| Z | X | C | D | V |-------| |-------| K | H | , | . | / |Enter | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Alt | LGUI |LOWER | /Space / \Space \ |RAISE | Ctrl | RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_CLMK_DH] = LAYOUT_wrapper( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_CAPS, __BLANK____________________________________, KC_BSPC, + KC_CAPS, __COLEMAK_MOD_DH_L1________________________, __COLEMAK_MOD_DH_R1_W_QUOT_________________, KC_BSPC, + HY_ESC, __COLEMAK_MOD_DH_L2_W_GACS_________________, __COLEMAK_MOD_DH_R2_W_SCAG_________________, KC_QUOT, + TD_LAYR, __COLEMAK_MOD_DH_L3_W_SFTV_________________, KC_CAPS, KC_TAB, __COLEMAK_MOD_DH_R3________________________, KC_SFTENT, + XXXXXXX, XXXXXXX, HY_ESC, LOW_ENT, NAV_SPC, HY_BSPC, XXXXXXX, XXXXXXX +), + +/* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_QWERTY] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __QWERTY_L1________________________________, __QWERTY_R1________________________________, _______, + _______, __QWERTY_L2________________________________, __QWERTY_R2________________________________, _______, + _______, __QWERTY_L3________________________________, _______, _______, __QWERTY_R3________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), +[_MOUSE] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, _______, _______, __BLANK____________________________________, _______, + KC_BTN1, __BLANK____________________________________, _______, KC_BTN2 +), + +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | | Mute | Vol- | Vol+ | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | | | ` | | ( | | ) | 7 | 8 | 9 | \ | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | GUI | ALT | _ | - | { |-------. ,-------| } | 4 | 5 | 6 | * | ` | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | + | = | [ |-------| |-------| ] | 1 | 2 | 3 | | |Enter | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | |LOWER | / / \ \ | 0 | . | = | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_LOWER] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __SYMBOLS_L1_______________________________, __NUMPAD_R1________________________________, _______, + _______, __SYMBOLS_L2_______________________________, __NUMPAD_R2________________________________, KC_COMM, + _______, __SYMBOLS_L3_______________________________, _______, _______, __NUMPAD_R3________________________________, KC_DOT, + _______, _______, _______, _______, KC_SPC, KC_0, KC_DOT, _______ +), +/* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | |MS_A_0|MS_A_1|MS_A_2| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | |MS_W_U| | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | GUI | ALT | CTL | SFT |MS_W_D|-------. ,-------| | Left | Down | Up |Right | | + * |------+------+------+------+------+------|MS_W_L | |MS_W_R |------+------+------+------+------+------| + * | | MS_L | MS_D | MS_U | MS_R | |-------| |-------| |MS_W_L|MS_W_D|MS_W_U|MS_W_R| | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | | MS_2 | / MS_1 / \ \ |RAISE | | | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + // */ + +[_RAISE] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __SYMBOLS_L1_______________________________, __NAV_R1___________________________________, _______, + _______, __SYMBOLS_L2_______________________________, __NAV_R2___________________________________, _______, + _______, __SYMBOLS_L3_______________________________, _______, _______, __NAV_R3___________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), +[_NAV] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __VIM_L1___________________________________, __NAV_R1___________________________________, _______, + _______, __BLANK_W_GACS_____________________________, __NAV_R2___________________________________, _______, + _______, __BLANK____________________________________, _______, _______, __NAV_R3___________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* ADJUST + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset| | | | | | Reset| | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_ADJUST] = LAYOUT_wrapper( + _______, __BLANK____________________________________, _______, CLMK_DH, QWERTY, _______, _______, _______, + RESET, __ADJUST_L1________________________________, __MEDIA_R1_________________________________, _______, + _______, __ADJUST_L2________________________________, __MEDIA_R2_________________________________, _______, + _______, __ADJUST_L3________________________________, _______, _______, __MEDIA_R3_________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +) + + // clang-format on +}; + +// SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) return OLED_ROTATION_180; // flips the display 180 degrees if offhand + return rotation; +} + +// When you add source files to SRC in rules.mk, you can use functions. +const char *read_layer_state_user(void); +void set_keylog(uint16_t keycode, keyrecord_t *record); +const char *read_keylog(void); +const char *read_keylogs(void); + +char layer_state_str[24]; + +const char *read_layer_state_user(void) { + // NOTE; + switch (get_highest_layer(layer_state)) { + case _CLMK_DH: + return "Layer: Colemak"; + break; + case _QWERTY: + return "Layer: QWERTY "; + break; + case _MOUSE: + return "Layer: Mouse "; + break; + case _LOWER: + return "Layer: Lower "; + break; + case _RAISE: + return "Layer: Raise "; + break; + case _NAV: + return "Layer: Nav "; + break; + case _ADJUST: + return "Layer: Adjust "; + break; + default: + break; + } + + char *layer_state_str = "Layer: Und- "; + layer_state_str[10] = '0' + layer_state % 10; + return layer_state_str; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + // If you want to change the display of OLED, you need to change here + oled_write_ln(read_layer_state_user(), false); + oled_write_ln(read_keylog(), false); + oled_write_ln(read_keylogs(), false); + } else { + render_bongo_cat(); + oled_set_cursor(0, 6); + oled_write_P(PSTR("WPM: "), false); + oled_write(get_u8_str(get_current_wpm(), ' '), false); + } + return false; +} +#endif // OLED_DRIVER_ENABLE + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { +#ifdef OLED_ENABLE + set_keylog(keycode, record); +#endif + // set_timelog(); + } + + // Regular user keycode case statement + switch (keycode) { + default: + return true; + } + + return true; +} |