// 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));
}
}