// CUSTOM KEY NAMES #define BSPC_HPR HYPR_T(KC_BSPC) // sends hyper on hold #define ENT_RAI LT(_RAISE, KC_ENT) #define LTSY OSL(_LTSYM) // Bottom row mods (BRM) #define BRM_Z LSFT_T(KC_Z) #define BRM_X LCTL_T(KC_X) #define BRM_C LALT_T(KC_C) #define BRM_D LGUI_T(KC_D) #define BRM_H LGUI_T(KC_H) #define BRM_COMM LALT_T(KC_COMM) #define BRM_DOT LCTL_T(KC_DOT) #define BRM_SLSH LSFT_T(KC_SLSH) #define KC_N_NAV LT(_NAV, KC_N) #define KC_O_LTS LT(_LTSYM, KC_O) #define KC_T_RAI LT(_RAISE, KC_T) #define ESC_MEH MEH_T(KC_ESC) #define KC_S_MOU LT(_MOUSE, KC_S) #define BSP_HPR HYPR_T(KC_BSPC) // sends backspace on hold #define RAISE_ENT LT(_RAISE, KC_ENT) #define SPC_NAV LT(_NAV, KC_SPC) #define O_SFT OSM(MOD_LSFT) #define O_GUI OSM(MOD_LGUI) #define O_ALT OSM(MOD_LALT) #define O_CTL OSM(MOD_LCTL) #define O_MEH OSM(MOD_MEH) // #define SPC_NAV HYPR_T(KC_SPC) // sends hyper on hold #define DLF_ADMIN HYPR(KC_F6) #define DLF_EXCL HYPR(KC_F7) #define FWD G(KC_RBRC) #define BACK G(KC_LBRC) #define NXT_TAB C(KC_TAB) #define PRV_TAB RCS(KC_TAB) #define COPY G(KC_C) #define CUT G(KC_X) #define PASTE G(KC_V) #define UNDO G(KC_Z) #define REDO SCMD(KC_Z) // Hold buttons #define L_WORD LT(_COLEMAK, KC_LEFT) #define R_WORD LT(_COLEMAK, KC_RIGHT) #define U_WORD LT(_COLEMAK, KC_UP) #define D_WORD LT(_COLEMAK, KC_DOWN) #define BSPC_WRD LT(_COLEMAK, KC_BSPC) // sends cmd+backspace on hold #define DEL_LINE LT(_COLEMAK, KC_DEL) // sends ctrl+k on hold #define LT_QL LT(_COLEMAK, KC_9) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ┌─────────┬───────┬───────┬────────────┬─────────┬─────────┐ ┌─────┬───────────┬──────────┬─────────┬──────────┬──────────┐ // │ tab │ q │ w │ f │ p │ b │ │ j │ l │ u │ y │ ; │ BSPC_WRD │ // ├─────────┼───────┼───────┼────────────┼─────────┼─────────┤ ├─────┼───────────┼──────────┼─────────┼──────────┼──────────┤ // │ ESC_MEH │ a │ r │ s_MOU │ t_RAI │ g │ │ m │ n_NAV │ e │ i │ o_LTS │ ' │ // ├─────────┼───────┼───────┼────────────┼─────────┼─────────┤ ├─────┼───────────┼──────────┼─────────┼──────────┼──────────┤ // │ O_SFT │ BRM_Z │ BRM_X │ BRM_C │ BRM_D │ v │ │ k │ BRM_H │ BRM_COMM │ BRM_DOT │ BRM_SLSH │ ent │ // └─────────┴───────┴───────┼────────────┼─────────┼─────────┤ ├─────┼───────────┼──────────┼─────────┴──────────┴──────────┘ // │ MO(_LOWER) │ SPC_NAV │ BSP_HPR │ │ NAV │ RAISE_ENT │ LTSY │ // └────────────┴─────────┴─────────┘ └─────┴───────────┴──────────┘ [_COLEMAK] = LAYOUT_split_3x6_3( KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , BSPC_WRD, ESC_MEH , KC_A , KC_R , KC_S_MOU , KC_T_RAI , KC_G , KC_M , KC_N_NAV , KC_E , KC_I , KC_O_LTS , KC_QUOT , O_SFT , BRM_Z , BRM_X , BRM_C , BRM_D , KC_V , KC_K , BRM_H , BRM_COMM , BRM_DOT , BRM_SLSH , KC_ENT , MO(_LOWER) , SPC_NAV , BSP_HPR , MO(_NAV) , RAISE_ENT , LTSY ), // ┌──────┬───┬───┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬───┬───┬──────┐ // │ tab │ q │ w │ e │ r │ t │ │ y │ u │ i │ o │ p │ bspc │ // ├──────┼───┼───┼─────┼─────┼─────┤ ├─────┼─────┼─────┼───┼───┼──────┤ // │ lctl │ a │ s │ d │ f │ g │ │ h │ j │ k │ l │ ; │ ' │ // ├──────┼───┼───┼─────┼─────┼─────┤ ├─────┼─────┼─────┼───┼───┼──────┤ // │ lsft │ z │ x │ c │ v │ b │ │ n │ m │ , │ . │ / │ esc │ // └──────┴───┴───┼─────┼─────┼─────┤ ├─────┼─────┼─────┼───┴───┴──────┘ // │ │ │ │ │ │ │ │ // └─────┴─────┴─────┘ └─────┴─────┴─────┘ [_QWERTY] = LAYOUT_split_3x6_3( KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, KC_LCTL , 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_ESC , _______ , _______ , _______ , _______ , _______ , _______ ), // ┌─────────┬───────┬─────────┬───────┬───────┬─────┐ ┌─────┬─────┬─────┬───┬───┬─────┐ // │ DT_PRNT │ DT_UP │ DT_DOWN │ │ │ : │ │ - │ 7 │ 8 │ 9 │ , │ │ // ├─────────┼───────┼─────────┼───────┼───────┼─────┤ ├─────┼─────┼─────┼───┼───┼─────┤ // │ O_MEH │ │ │ │ │ / │ │ + │ 4 │ 5 │ 6 │ 0 │ │ // ├─────────┼───────┼─────────┼───────┼───────┼─────┤ ├─────┼─────┼─────┼───┼───┼─────┤ // │ │ O_SFT │ O_CTL │ O_ALT │ O_GUI │ * │ │ = │ 1 │ 2 │ 3 │ . │ │ // └─────────┴───────┴─────────┼───────┼───────┼─────┤ ├─────┼─────┼─────┼───┴───┴─────┘ // │ │ │ │ │ │ │ │ // └───────┴───────┴─────┘ └─────┴─────┴─────┘ [_LOWER] = LAYOUT_split_3x6_3( DT_PRNT , DT_UP , DT_DOWN , _______ , _______ , KC_COLN , KC_PMNS , KC_P7 , KC_P8 , KC_P9 , KC_COMM , _______, O_MEH , _______ , _______ , _______ , _______ , KC_PSLS , KC_PPLS , KC_P4 , KC_P5 , KC_P6 , KC_P0 , _______, _______ , O_SFT , O_CTL , O_ALT , O_GUI , KC_PAST , KC_PEQL , KC_P1 , KC_P2 , KC_P3 , KC_DOT , _______, _______ , _______ , _______ , _______ , _______ , _______ ), // ┌─────┬──────┬───┬─────┬─────┬──────┐ ┌──────┬──────┬─────┬───┬──────┬─────┐ // │ │ ` │ < │ > │ ' │ . │ │ & │ ^ │ [ │ ] │ % │ │ // ├─────┼──────┼───┼─────┼─────┼──────┤ ├──────┼──────┼─────┼───┼──────┼─────┤ // │ │ ! │ - │ + │ = │ # │ │ | │ : │ ( │ ) │ ? │ │ // ├─────┼──────┼───┼─────┼─────┼──────┤ ├──────┼──────┼─────┼───┼──────┼─────┤ // │ │ _ │ / │ * │ │ % │ │ ~ │ $ │ { │ } │ @ │ │ // └─────┴──────┴───┼─────┼─────┼──────┤ ├──────┼──────┼─────┼───┴──────┴─────┘ // │ │ │ │ │ │ │ │ // └─────┴─────┴──────┘ └──────┴──────┴─────┘ [_RAISE] = LAYOUT_split_3x6_3( _______ , KC_GRV , KC_LABK , KC_RABK , KC_QUOT , KC_DOT , A(KC_AMPR) , A(KC_CIRC) , KC_LBRC , KC_RBRC , A(KC_PERC) , _______, _______ , A(KC_EXLM) , KC_PMNS , KC_PPLS , KC_PEQL , A(KC_HASH) , KC_PIPE , KC_COLN , KC_LPRN , KC_RPRN , KC_QUES , _______, _______ , KC_UNDS , KC_SLSH , KC_PAST , KC_BSLS , A(KC_PERC) , KC_TILD , A(KC_DLR) , KC_LCBR , KC_RCBR , A(KC_AT) , _______, _______ , _______ , _______ , _______ , _______ , _______ ), // ┌─────┬──────────┬──────────┬─────────┬─────────┬─────┐ ┌─────┬──────┬──────┬──────┬──────┬─────┐ // │ │ DEL_LINE │ BSPC_WRD │ ent │ │ │ │ │ mprv │ mnxt │ │ │ │ // ├─────┼──────────┼──────────┼─────────┼─────────┼─────┤ ├─────┼──────┼──────┼──────┼──────┼─────┤ // │ │ L_WORD │ D_WORD │ U_WORD │ R_WORD │ │ │ │ vold │ volu │ mply │ mstp │ │ // ├─────┼──────────┼──────────┼─────────┼─────────┼─────┤ ├─────┼──────┼──────┼──────┼──────┼─────┤ // │ │ BACK │ FWD │ PRV_TAB │ NXT_TAB │ │ │ │ bRID │ bRIU │ │ │ │ // └─────┴──────────┴──────────┼─────────┼─────────┼─────┤ ├─────┼──────┼──────┼──────┴──────┴─────┘ // │ │ │ │ │ │ │ │ // └─────────┴─────────┴─────┘ └─────┴──────┴──────┘ [_NAV] = LAYOUT_split_3x6_3( _______ , DEL_LINE , BSPC_WRD , KC_ENT , _______ , _______ , _______ , KC_MPRV , KC_MNXT , _______ , _______ , _______, _______ , L_WORD , D_WORD , U_WORD , R_WORD , _______ , _______ , KC_VOLD , KC_VOLU , KC_MPLY , KC_MSTP , _______, _______ , BACK , FWD , PRV_TAB , NXT_TAB , _______ , _______ , KC_BRID , KC_BRIU , _______ , _______ , _______, _______ , _______ , _______ , _______ , _______ , _______ ), // ┌─────────┬────────┬────────────────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬────┬─────┬─────┐ // │ BOOT_ME │ EE_CLR │ QK_BOOT │ │ │ │ │ │ f7 │ f8 │ f9 │ │ │ // ├─────────┼────────┼────────────────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼────┼─────┼─────┤ // │ COLEMAK │ QWERTY │ COLEMAK_SIMPLE │ │ │ │ │ │ f4 │ f5 │ f6 │ │ │ // ├─────────┼────────┼────────────────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼────┼─────┼─────┤ // │ │ f9 │ f10 │ f11 │ f12 │ f13 │ │ │ f1 │ f2 │ f3 │ │ │ // └─────────┴────────┴────────────────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼────┴─────┴─────┘ // │ │ │ │ │ │ │ │ // └─────┴─────┴─────┘ └─────┴─────┴─────┘ [_ADJUST] = LAYOUT_split_3x6_3( BOOT_ME , EE_CLR , QK_BOOT , _______ , _______ , _______ , _______ , KC_F7 , KC_F8 , KC_F9 , _______ , _______, COLEMAK , QWERTY , COLEMAK_SIMPLE , _______ , _______ , _______ , _______ , KC_F4 , KC_F5 , KC_F6 , _______ , _______, _______ , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_F13 , _______ , KC_F1 , KC_F2 , KC_F3 , _______ , _______, _______ , _______ , _______ , _______ , _______ , _______ ), // ┌─────┬─────┬──────┬─────┬──────┬─────┐ ┌─────┬──────┬──────┬──────┬──────┬─────┐ // │ │ │ │ │ │ │ │ │ │ wh_d │ wh_u │ │ │ // ├─────┼─────┼──────┼─────┼──────┼─────┤ ├─────┼──────┼──────┼──────┼──────┼─────┤ // │ │ │ btn2 │ │ btn1 │ │ │ │ ms_l │ ms_d │ ms_u │ ms_r │ │ // ├─────┼─────┼──────┼─────┼──────┼─────┤ ├─────┼──────┼──────┼──────┼──────┼─────┤ // │ │ │ │ │ │ │ │ │ │ │ │ │ │ // └─────┴─────┴──────┼─────┼──────┼─────┤ ├─────┼──────┼──────┼──────┴──────┴─────┘ // │ │ │ │ │ │ │ │ // └─────┴──────┴─────┘ └─────┴──────┴──────┘ [_MOUSE] = LAYOUT_split_3x6_3( _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_WH_D , KC_WH_U , _______ , _______, _______ , _______ , KC_BTN2 , _______ , KC_BTN1 , _______ , _______ , KC_MS_L , KC_MS_D , KC_MS_U , KC_MS_R , _______, _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, _______ , _______ , _______ , _______ , _______ , _______ ), // ┌─────┬──────┬──────┬──────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ // │ │ S(ą) │ │ S(š) │ │ │ │ │ ū │ ų │ │ │ │ // ├─────┼──────┼──────┼──────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ // │ │ ą │ A(-) │ š │ │ │ │ │ ė │ ę │ į │ │ │ // ├─────┼──────┼──────┼──────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ // │ │ ž │ S(ž) │ č │ │ │ │ │ │ │ │ │ │ // └─────┴──────┴──────┼──────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┴─────┘ // │ │ │ │ │ │ │ │ // └──────┴─────┴─────┘ └─────┴─────┴─────┘ [_LTSYM] = LAYOUT_split_3x6_3( _______ , S(LT_AOGO) , _______ , S(LT_SCAR) , _______ , _______ , _______ , LT_UMAC , LT_UOGO , _______ , _______ , _______, _______ , LT_AOGO , A(KC_MINS) , LT_SCAR , _______ , _______ , _______ , LT_EDOT , LT_EOGO , LT_IOGO , _______ , _______, _______ , LT_ZCAR , S(LT_ZCAR) , LT_CCAR , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, _______ , _______ , _______ , _______ , _______ , _______ ), } // tap-hold funkcija static inline bool base_layer_hold_key(uint16_t keycode, keyrecord_t *record) { if (record->tap.count == 0) { // Key is being held. if (record->event.pressed) { register_code16(keycode); } else { unregister_code16(keycode); } return false; // Skip default handling. } return true; // Continue default handling. } ////////////////////// ///// LEADER KEY ///// ////////////////////// void leader_start_user(void) { // Do something when the leader key is pressed } void leader_end_user(void) { // Paste as plain text => Leader > v if (leader_sequence_one_key(KC_V)) { SEND_STRING(SS_LSFT(SS_LGUI(SS_LALT("v")))); // Dot, space, one shot shift } else if (leader_sequence_one_key(KC_DOT)) { SEND_STRING(". "); set_oneshot_mods(MOD_BIT(KC_LSFT)); // Screenshot to clipboard => Leader > s } else if (leader_sequence_one_key(KC_S)) { SEND_STRING(SS_LSFT(SS_LGUI("2"))); // Screenshot to file => Leader > s s } else if (leader_sequence_two_keys(KC_S, KC_S)) { SEND_STRING(SS_LSFT(SS_LGUI("4"))); // Save mail attachments } else if (leader_sequence_two_keys(KC_F, KC_F)) { SEND_STRING(SS_LSFT(SS_LGUI(SS_LALT("s")))); ////// HYPER KEYS // Leader, s, d => HYPR(KC_F6) // Open SSD } else if (leader_sequence_two_keys(KC_S, KC_D)) { tap_code16(HYPR(KC_F6)); // Leader, d => HYPR(KC_F7) // Open Desktop } else if (leader_sequence_one_key(KC_D)) { tap_code16(HYPR(KC_F7)); // Leader, d, f => HYPR(KC_F8) // Open Downloads } else if (leader_sequence_two_keys(KC_D, KC_F)) { tap_code16(HYPR(KC_F8)); // Leader, g => HYPR(KC_F9) // Google Search } else if (leader_sequence_one_key(KC_G)) { tap_code16(HYPR(KC_F9)); // Leader, v, v => HYPR(KC_F13) // Open in Vim } else if (leader_sequence_two_keys(KC_V, KC_V)) { tap_code16(HYPR(KC_F13)); // Leader, d, w => HYPR(KC_F13) // Open VS Code } else if (leader_sequence_two_keys(KC_D, KC_W)) { tap_code16(HYPR(KC_F16)); } // If leader key combination fails, do this // Mapped HYPER-F14 to error sound on macOS else { tap_code16(HYPR(KC_F14)); } }