qmk_me

QMK Firmware userspace, keyboards, & keymaps
git clone git://git.pngu.org.org/qmk_me
Log | Files | Refs | Submodules | README | LICENSE

commit 1d3c16d8a8db0b69fe06fd86889aab9edd1bb76c
parent d3bec43c97c99113745dca19a822e458d2ed0ee7
Author: Jack Sangdahl <jack@pngu.org>
Date:   Mon, 15 Dec 2025 20:53:22 -0700

More layout updates

Diffstat:
Musers/jack/jack.c | 23++++++++++++++++-------
Musers/jack/jack.h | 16++++++----------
Musers/jack/rules.mk | 1+
Mutil/keymap.yaml | 15++++++++-------
Mutil/layout.svg | 22++++++++++------------
5 files changed, 41 insertions(+), 36 deletions(-)

diff --git a/users/jack/jack.c b/users/jack/jack.c @@ -41,7 +41,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case ESC_L1: - case UND_L2: + case REP_L2: case SPC_L1: case BSPC_L2: return TAPPING_TERM - 40; @@ -74,8 +74,12 @@ tap_dance_action_t tap_dance_actions[] = { #ifdef COMBO_ENABLE const uint16_t PROGMEM enter_combo[] = {RSFT_T(KC_J), RCTL_T(KC_K), COMBO_END}; +const uint16_t PROGMEM unds_combo[] = {LCTL_T(KC_D), LSFT_T(KC_F), COMBO_END}; -combo_t key_combos[] = {COMBO(enter_combo, KC_ENT)}; +combo_t key_combos[] = { + COMBO(enter_combo, KC_ENT), + COMBO(unds_combo, KC_UNDS), +}; #endif #ifdef KEY_OVERRIDE_ENABLE @@ -85,6 +89,13 @@ const key_override_t volume_key_override = const key_override_t *key_overrides[] = {&volume_key_override}; #endif +bool remember_last_key_user(uint16_t keycode, keyrecord_t *record, + uint8_t *remembered_mods) { + if (keycode == REP_L2) + return false; + return true; +} + bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_record_keymap(keycode, record)) return false; @@ -115,14 +126,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) SEND_STRING("jack@pngu.org"); break; - - case LT(LAYER2, KC_UNDS): - if (record->tap.count && record->event.pressed) { - tap_code16(KC_UNDS); + case REP_L2: + if (record->tap.count) { + repeat_key_invoke(&record->event); return false; } break; - INTERCEPT_MOD_TAP(LSFT_T, KC_PLUS) INTERCEPT_MOD_TAP(LALT_T, KC_EXLM) INTERCEPT_MOD_TAP(LGUI_T, KC_ASTR) INTERCEPT_MOD_TAP(RSFT_T, KC_LPRN) diff --git a/users/jack/jack.h b/users/jack/jack.h @@ -54,7 +54,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record); #endif #define ESC_L1 LT(LAYER1, KC_ESC) -#define UND_L2 LT(LAYER2, KC_UNDS) +#define REP_L2 LT(LAYER2, KC_NO) #define SPC_L1 LT(LAYER1, KC_SPC) #define BSPC_L2 LT(LAYER2, KC_BSPC) #define HRML(k1, k2, k3, k4) LALT_T(k1), LGUI_T(k2), LCTL_T(k3), LSFT_T(k4) @@ -63,21 +63,17 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record); // clang-format off #define ___LAYER00___ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P #define ___LAYER01___ HRML(KC_A, KC_S, KC_D, KC_F), KC_G, KC_H, HRMR(KC_J, KC_K, KC_L, KC_SCLN) -#define ___LAYER02___ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT -#define ___LAYER03___ ESC_L1, KC_SPC, KC_BSPC, UND_L2 - -// #define ___LAYER00___ KC_V, KC_M, KC_L, KC_C, KC_P, KC_X, KC_F, KC_O, KC_U, KC_J -// #define ___LAYER01___ KC_S, KC_T, KC_R, KC_D, KC_Y, KC_DOT, KC_N, KC_A, KC_E, KC_I -// #define ___LAYER02___ KC_Z, KC_K, KC_Q, KC_G, KC_W, KC_B, KC_H, KC_QUOT, KC_SCLN, KC_COMM +#define ___LAYER02___ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH +#define ___LAYER03___ ESC_L1, KC_SPC, KC_BSPC, REP_L2 #define ___LAYER10___ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 -#define ___LAYER11___ HRML(KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS), KC_TAB, KC_LEFT, HRMR(KC_DOWN, KC_UP, KC_RGHT, KC_CAPS) +#define ___LAYER11___ HRML(_______, _______, _______, _______), KC_TAB, KC_LEFT, HRMR(KC_DOWN, KC_UP, KC_RGHT, KC_CAPS) #define ___LAYER12___ KC_VOLU, TD(PLY_NXT_PRV), REMOVE, UPDIR, USRNME, _______, _______, _______, _______, _______ #define ___LAYER13___ _______, _______, _______, _______ #define ___LAYER20___ KC_GRV, KC_LABK, KC_RABK, KC_MINS, KC_PIPE, KC_CIRC, KC_LCBR, KC_RCBR, KC_DLR, KC_BSLS -#define ___LAYER21___ HRML(KC_EXLM, KC_ASTR, KC_SLSH, KC_EQL), KC_AMPR, KC_HASH, HRMR(KC_LPRN, KC_RPRN, KC_SCLN, KC_DQUO) -#define ___LAYER22___ KC_TILD, KC_PLUS, KC_LBRC, KC_RBRC, KC_PERC, KC_AT, KC_COLN, KC_COMM, KC_DOT, KC_QUOT +#define ___LAYER21___ HRML(KC_EXLM, KC_ASTR, KC_SLSH, KC_EQL), KC_AMPR, KC_HASH, HRMR(KC_LPRN, KC_RPRN, KC_QUOT, KC_DQUO) +#define ___LAYER22___ KC_TILD, KC_PLUS, KC_LBRC, KC_RBRC, KC_PERC, KC_AT, KC_COLN, _______, _______, _______ #define ___LAYER23___ _______, _______, _______, _______ #define ___LAYER30___ XRGB_NXT, XRGB_HUI, XRGB_SAI, XRGB_VAI, XRGB_TOG, _______, _______, _______, _______, QK_MAKE diff --git a/users/jack/rules.mk b/users/jack/rules.mk @@ -9,6 +9,7 @@ EXTRAKEY_ENABLE = yes BOOTMAGIC_ENABLE = yes CAPS_WORD_ENABLE = yes TAP_DANCE_ENABLE = yes +REPEAT_KEY_ENABLE = yes SPACE_CADET_ENABLE = no AUTOCORRECT_ENABLE = yes OS_DETECTION_ENABLE = yes diff --git a/util/keymap.yaml b/util/keymap.yaml @@ -15,18 +15,18 @@ layers: {h: $$mdi:apple-keyboard-command$$, t: "L"}, {h: $$mdi:apple-keyboard-option$$, t: ";"} ] - - ["Z", "X", "C", "V", "B", "N", "M", ",", ".", "'"] + - ["Z", "X", "C", "V", "B", "N", "M", ",", ".", {t: "/", s: "?"}] - {type: ghost} - {h: "L1", t: "Esc", type: held} - {t: $$mdi:keyboard-space$$ } - {t: $$mdi:backspace-outline$$} - - {h: "L2", t: "_", type: held} + - {h: "L2", t: "Rep", type: held} - {type: ghost} LAYER1: - ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"] - - ["/", "*", "-", "+", $$mdi:keyboard-tab$$, $$mdi:arrow-left$$, $$mdi:arrow-down$$, $$mdi:arrow-up$$, $$mdi:arrow-right$$, $$mdi:apple-keyboard-caps$$] + - [null, null, null, null, $$mdi:keyboard-tab$$, $$mdi:arrow-left$$, $$mdi:arrow-down$$, $$mdi:arrow-up$$, $$mdi:arrow-right$$, $$mdi:apple-keyboard-caps$$] - [ - $$mdi:volume-minus$$, + {t: $$mdi:volume-plus$$, s: $$mdi:volume-minus$$}, $$mdi:play-pause$$, $$mdi:trash-can-outline$$, $$mdi:folder-arrow-left-outline$$, @@ -35,7 +35,7 @@ layers: null, null, null, - $$mdi:volume-plus$$ + null ] - {type: ghost} - {t: "▽", type: trans} @@ -45,8 +45,8 @@ layers: - {type: ghost} LAYER2: - ["`", "<", ">", "-", "|", "^", "{", "}", "$", "\\"] - - ["!", "*", "/", "=", "&", "#", "(", ")", ";", "\""] - - ["~", "+", "[", "]", "%", "@", ":", ",", ".", "'"] + - ["!", "*", "/", "=", "&", "#", "(", ")", "'", "\""] + - ["~", "+", "[", "]", "%", "@", ":", null, null, null] - {type: ghost} - {t: "▽", type: trans} - {t: "▽", type: trans} @@ -65,4 +65,5 @@ layers: - {type: ghost} combos: - {p: [16, 17], k: $$mdi:keyboard-return$$, l: ["LAYER0"]} + - {p: [12, 13], k: "_", l: ["LAYER0"]} - {p: [13, 16], k: "Cap Wrd", l: ["LAYER0"], align: top, offset: 0.1} diff --git a/util/layout.svg b/util/layout.svg @@ -312,7 +312,8 @@ path.combo { </g> <g transform="translate(700, 161)" class="key keypos-29"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">&#x27;</text> +<text x="0" y="0" class="key tap">/</text> +<text x="0" y="-24" class="key shifted">?</text> </g> <g transform="translate(168, 205)" class="key ghost keypos-30"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key ghost"/> @@ -332,7 +333,7 @@ path.combo { </g> <g transform="translate(498, 213) rotate(-15.0)" class="key held keypos-34"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key held"/> -<text x="0" y="0" class="key held tap">_</text> +<text x="0" y="0" class="key held tap">Rep</text> <text x="0" y="24" class="key held hold">L2</text> </g> <g transform="translate(560, 205)" class="key ghost keypos-35"> @@ -343,6 +344,10 @@ path.combo { <use href="#mdi:keyboard-return" xlink:href="#mdi:keyboard-return" x="553" y="80" height="14" width="14.0" class="combo tap glyph mdi:keyboard-return"/> </g> <g class="combo combopos-1"> +<rect rx="6" ry="6" x="154" y="74" width="28" height="26" class="combo"/> +<text x="168" y="88" class="combo tap">_</text> +</g> +<g class="combo combopos-2"> <path d="M364,56 h-162 a6.0,6.0 0 0 0 -6.0,6.0 v10" class="combo"/> <path d="M364,56 h162 a6.0,6.0 0 0 1 6.0,6.0 v10" class="combo"/> <rect rx="6" ry="6" x="350" y="43" width="28" height="26" class="combo"/> @@ -397,19 +402,15 @@ path.combo { </g> <g transform="translate(28, 105)" class="key keypos-10"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">/</text> </g> <g transform="translate(84, 91)" class="key keypos-11"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">*</text> </g> <g transform="translate(140, 84)" class="key keypos-12"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">-</text> </g> <g transform="translate(196, 91)" class="key keypos-13"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">+</text> </g> <g transform="translate(252, 98)" class="key keypos-14"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> @@ -437,7 +438,8 @@ path.combo { </g> <g transform="translate(28, 161)" class="key keypos-20"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<use href="#mdi:volume-minus" xlink:href="#mdi:volume-minus" x="-7" y="-7" height="14" width="14.0" class="key tap glyph mdi:volume-minus"/> +<use href="#mdi:volume-plus" xlink:href="#mdi:volume-plus" x="-7" y="-7" height="14" width="14.0" class="key tap glyph mdi:volume-plus"/> +<use href="#mdi:volume-minus" xlink:href="#mdi:volume-minus" x="-5" y="-24" height="10" width="10.0" class="key shifted glyph mdi:volume-minus"/> </g> <g transform="translate(84, 147)" class="key keypos-21"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> @@ -469,7 +471,6 @@ path.combo { </g> <g transform="translate(700, 161)" class="key keypos-29"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<use href="#mdi:volume-plus" xlink:href="#mdi:volume-plus" x="-7" y="-7" height="14" width="14.0" class="key tap glyph mdi:volume-plus"/> </g> <g transform="translate(168, 205)" class="key ghost keypos-30"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key ghost"/> @@ -572,7 +573,7 @@ path.combo { </g> <g transform="translate(644, 91)" class="key keypos-18"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">;</text> +<text x="0" y="0" class="key tap">&#x27;</text> </g> <g transform="translate(700, 105)" class="key keypos-19"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> @@ -608,15 +609,12 @@ path.combo { </g> <g transform="translate(588, 140)" class="key keypos-27"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">,</text> </g> <g transform="translate(644, 147)" class="key keypos-28"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">.</text> </g> <g transform="translate(700, 161)" class="key keypos-29"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> -<text x="0" y="0" class="key tap">&#x27;</text> </g> <g transform="translate(168, 205)" class="key ghost keypos-30"> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key ghost"/>