From da320a4fbd62af8ff6bc98674f7ee6b6515919a2 Mon Sep 17 00:00:00 2001 From: Dave G Vigil Sr Date: Thu, 21 Mar 2024 19:58:23 -0500 Subject: [PATCH] Updated --- dgvigil/definitions/keycodes.h | 10 ++ dgvigil/definitions/keymap_blocks.h | 17 +++- dgvigil/definitions/layers.h | 5 +- draculad/keymap.c | 73 ++++++++++++++- iris/keymap.c | 137 +++++++++++++++++++++++++++- 5 files changed, 226 insertions(+), 16 deletions(-) diff --git a/dgvigil/definitions/keycodes.h b/dgvigil/definitions/keycodes.h index 55cf9da..724a281 100644 --- a/dgvigil/definitions/keycodes.h +++ b/dgvigil/definitions/keycodes.h @@ -22,6 +22,13 @@ enum { enum { CUSTOM_KEYCODE_START = SAFE_RANGE, + WINDOWS, + COPY, + PASTE, + CUT, + UNDO, + REDO, + SALL, M_PASS1, M_PASS2, M_PASS3, @@ -41,6 +48,9 @@ enum { #define NUM_SPC LT(_NUM, KC_SPC) #define FUN_DEL LT(_FUN, KC_DEL) +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) + // 2 LEFT THUMB KEYS #define FUN_TAB LT(_FUN, KC_TAB) // 2 RIGHT THUMB KEYS diff --git a/dgvigil/definitions/keymap_blocks.h b/dgvigil/definitions/keymap_blocks.h index 3f2d2c0..757c948 100644 --- a/dgvigil/definitions/keymap_blocks.h +++ b/dgvigil/definitions/keymap_blocks.h @@ -35,9 +35,9 @@ #define __________________NAV_L2____________________ _______, _______, _______, M_PASS3, M_PASS4 #define __________________NAV_L3____________________ _______, _______, _______, M_PASS2, M_PASS1 -#define __________________NAV_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO -#define __________________NAV_R2____________________ KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -#define __________________NAV_R3____________________ _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END +#define __________________NAV_R1____________________ KC_CAPS, PASTE, COPY, CUT, UNDO +#define __________________NAV_R2____________________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ +#define __________________NAV_R3____________________ SALL, KC_HOME, KC_PGUP, KC_PGDN, KC_END // NUM @@ -70,4 +70,13 @@ // MOUSE #define __________________MOU_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO #define __________________MOU_R2____________________ KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R -#define __________________MOU_R3____________________ KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R \ No newline at end of file +#define __________________MOU_R3____________________ KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R + +// COLEMAK-DH +#define __________________COLEML1____________________ Q_ESC, KC_W, KC_F, KC_P, KC_B +#define __________________COLEML2____________________ KC_A, KC_R, KC_S, KC_T, KC_G +#define __________________COLEML3____________________ KC_Z, KC_X, KC_C, KC_D, KC_V + +#define __________________COLEMR1____________________ KC_J, KC_L, KC_U, KC_Y, KC_QUOT +#define __________________COLEMR2____________________ KC_M, KC_N, KC_E, KC_I, KC_O +#define __________________COLEMR3____________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH \ No newline at end of file diff --git a/dgvigil/definitions/layers.h b/dgvigil/definitions/layers.h index d1b9d7e..af8276b 100644 --- a/dgvigil/definitions/layers.h +++ b/dgvigil/definitions/layers.h @@ -1,11 +1,12 @@ #pragma once typedef enum { - _BASE, + _QWERTY, _NAV, _NUM, _SYM, _FUN, _MUS, - _MOUSE + _MOUSE, + _COLEMAK_DH } layers_t; \ No newline at end of file diff --git a/draculad/keymap.c b/draculad/keymap.c index 67bdfd0..8337d98 100644 --- a/draculad/keymap.c +++ b/draculad/keymap.c @@ -35,7 +35,7 @@ combo_t key_combos[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_wrapper( + [_QWERTY] = LAYOUT_wrapper( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ __________________BASE_L1____________________, __________________BASE_R1____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ @@ -253,8 +253,8 @@ static void render_status(void) { oled_write_P(PSTR("\n"), false); oled_write_P(PSTR("\n"), false); switch (get_highest_layer(layer_state)) { - case _BASE: - oled_write_P(PSTR("BASE "), false); + case _QWERTY: + oled_write_P(PSTR("QWERTY "), false); break; case _NAV: oled_write_P(PSTR("NAV "), false); @@ -291,8 +291,70 @@ bool oled_task_user(void) { #endif //OLED_ENABLE +uint8_t mod_state; bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static bool isWindows = false; + mod_state = get_mods(); switch (keycode) { + case WINDOWS: + if (record->event.pressed) { + isWindows = !isWindows; + } + return false; + case COPY: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_C)); + } else { + tap_code16(LGUI(KC_C)); + } + return false; + } + case PASTE: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_V)); + } else { + tap_code16(LGUI(KC_V)); + } + return false; + } + case CUT: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_X)); + } else { + tap_code16(LGUI(KC_X)); + } + return false; + } + case UNDO: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_Z)); + } else { + tap_code16(LGUI(KC_Z)); + } + return false; + } + case REDO: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_Y)); + } else { + tap_code16(LSG(KC_Z)); + } + return false; + } + case SALL: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_A)); + } else { + tap_code16(LGUI(KC_A)); + } + return false; + } case M_PASS1: if (record->event.pressed) { SEND_STRING("P0plarLake!2023"); @@ -300,12 +362,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; case M_PASS2: if (record->event.pressed) { - SEND_STRING("Thel0ve0fchrist!"); + SEND_STRING("ThisisThel0ve0fchrist!"); } return false; case M_PASS3: if (record->event.pressed) { - SEND_STRING("6754"); + SEND_STRING("1029"); } return false; case M_PASS4: @@ -318,6 +380,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } + #ifdef ENCODER_ENABLE bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { diff --git a/iris/keymap.c b/iris/keymap.c index 7d3b4b7..0a36693 100644 --- a/iris/keymap.c +++ b/iris/keymap.c @@ -36,7 +36,7 @@ combo_t key_combos[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_wrapper( + [_QWERTY] = LAYOUT_wrapper( //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ KC_LCTL, __________________BASE_L2____________________, __________________BASE_R2____________________, _______, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_LSFT, __________________BASE_L3____________________,AS_TOGG, _______, __________________BASE_R3____________________, KC_RSFT, + KC_LSFT, __________________BASE_L3____________________,KC_HOME, _______, __________________BASE_R3____________________, KC_RSFT, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ ___________THUMB_L3________, ___________THUMB_R3________ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ _______, __________________NAV_L2____________________, __________________NAV_R2____________________, _______, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______, __________________NAV_L3____________________, _______, _______, __________________NAV_R3____________________, _______, + _______, __________________NAV_L3____________________, WINDOWS, _______, __________________NAV_R3____________________, _______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ ___________THUMB_L3________, ___________THUMB_R3________ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ @@ -132,12 +132,87 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ ___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_COLEMAK_DH] = LAYOUT_wrapper( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __________________COLEML1____________________, __________________COLEMR1____________________, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __________________COLEML2____________________, __________________COLEMR2____________________, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __________________COLEML3____________________, _______, _______, __________________COLEMR3____________________, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + ___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ) }; - +uint8_t mod_state; bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static bool isWindows = false; + mod_state = get_mods(); switch (keycode) { + case WINDOWS: + if (record->event.pressed) { + isWindows = !isWindows; + } + return false; + case COPY: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_C)); + } else { + tap_code16(LGUI(KC_C)); + } + return false; + } + case PASTE: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_V)); + } else { + tap_code16(LGUI(KC_V)); + } + return false; + } + case CUT: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_X)); + } else { + tap_code16(LGUI(KC_X)); + } + return false; + } + case UNDO: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_Z)); + } else { + tap_code16(LGUI(KC_Z)); + } + return false; + } + case REDO: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_Y)); + } else { + tap_code16(LSG(KC_Z)); + } + return false; + } + case SALL: + if (record->event.pressed) { + if (isWindows) { + tap_code16(LCTL(KC_A)); + } else { + tap_code16(LGUI(KC_A)); + } + return false; + } case M_PASS1: if (record->event.pressed) { SEND_STRING("P0plarLake!2023"); @@ -163,11 +238,63 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_NAV] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) }, [_NUM] = { ENCODER_CCW_CW(C(KC_LEFT), C(KC_RIGHT)), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(KC_B, KC_B) }, [_SYM] = { ENCODER_CCW_CW(C(KC_TAB), S(C(KC_TAB))), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) }, [_MOUSE] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) }, [_FUN] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) }, [_MUS] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) }, + [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, }; + + +// Onboard LED +#ifdef RGBLIGHT_ENABLE + // Configure LED + void keyboard_post_init_user(void) { + // Initialize RGB to static black + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + } + + // Change LED + void housekeeping_task_user(void) { + // Caps lock status + if (host_keyboard_led_state().caps_lock) { + rgblight_setrgb_at(4, 4, 0, 0); + } else { + // Layers + switch (get_highest_layer(layer_state | default_layer_state)) { + case 0: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 1: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 2: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 3: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 4: + rgblight_setrgb_at(0, 0, 4, 0); + break; + case 5: + rgblight_setrgb_at(0, 4, 0, 0); + break; + case 6: + rgblight_setrgb_at(0, 0, 4, 0); + break; + case 7: + rgblight_setrgb_at(0, 0, 4, 0); + break; + case 8: + rgblight_setrgb_at(0, 0, 4, 0); + break; + } + } + } +#endif \ No newline at end of file