Created
May 31, 2018 19:58
-
-
Save GregSharpe1/fbd43dd2b50cc6cc478398ce3f5dd920 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "iris.h" | |
#include "action_layer.h" | |
#include "eeconfig.h" | |
extern keymap_config_t keymap_config; | |
#define _QWERTY 0 | |
#define _LOWER 1 | |
#define _RAISE 2 | |
#define _ADJUST 16 | |
enum custom_keycodes { | |
QWERTY = SAFE_RANGE, | |
LOWER, | |
RAISE, | |
ADJUST | |
}; | |
#define KC_ KC_TRNS | |
// LAYERS | |
#define KC_LOWR LOWER | |
#define KC_RASE RAISE | |
#define KC_ADJUST ADJUST | |
#define KC_RST RESET | |
#define KC_BL_S BL_STEP | |
#define KC_DBUG DEBUG | |
// RGB MODE CONTROLS | |
#define KC_RTOG RGB_TOG | |
#define KC_RMOD RGB_MOD | |
#define KC_RHUI RGB_HUI | |
#define KC_RHUD RGB_HUD | |
#define KC_RSAI RGB_SAI | |
#define KC_RSAD RGB_SAD | |
#define KC_RVAI RGB_VAI | |
#define KC_RVAD RGB_VAD | |
// MEDIA CONTROLS # MAC || # WIN | |
#define KC_NEXT KC_MFFD //KC_MNXT | |
#define KC_PREV KC_MRWD //KC_MPRV | |
// Toggle Play / Pause | |
#define KC_TPLY KC_MPLY | |
#define KC_STOP KC_MSTP | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
[_QWERTY] = LAYOUT_kc( | |
//,----+----+----+----+----+----. ,----+----+----+----+----+----. | |
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL , | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
LSFT, A , S , D , F , G , H , J , K , L ,SCLN,HASH, | |
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | |
LCTL, Z , X , C , V , B , , ENT , N , M ,COMM, DOT,SLSH,ENT , | |
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | |
LOWR,LALT,SPC , BSPC,LGUI,RASE | |
// `----+----+----' `----+----+----' | |
), | |
[_LOWER] = LAYOUT_kc( | |
//,----+----+----+----+----+----. ,----+----+----+----+----+----. | |
TILD,EXLM, AT, QUOT,DLR, PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
RST , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
DEL ,RSAD,RSAI, , ,LBRC, RBRC, P4 , P5 , P6 ,PLUS, , | |
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | |
RTOG,PIPE, , , ,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, , | |
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | |
, ,DEL , DEL , , P0 | |
// `----+----+----' `----+----+----' | |
), | |
[_ADJUST] = LAYOUT_kc( | |
//,----+----+----+----+----+----. ,----+----+----+----+----+----. | |
F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10, F11, F12, | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
MUTE,VOLD,VOLU,PREV,TPLY,NEXT, , , ,PSCR, INS, , | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
,MS_L,MS_D,MS_U,MS_R, , LEFT,DOWN, UP ,RGHT, , , | |
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | |
, , , , , , , , , , , , , , | |
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | |
, , , , , | |
// `----+----+----' `----+----+----' | |
), | |
[_RAISE] = LAYOUT_kc( | |
//,----+----+----+----+----+----. ,----+----+----+----+----+----. | |
F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
,EXLM,QUOT,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , | |
//|----+----+----+----+----+----| |----+----+----+----+----+----| | |
, , , ,PGUP,UNDS, EQL ,HOME, , , ,BSLS, | |
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | |
, , , ,PGDN,MINS, , ,PLUS,END , , , , , | |
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | |
, , , , , | |
// `----+----+----' `----+----+----' | |
) | |
}; | |
void persistent_default_layer_set(uint16_t default_layer) { | |
eeconfig_update_default_layer(default_layer); | |
default_layer_set(default_layer); | |
} | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
switch (keycode) { | |
case QWERTY: | |
if (record->event.pressed) { | |
persistent_default_layer_set(1UL<<_QWERTY); | |
} | |
return false; | |
break; | |
case LOWER: | |
if (record->event.pressed) { | |
layer_on(_LOWER); | |
update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
} else { | |
layer_off(_LOWER); | |
update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
} | |
return false; | |
break; | |
case RAISE: | |
if (record->event.pressed) { | |
layer_on(_RAISE); | |
update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
} else { | |
layer_off(_RAISE); | |
update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
} | |
return false; | |
break; | |
case (RAISE && LOWER) || (LOWER && RAISE): | |
if (record->event.pressed) { | |
layer_on(_ADJUST); | |
} else { | |
layer_off(_ADJUST); | |
} | |
return false; | |
break; | |
} | |
return true; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment