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