]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/iris/keymaps/default/keymap.c
4d9577c5dcf3e04228aaa2b8a41e472892a89e19
[qmk_firmware.git] / keyboards / iris / keymaps / default / keymap.c
1 #include "iris.h"
2 #include "action_layer.h"
3 #include "eeconfig.h"
4
5 extern keymap_config_t keymap_config;
6
7 #define _QWERTY 0
8 #define _LOWER 1
9 #define _RAISE 2
10 #define _ADJUST 16
11
12 enum custom_keycodes {
13   QWERTY = SAFE_RANGE,
14   LOWER,
15   RAISE,
16   ADJUST,
17 };
18
19 #define KC_ KC_TRNS
20 #define _______ KC_TRNS
21
22 #define KC_LOWR LOWER
23 #define KC_RASE RAISE
24 #define KC_RST RESET
25 #define KC_BL_S BL_STEP
26
27 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28
29   [_QWERTY] = KC_KEYMAP(
30   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
31      ESC , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,BSPC,
32   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
33      TAB , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,DEL ,
34   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
35      RASE, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
36   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
37      LSFT, Z  , X  , C  , V  , B  ,SPC ,     ENT , N  , M  ,COMM,DOT ,SLSH,RGHT,
38   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
39                        LCTL,LOWR,SPC ,         ENT ,LGUI,LALT
40   //                  `----+----+----'        `----+----+----'
41   ),
42
43   [_LOWER] = KC_KEYMAP(
44   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
45      TILD,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
46   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
47      RST , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,    ,
48   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
49      DEL ,    ,LEFT,RGHT, UP ,LBRC,               RBRC, P4 , P5 , P6 ,PLUS,PIPE,
50   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
51      BL_S,    ,    ,    ,DOWN,LCBR,LPRN,     RPRN,RCBR, P1 , P2 , P3 ,MINS,    ,
52   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
53                            ,    ,DEL ,         DEL ,    , P0 
54   //                  `----+----+----'        `----+----+----'
55   ),
56
57   [_RAISE] = KC_KEYMAP(
58   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
59      F12 , F1 , F2 , F3 , F4 , F5 ,                F6 , F7 , F8 , F9 ,F10 ,F11 ,
60   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
61          ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,    ,
62   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
63          ,MPRV,MNXT,VOLU,PGUP,UNDS,               EQL ,HOME,    ,    ,    ,BSLS,
64   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
65      MUTE,MSTP,MPLY,VOLD,PGDN,MINS,    ,         ,PLUS,END ,    ,    ,    ,    ,
66   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
67                            ,    ,    ,             ,    ,    
68   //                  `----+----+----'        `----+----+----'
69   ),
70
71   [_ADJUST] = KEYMAP(
72   //,--------+--------+--------+--------+--------+--------.                          ,--------+--------+--------+--------+--------+--------.
73       _______, _______, _______, _______, _______, _______,                            _______, _______, _______, _______, _______, _______,
74   //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
75       RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______,                            _______, _______, _______, _______, _______, _______,
76   //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
77       _______, DEBUG  , RGB_HUD, RGB_SAD, RGB_VAD, _______,                            _______, _______, _______, _______, _______, _______,
78   //|--------+--------+--------+--------+--------+--------+--------.        ,--------|--------+--------+--------+--------+--------+--------|
79       BL_STEP, RESET  , _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______, _______, _______,
80   //`--------+--------+--------+----+---+--------+--------+--------/        \--------+--------+--------+---+----+--------+--------+--------'
81                                       _______, _______, _______,                  _______, _______, _______
82   //                                `--------+--------+--------'                `--------+--------+--------'
83   )
84
85 };
86
87 #ifdef AUDIO_ENABLE
88 float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
89 #endif
90
91 void persistent_default_layer_set(uint16_t default_layer) {
92   eeconfig_update_default_layer(default_layer);
93   default_layer_set(default_layer);
94 }
95
96 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
97   switch (keycode) {
98     case QWERTY:
99       if (record->event.pressed) {
100         #ifdef AUDIO_ENABLE
101           PLAY_SONG(tone_qwerty);
102         #endif
103         persistent_default_layer_set(1UL<<_QWERTY);
104       }
105       return false;
106       break;
107     case LOWER:
108       if (record->event.pressed) {
109         layer_on(_LOWER);
110         update_tri_layer(_LOWER, _RAISE, _ADJUST);
111       } else {
112         layer_off(_LOWER);
113         update_tri_layer(_LOWER, _RAISE, _ADJUST);
114       }
115       return false;
116       break;
117     case RAISE:
118       if (record->event.pressed) {
119         layer_on(_RAISE);
120         update_tri_layer(_LOWER, _RAISE, _ADJUST);
121       } else {
122         layer_off(_RAISE);
123         update_tri_layer(_LOWER, _RAISE, _ADJUST);
124       }
125       return false;
126       break;
127     case ADJUST:
128       if (record->event.pressed) {
129         layer_on(_ADJUST);
130       } else {
131         layer_off(_ADJUST);
132       }
133       return false;
134       break;
135   }
136   return true;
137 }