|  |  |  | #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
 | 
					
						
							|  |  |  | #define _______ KC_TRNS
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define KC_LOWR LOWER
 | 
					
						
							|  |  |  | #define KC_RASE RAISE
 | 
					
						
							|  |  |  | #define KC_RST RESET
 | 
					
						
							|  |  |  | #define KC_BL_S BL_STEP
 | 
					
						
							|  |  |  | #define KC_DBUG DEBUG
 | 
					
						
							|  |  |  | #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
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   [_QWERTY] = KC_KEYMAP( | 
					
						
							|  |  |  |   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
 | 
					
						
							|  |  |  |      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,QUOT, | 
					
						
							|  |  |  |   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
 | 
					
						
							|  |  |  |      LCTL, Z  , X  , C  , V  , B  ,HOME,     END , N  , M  ,COMM,DOT ,SLSH,RSFT, | 
					
						
							|  |  |  |   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
 | 
					
						
							|  |  |  |                        LGUI,LOWR,ENT ,         SPC ,RASE,LALT | 
					
						
							|  |  |  |   //                  `----+----+----'        `----+----+----'
 | 
					
						
							|  |  |  |   ), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   [_LOWER] = KC_KEYMAP( | 
					
						
							|  |  |  |   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
 | 
					
						
							|  |  |  |      TILD,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, | 
					
						
							|  |  |  |   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
 | 
					
						
							|  |  |  |      RST , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,    , | 
					
						
							|  |  |  |   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
 | 
					
						
							|  |  |  |      DEL ,    ,LEFT,RGHT, UP ,LBRC,               RBRC, P4 , P5 , P6 ,PLUS,PIPE, | 
					
						
							|  |  |  |   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
 | 
					
						
							|  |  |  |      BL_S,    ,    ,    ,DOWN,LCBR,LPRN,     RPRN,RCBR, P1 , P2 , P3 ,MINS,    , | 
					
						
							|  |  |  |   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
 | 
					
						
							|  |  |  |                            ,    ,DEL ,         DEL ,    , P0  | 
					
						
							|  |  |  |   //                  `----+----+----'        `----+----+----'
 | 
					
						
							|  |  |  |   ), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   [_RAISE] = KC_KEYMAP( | 
					
						
							|  |  |  |   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
 | 
					
						
							|  |  |  |      F12 , F1 , F2 , F3 , F4 , F5 ,                F6 , F7 , F8 , F9 ,F10 ,F11 , | 
					
						
							|  |  |  |   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
 | 
					
						
							|  |  |  |          ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,    , | 
					
						
							|  |  |  |   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
 | 
					
						
							|  |  |  |          ,MPRV,MNXT,VOLU,PGUP,UNDS,               EQL ,HOME,    ,    ,    ,BSLS, | 
					
						
							|  |  |  |   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
 | 
					
						
							|  |  |  |      MUTE,MSTP,MPLY,VOLD,PGDN,MINS,    ,         ,PLUS,END ,    ,    ,    ,    , | 
					
						
							|  |  |  |   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
 | 
					
						
							|  |  |  |                            ,    ,    ,             ,    ,     | 
					
						
							|  |  |  |   //                  `----+----+----'        `----+----+----'
 | 
					
						
							|  |  |  |   ), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   [_ADJUST] = KC_KEYMAP( | 
					
						
							|  |  |  |   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
 | 
					
						
							|  |  |  |          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    , | 
					
						
							|  |  |  |   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
 | 
					
						
							|  |  |  |      RTOG,RMOD,RHUI,RSAI,RVAI,    ,                   ,    ,    ,    ,    ,    , | 
					
						
							|  |  |  |   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
 | 
					
						
							|  |  |  |          ,DBUG,RHUD,RSAD,RVAD,    ,                   ,    ,    ,    ,    ,    , | 
					
						
							|  |  |  |   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
 | 
					
						
							|  |  |  |      BL_S,RST ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,    , | 
					
						
							|  |  |  |   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
 | 
					
						
							|  |  |  |                            ,    ,    ,             ,    ,     | 
					
						
							|  |  |  |   //                  `----+----+----'        `----+----+----'
 | 
					
						
							|  |  |  |   ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 ADJUST: | 
					
						
							|  |  |  |       if (record->event.pressed) { | 
					
						
							|  |  |  |         layer_on(_ADJUST); | 
					
						
							|  |  |  |       } else { | 
					
						
							|  |  |  |         layer_off(_ADJUST); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       return false; | 
					
						
							|  |  |  |       break; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   return true; | 
					
						
							|  |  |  | } |