@ -1,7 +1,7 @@
// this is the style you want to emulate.
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
# include "chimera_ls.h"
# include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@ -24,141 +24,136 @@ enum chimera_lets_split_layers
# define KC_SCTR MT(MOD_LCTL, KC_RBRC)
# define KC_SPLT MT(MOD_LALT, KC_MINS)
# define KC_MESC LT(_MACROS, KC_ESC)
# define KC_INCL M(0)
# define KC_PULL M(1)
# define KC_PUSH M(2)
# define KC_SCAP M(3)
# define KC_SCOF M(4)
# define KC_CAD LALT(LCTL(KC_DEL))
enum custom_keycodes {
KC_INCL = SAFE_RANGE ,
KC_PULL ,
KC_PUSH ,
KC_SCAP ,
KC_SCOF
} ;
# define LONGPRESS_DELAY 150
//#define LAYER_TOGGLE_DELAY 300
// Fillers to make layering more clear
# define _______ KC_TRNS
# define XXXXXXX KC_NO
# define KC_ KC_TRNS
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
[ _QWERTY ] = KC_KEYMAP (
//,---- +----+----+----+----+----. ,----+----+----+----+----+----.
MESC, Q , W , E , R , T , Y , U , I , O , P , BSPC,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
TAB , A , S , D , F , G , H , J , K , L , SCLN, ENT,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
LSPO, Z , X , C , V , B , N , M , COMM, DOT , SLSH, RSPC,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
SCTL, SPFN, SPLT, AMPR, NMPD, SPC , SPC , SYMB, ASTR, EXLM, LBRC, SCTR
//`---- +----+----+----+----+----' `----+----+----+----+----+----'
[ _QWERTY ] = LAYOUT_ortho_4x12 (
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
KC_MESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
KC_ TAB, KC_ A, KC_ S, KC_ D, KC_ F, KC_ G, KC_ H, KC_ J, K C_K , KC_ L, KC_ SCLN, KC_ ENT,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
KC_ LSPO, KC_ Z, KC_ X, KC_ C, KC_ V, KC_ B, KC_ N, KC_ M, KC_ COMM, KC_ DOT, KC_ SLSH, KC_ RSPC,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
KC_ SCTL, KC_ SPFN, KC_ SPLT, KC_ AMPR, KC_ NMPD, KC_ SPC, KC_ SPC, KC_ SYMB, KC_ ASTR, KC_ EXLM, KC_ LBRC, KC_ SCTR
//`---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----' `-------- +-- ------ +---- ----+-------- +-- ------ +---- ----'
) ,
[ _CAPS ] = KC_KEYMAP (
//,---- +----+----+----+----+----. ,----+----+----+----+----+----.
, , , , , , , , , , , ,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , , , , COLN , ,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , , , , , ,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , UNDS , , , , , , , , ,
//`---- +----+----+----+----+----' `----+----+----+----+----+----'
[ _CAPS ] = LAYOUT_ortho_4x12 (
//,---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----. ,-------- +-- ------ +---- ----+-------- +-- ------ +---- ----.
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_COLN , _______ ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , KC_UNDS , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
//`---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----' `-------- +-- ------ +---- ----+-------- +-- ------ +---- ----'
) ,
[ _NUMPAD ] = KC_KEYMAP (
//,---- +----+----+----+----+----. ,----+----+----+----+----+----.
, , , , , , , 7 , 8 , 9 , MINS , QUOT,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , 4 , 5 , 6 , PLUS , ENT,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
LSFT, , , , , , , 1 , 2 , 3 , ASTR , EQL,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , , BSPC , SPC , 0 , 0 , DOT , SLSH ,
//`---- +----+----+----+----+----' `----+----+----+----+----+----'
[ _NUMPAD ] = LAYOUT_ortho_4x12 (
//,---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----. ,-------- +-- ------ +---- ----+-------- +-- ------ +---- ----.
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_7 , KC_8 , KC_9 , KC_MINS , KC_ QUOT,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_4 , KC_5 , KC_6 , KC_PLUS , KC_ ENT,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
KC_LSFT, _______ , _______ , _______ , _______ , _______ , _______ , KC_1 , KC_2 , KC_3 , KC_ASTR , KC_ EQL,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , _______ , KC_BSPC , KC_SPC , KC_0 , KC_0 , KC_DOT , KC_SLSH , _______
//`---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----' `-------- +-- ------ +---- ----+-------- +-- ------ +---- ----'
) ,
[ _SYMBOLS ] = KC_KEYMAP (
//,---- +----+----+----+----+----. ,----+----+----+----+----+----.
, EXLM , AT , HASH , DLR , PERC , CIRC , AMPR , ASTR , LPRN , RPRN , QUOT,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
F1 , F2 , F3 , F4 , F5 , F6 , TILD, EQL , UNDS, LCBR, RCBR, PIPE,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
F7 , F8 , F9 , F10, F11, F12, GRV , PLUS, MINS, LBRC, RBRC, BSLS,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , NO , BSPC , SPC , , , , ,
//`---- +----+----+----+----+----' `----+----+----+----+----+----'
[ _SYMBOLS ] = LAYOUT_ortho_4x12 (
//,---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----. ,-------- +-- ------ +---- ----+-------- +-- ------ +---- ----.
_______ , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_ QUOT,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
KC_ F1, KC_ F2, KC_ F3, KC_ F4, KC_ F5, KC_ F6, KC_ TILD, KC_ EQL, KC_ UNDS, KC_ LCBR, KC_ RCBR, KC_ PIPE,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
KC_ F7, KC_ F8, KC_ F9, KC_ F10, KC_ F11, KC_ F12, KC_ GRV, KC_ PLUS, KC_ MINS, KC_ LBRC, KC_ RBRC, KC_ BSLS,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , XXXXXXX , KC_BSPC , KC_SPC , _______ , _______ , _______ , _______ , _______
//`---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----' `-------- +-- ------ +---- ----+-------- +-- ------ +---- ----'
) ,
[ _NAV ] = KC_KEYMAP (
//,---- +----+----+----+----+----. ,----+----+----+----+----+----.
, , , , DEL , BSPC , , HOME , UP , END , INS , PSCR,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , LSFT , LCTL , ENT , , LEFT , DOWN , RGHT , DEL , ,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , PGUP , PGDN , , , ,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , , DEL , , , , , ,
//`---- +----+----+----+----+----' `----+----+----+----+----+----'
[ _NAV ] = LAYOUT_ortho_4x12 (
//,---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----. ,-------- +-- ------ +---- ----+-------- +-- ------ +---- ----.
_______ , _______ , _______ , _______ , KC_DEL , KC_BSPC , _______ , KC_HOME , KC_UP , KC_END , KC_INS , KC_ PSCR,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , KC_LSFT , KC_LCTL , KC_ENT , _______ , KC_LEFT , KC_DOWN , KC_RGHT , KC_DEL , _______ ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_PGUP , KC_PGDN , _______ , _______ , _______ ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , _______ , KC_DEL , _______ , _______ , _______ , _______ , _______ , _______
//`---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----' `-------- +-- ------ +---- ----+-------- +-- ------ +---- ----'
) ,
[ _MACROS ] = KC_KEYMAP (
//,---- +----+----+----+----+----. ,----+----+----+----+----+----.
, , , , , , , , INCL , , , ,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , CAD , , , , , , , , ,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
SCAP, , , , , , , , PULL , PUSH , , SCAP,
//|---- +----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , , , , ,
//`---- +----+----+----+----+----' `----+----+----+----+----+----'
[ _MACROS ] = LAYOUT_ortho_4x12 (
//,---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----. ,-------- +-- ------ +---- ----+-------- +-- ------ +---- ----.
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_INCL , _______ , _______ , _______ ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , KC_CAD , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
KC_SCAP, _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_PULL , KC_PUSH , _______ , KC_ SCAP,
//|---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----| |-------- +-- ------ +---- ----+-------- +-- ------ +---- ----|
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
//`---- ---- +-- ------ +---- ----+-------- +-- ------ +---- ----' `-------- +-- ------ +---- ----+-------- +-- ------ +---- ----'
) ,
} ;
const uint16_t PROGMEM fn_actions [ ] = {
} ;
const macro_t * action_get_macro ( keyrecord_t * record , uint8_t id , uint8_t opt )
{
switch ( id ) {
bool process_record_user ( uint16_t keycode , keyrecord_t * record ) {
switch ( keycode ) {
/* include some kind of library or header */
case 0 :
case KC_INCL :
if ( record - > event . pressed ) {
SEND_STRING ( " #include <> " ) ;
return MACRO ( T ( LEFT ) , END ) ;
SEND_STRING ( " #include <> " SS_TAP ( X_LEFT ) ) ;
return false ;
}
break ;
case 1 :
case KC_PULL :
if ( record - > event . pressed ) {
SEND_STRING ( " git pull " ) ;
return MACRO ( T ( ENT ) , END ) ;
SEND_STRING ( " git pull " SS_TAP ( X_ENTER ) ) ;
return false ;
}
break ;
case 2 :
case KC_PUSH :
if ( record - > event . pressed ) {
SEND_STRING ( " git push " ) ;
return MACRO ( T ( ENT ) , END ) ;
SEND_STRING ( " git push " SS_TAP ( X_ENTER ) ) ;
return false ;
}
break ;
case 3 :
case KC_SCAP :
if ( record - > event . pressed ) {
layer_on ( _CAPS ) ;
register_code ( KC_CAPSLOCK ) ;
unregister_code ( KC_CAPSLOCK ) ;
return false ;
}
break ;
case 4 :
case KC_SCOF :
if ( record - > event . pressed ) {
layer_off ( _CAPS ) ;
register_code ( KC_CAPSLOCK ) ;
unregister_code ( KC_CAPSLOCK ) ;
return false ;
}
break ;
}
return MACRO_NONE ;
return true ;
} ;