You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qmk_firmware/users/talljoe/talljoe.h

130 lines
5.5 KiB

#ifndef USERSPACE
#define USERSPACE
#include "quantum.h"
enum layers {
_BASE = 0,
_WORKMAN,
_NORMAN,
_DVORAK,
_COLMAK,
_GAME,
_NAV,
_ADJUST,
_RESET,
};
#define KM_(...) KM(__VA_ARGS__)
#define _______ KC_TRNS
#define XXXXXXX KC_NO
#define AD_GRV LT(_ADJUST, KC_GRV)
#define MO_NAV MO(_NAV)
#define MO_ADJ MO(_ADJUST)
#define MO_RST MO(_RESET)
#define TG_ADJ TG(_ADJUST)
#define TG_GAME TG(_GAME)
#define LY_QWER DF(_BASE)
#define LY_WORK DF(_WORKMAN)
#define LY_NRMN DF(_NORMAN)
#define LY_DVRK DF(_DVORAK)
#define LY_CLMK DF(_COLMAK)
#define TG_NKRO MAGIC_TOGGLE_NKRO
#define KC_PTT KC_F24
#define MS_MID KC_MS_BTN3
#define US_CAPS CTL_T(KC_ESC)
#define US_QUOT MT(MOD_RCTL, KC_QUOT)
#define US_MINS MT(MOD_RCTL, KC_QUOT)
#ifndef SPACE_COUNT
#define SPACE_COUNT 1
#endif
#if (SPACE_COUNT == 1)
#define KC_SPC1 LT(_NAV, KC_SPC)
#define NV_SPC1 _______
#elif (SPACE_COUNT == 3)
#define KC_SPC1 LT(_NAV,KC_ENT)
#define NV_SPC1 MT(MOD_LSFT | MOD_LCTL, KC_ENT)
#define KC_SPC2 KC_SPC
#define NV_SPC2 KC_BSPC
#define KC_SPC3 LT(_NAV,KC_SPC)
#define NV_SPC3 KC_SPC
#else
#error "Unsupported space count:" SPACE_COUNT
#endif
enum userspace_custom_keycodes {
KC_MAKE = SAFE_RANGE, // can always be here
NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
};
#define SAFE_RANGE NEW_SAFE_RANGE
#define _________MODS_L__________ KC_LCTL, KC_LGUI, KC_LALT
#define ______________MODS_R______________ KC_RALT, KC_RGUI, KC_RCTL, KC_PTT
#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define _________________WORKMAN_L1________________ KC_Q , KC_D , KC_R , KC_W , KC_B
#define _________________WORKMAN_L2________________ KC_A , KC_S , KC_H , KC_T , KC_G
#define _________________WORKMAN_L3________________ KC_Z , KC_X , KC_M , KC_C , KC_V
#define _________________WORKMAN_R1________________ KC_J , KC_F , KC_U , KC_P , KC_SCLN
#define _________________WORKMAN_R2________________ KC_Y , KC_N , KC_E , KC_O , KC_I
#define _________________WORKMAN_R3________________ KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH
#define _________________NORMAN_L1_________________ KC_Q , KC_W , KC_D , KC_F , KC_K
#define _________________NORMAN_L2_________________ KC_A , KC_S , KC_E , KC_T , KC_G
#define _________________NORMAN_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_B
#define _________________NORMAN_R1_________________ KC_J , KC_U , KC_R , KC_L , KC_SCLN
#define _________________NORMAN_R2_________________ KC_Y , KC_N , KC_I , KC_O , KC_H
#define _________________NORMAN_R3_________________ KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH
#define ________________NAVLAYER_L1________________ KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU
#define ________________NAVLAYER_L2________________ KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE
#define ________________NAVLAYER_L3________________ KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD
#define ________________NAVLAYER_R1________________ KC_INS , KC_PGUP, KC_UP , KC_PGDN, XXXXXXX
#define ________________NAVLAYER_R2________________ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
#define ________________NAVLAYER_R3________________ KC_END , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX
#define ________________ADJLAYER_L1________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define ________________ADJLAYER_L2________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define ________________ADJLAYER_L3________________ LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK
#define ________________ADJLAYER_R1________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define ________________ADJLAYER_R2________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define ________________ADJLAYER_R3________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, TG_GAME
#endif