@ -1,20 +1,19 @@
// this is the style you want to emulate.
// 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,
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
# include "chimera_ortho.h"
# include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// 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.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
// entirely and just use numbers.
enum chimera_ortho_layers
enum chimera_ortho_layers {
{
_QWERTY ,
_QWERTY ,
_CAPS ,
_CAPS ,
_NUMPAD ,
_NUMPAD ,
_SYMBOLS ,
_SYMBOLS ,
_MACROS ,
_MACROS ,
_NAV
_NAV
} ;
} ;
# define KC_NMPD TG(_NUMPAD)
# define KC_NMPD TG(_NUMPAD)
@ -27,153 +26,140 @@ enum chimera_ortho_layers
# define KC_GBRC MT(MOD_RGUI, KC_8)
# define KC_GBRC MT(MOD_RGUI, KC_8)
# define KC_GQOT MT(MOD_LGUI, KC_QUOT)
# define KC_GQOT MT(MOD_LGUI, KC_QUOT)
# define KC_MESC LT(_MACROS, KC_ESC)
# 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))
# define KC_CAD LALT(LCTL(KC_DEL))
# define LONGPRESS_DELAY 150
enum custom_keycodes {
//#define LAYER_TOGGLE_DELAY 300
KC_INCL = SAFE_RANGE ,
KC_PULL ,
// Fillers to make layering more clear
KC_PUSH ,
# define _______ KC_TRN S
KC_SCAP,
# define XXXXXXX KC_NO
KC_SCOF
# define KC_ KC_TRNS
} ;
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
[ _QWERTY ] = KC_KEYMAP(
[ _QWERTY ] = LAYOUT(
//,---- +----+----+----+----+----+----. ,----+----+----+----+----+----+----.
//,---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----. ,------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----.
MESC, Q , W , E , R , T , SCTL, SCTR, Y , U , I , O , P , QUOT,
KC_ MESC, KC_ Q , KC_ W , KC_ E , KC_ R , KC_ T , KC_ SCTL, KC_ SCTR, KC_ Y , KC_ U , KC_ I , KC_ O , KC_ P , KC_ QUOT,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
TAB , A , S , D , F , G , SPLT, SPRT, H , J , K , L , SCLN, ENT ,
KC_ TAB , KC_ A , KC_ S , KC_ D , KC_ F , KC_ G , KC_ SPLT, KC_ SPRT, KC_ H , KC_ J , K C_K , KC_ L , KC_ SCLN, KC_ ENT ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
LSPO, Z , X , C , V , B , SPFN, GBRC, N , M , COMM, DOT , SLSH, RSPC,
KC_ LSPO, KC_ Z , KC_ X , KC_ C , KC_ V , KC_ B , KC_ SPFN, KC_ GBRC, KC_ N , KC_ M , KC_ COMM, KC_ DOT , KC_ SLSH, KC_ RSPC,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
NMPD, BSPC, SPC , SYMB
KC_ NMPD, KC_ BSPC, KC_ SPC , KC_ SYMB
// \------------------ +----+----+---/ \---+----+----+-------------------/
// \------------------ ------------ +-- ----- +- ------ +--- ---/ \------ +-- ----- +-- ----- +----------- -------------------/
) ,
) ,
[ _CAPS ] = KC_KEYMAP(
[ _CAPS ] = LAYOUT(
//,---- +----+----+----+----+----+----. ,----+----+----+----+----+----+----.
//,---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----. ,------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----.
, , , , , , , , , , , , , ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , , , , , UNDS , , , , , , COLN , ,
_______ , _______ , _______ , _______ , _______ , _______ , KC_UNDS , _______ , _______ , _______ , _______ , _______ , KC_COLN , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
SCOF, , , , , , , , , , , , , SCOF,
KC_SCOF, _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_ SCOF,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , ,
_______ , _______ , _______ , _______
// \------------------ +----+----+---/ \---+----+----+-------------------/
// \------------------ ------------ +-- ----- +- ------ +--- ---/ \------ +-- ----- +-- ----- +----------- -------------------/
) ,
) ,
[ _NUMPAD ] = KC_KEYMAP(
[ _NUMPAD ] = LAYOUT(
//,---- +----+----+----+----+----+----. ,----+----+----+----+----+----+----.
//,---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----. ,------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----.
, , COLN , , , , , , , 7 , 8 , 9 , ASTR , MINS,
_______ , _______ , KC_COLN , _______ , _______ , _______ , _______ , _______ , _______ , KC_7 , KC_8 , KC_9 , KC_ASTR , KC_ MINS,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , DOT , , , , , , , 4 , 5 , 6 , PLUS , ,
_______ , _______ , KC_DOT , _______ , _______ , _______ , _______ , _______ , _______ , KC_4 , KC_5 , KC_6 , KC_PLUS , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , , , , , , , , 1 , 2 , 3 , SLSH , ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_1 , KC_2 , KC_3 , KC_SLSH , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , , 0
_______ , _______ , _______ , KC_0
// \------------------ +----+----+---/ \---+----+----+-------------------/
// \------------------ ------------ +-- ----- +- ------ +--- ---/ \------ +-- ----- +-- ----- +----------- -------------------/
) ,
) ,
[ _SYMBOLS ] = KC_KEYMAP(
[ _SYMBOLS ] = LAYOUT(
//,---- +----+----+----+----+----+----. ,----+----+----+----+----+----+----.
//,---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----. ,------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----.
, EXLM , AT , HASH , DLR , PERC , , , CIRC , AMPR , ASTR , LPRN , RPRN , BSLS,
_______ , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , _______ , _______ , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_ BSLS,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, F1 , F2 , F3 , F4 , F5 , , , TILD , COLN , UNDS , LCBR , RCBR , ,
_______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______ , _______ , KC_TILD , KC_COLN , KC_UNDS , KC_LCBR , KC_RCBR , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, F6 , F7 , F8 , F9 , F10 , , , GRV , SCLN , MINS , LBRC , RBRC , ,
_______ , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______ , _______ , KC_GRV , KC_SCLN , KC_MINS , KC_LBRC , KC_RBRC , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
PIPE , , ,
KC_PIPE , _______ , _______ , _______
// \------------------ +----+----+---/ \---+----+----+-------------------/
// \------------------ ------------ +-- ----- +- ------ +--- ---/ \------ +-- ----- +-- ----- +----------- -------------------/
) ,
) ,
[ _NAV ] = KC_KEYMAP(
[ _NAV ] = LAYOUT(
//,---- +----+----+----+----+----+----. ,----+----+----+----+----+----+----.
//,---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----. ,------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----.
, , , , , , , , , , UP , , PSCR , ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_UP , _______ , KC_PSCR , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , , , , , , , , LEFT , DOWN , RGHT , , ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_LEFT , KC_DOWN , KC_RGHT , _______ , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , , , , , , , , PGUP , PGDN , , , ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_PGUP , KC_PGDN , _______ , _______ , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, DEL , ,
_______ , KC_DEL , _______ , _______
// \------------------ +----+----+---/ \---+----+----+-------------------/
// \------------------ ------------ +-- ----- +- ------ +--- ---/ \------ +-- ----- +-- ----- +----------- -------------------/
) ,
) ,
[ _MACROS ] = KC_KEYMAP(
[ _MACROS ] = LAYOUT(
//,---- +----+----+----+----+----+----. ,----+----+----+----+----+----+----.
//,---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----. ,------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----.
, , , , , , , , , , INCL , , , ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_INCL , _______ , _______ , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , , CAD , , , , , , , , , , ,
_______ , _______ , _______ , KC_CAD , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
SCAP, , , , , , , , , , PULL , PUSH , , SCAP,
KC_SCAP, _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_PULL , KC_PUSH , _______ , KC_ SCAP,
//|---- +----+----+----+----+----+----| |----+----+----+----+----+----+----|
//|---- --- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----| |------- +--- ----+------- +-- ----- +-- ----- +- ------ +--- ----|
, , ,
_______ , _______ , _______ , _______
// \------------------ +----+----+---/ \---+----+----+-------------------/
// \------------------ ------------ +-- ----- +- ------ +--- ---/ \------ +-- ----- +-- ----- +----------- -------------------/
)
)
} ;
} ;
const uint16_t PROGMEM fn_actions [ ] = {
bool process_record_user ( uint16_t keycode , keyrecord_t * record ) {
switch ( keycode ) {
} ;
const macro_t * action_get_macro ( keyrecord_t * record , uint8_t id , uint8_t opt )
{
switch ( id ) {
/* include some kind of library or header */
/* include some kind of library or header */
case 0 :
case KC_INCL :
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
SEND_STRING ( " #include <> " ) ;
SEND_STRING ( " #include <> " SS_TAP ( X_LEFT ) ) ;
return MACRO ( T ( LEFT ) , END ) ;
}
}
break ;
return false ;
case 1 :
case KC_PULL :
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
SEND_STRING ( " git pull " ) ;
SEND_STRING ( " git pull " SS_TAP ( X_ENTER ) ) ;
return MACRO ( T ( ENT ) , END ) ;
}
}
break ;
return false ;
case 2 :
case KC_PUSH :
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
SEND_STRING ( " git push " ) ;
SEND_STRING ( " git push " SS_TAP ( X_ENTER ) ) ;
return MACRO ( T ( ENT ) , END ) ;
}
}
break ;
return false ;
case 3 :
case KC_SCAP :
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
layer_on ( _CAPS ) ;
layer_on ( _CAPS ) ;
register_code ( KC_CAPSLOCK ) ;
register_code ( KC_CAPSLOCK ) ;
unregister_code ( KC_CAPSLOCK ) ;
unregister_code ( KC_CAPSLOCK ) ;
}
}
break ;
return false ;
case 4 :
case KC_SCOF :
if ( record - > event . pressed ) {
if ( record - > event . pressed ) {
layer_off ( _CAPS ) ;
layer_off ( _CAPS ) ;
register_code ( KC_CAPSLOCK ) ;
register_code ( KC_CAPSLOCK ) ;
unregister_code ( KC_CAPSLOCK ) ;
unregister_code ( KC_CAPSLOCK ) ;
}
}
break ;
return false ;
}
}
return MACRO_NONE ;
return true ;
} ;
} ;
void matrix_scan_user ( void ) {
void matrix_scan_user ( void ) {
uint8_t layer = biton32 ( layer_state ) ;
uint8_t layer = biton32 ( layer_state ) ;
switch ( layer ) {
switch ( layer ) {
case _QWERTY :
case _QWERTY :
set_led_green ;
set_led_green ;
break ;
break ;
case _CAPS :
case _CAPS :
set_led_white ;
set_led_white ;
break ;
break ;
case _NUMPAD :
case _NUMPAD :
set_led_blue ;
set_led_blue ;
break ;
break ;
@ -181,11 +167,11 @@ void matrix_scan_user(void) {
set_led_red ;
set_led_red ;
break ;
break ;
case _NAV :
case _NAV :
set_led_magenta ;
set_led_magenta ;
break ;
break ;
case _MACROS :
case _MACROS :
set_led_cyan ;
set_led_cyan ;
break ;
break ;
default :
default :
set_led_green ;
set_led_green ;
break ;
break ;