]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/keebio/iris/keymaps/s1carii/keymap.c
[Keyboard] Move Keebio boards to own folder (#5109)
[qmk_firmware.git] / keyboards / keebio / iris / keymaps / s1carii / keymap.c
1 #include QMK_KEYBOARD_H
2
3 extern keymap_config_t keymap_config;
4
5 #define _QWERTY 0
6 #define _LOWER 1
7 #define _RAISE 2
8 #define _ADJUST 16
9
10 enum custom_keycodes {
11   QWERTY = SAFE_RANGE,
12   LOWER,
13   RAISE,
14   ADJUST,
15 };
16
17 #define KC_ KC_TRNS
18
19 #define KC_LOWR LOWER
20 #define KC_RASE RAISE
21 #define KC_RST RESET
22 #define KC_DBUG DEBUG
23 //#define KC_DEV DEVLAYER
24
25 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26
27   [_QWERTY] = LAYOUT_kc(
28   //,----+----+----+--+-+----+----.              ,----+----+-+--+----+----+----.
29      ESC , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,BSPC,
30   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
31      TAB , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,BSLS,
32   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
33      LOWR, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
34   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
35      LSFT, Z  , X  , C  , V  , B  ,LGUI,     RCMD, N  , M  ,COMM,DOT ,SLSH,RSFT,
36   //`----+----+----+--+-+----+----+----/    \----+----+----+-+--+----+----+----'
37                        RCTL,ENT ,SPC ,         SPC ,RASE,RALT
38   //                  `----+----+----'        `----+----+----'
39   ),
40
41   [_LOWER] = LAYOUT_kc(
42   //,----+----+----+--+-+----+----.              ,----+----+-+--+----+----+----.
43      GRV ,    ,    ,    ,    ,    ,                   ,    ,    ,MINS,EQL ,DEL ,
44   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
45          ,    ,    ,    ,    ,    ,                   ,PGDN, UP ,PGUP,LBRC,RBRC,
46   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
47          ,VOLD,VOLU,MUTE,    ,    ,               HOME,LEFT,DOWN,RGHT,    ,    ,
48   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
49      LSFT,    ,    ,    ,    ,    ,LGUI,     RCMD,END ,    ,    ,    ,PSCR,RSFT,
50   //`----+----+----+--+-+----+----+----/    \----+----+----+-+--+----+----+----'
51                        RCTL,ENT ,SPC ,         SPC ,    ,RALT
52   //                  `----+----+----'        `----+----+----'
53   ),
54
55   [_RAISE] = LAYOUT_kc(
56   //,----+----+----+--+-+----+----.              ,----+----+-+--+----+----+----.
57      F12 , F1 , F2 , F3 , F4 , F5 ,                F6 , F7 , F8 , F9 ,F10 ,F11 ,
58   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
59          ,    , UP ,    ,    ,    ,                   , P7 , P8 , P9 ,PSLS,PAST,
60   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
61          ,LEFT,DOWN,RGHT,    ,    ,                   , P4 , P5 , P6 ,PMNS,PPLS,
62   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
63          ,    ,    ,    ,    ,    ,    ,     NLCK,    , P1 , P2 , P3 ,PDOT,PENT,
64   //`----+----+----+--+-+----+----+----/    \----+----+----+-+--+----+----+----'
65                        RCTL,ENT ,SPC ,         SPC ,    , P0
66   //                  `----+----+----'        `----+----+----'
67   ),
68
69   [_ADJUST] = LAYOUT_kc(
70   //,----+----+----+--+-+----+----.              ,----+----+-+--+----+----+----.
71          ,    ,    ,    ,    ,RST ,                   ,    ,    ,    ,    ,    ,
72   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
73          ,    ,    ,    ,    ,DBUG,                   ,    ,    ,    ,    ,    ,
74   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
75          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
76   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
77          ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,    ,
78   //`----+----+----+--+-+----+----+----/    \----+----+----+-+--+----+----+----'
79                            ,    ,    ,             ,    ,
80   //                  `----+----+----'        `----+----+----'
81   )
82
83  /*
84     [_DEVLAYER] = LAYOUT_kc(
85   //,----+----+----+--+-+----+----.              ,----+----+-+--+----+----+----.
86          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
87   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
88          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
89   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
90          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
91   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
92          ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,    ,
93   //`----+----+----+--+-+----+----+----/    \----+----+----+-+--+----+----+----'
94                            ,    ,    ,             ,    ,
95   //                  `----+----+----'        `----+----+----'
96   )
97 */
98
99 };
100
101 void persistent_default_layer_set(uint16_t default_layer) {
102   eeconfig_update_default_layer(default_layer);
103   default_layer_set(default_layer);
104 }
105
106 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
107   switch (keycode) {
108     case QWERTY:
109       if (record->event.pressed) {
110         persistent_default_layer_set(1UL<<_QWERTY);
111       }
112       return false;
113       break;
114     case LOWER:
115       if (record->event.pressed) {
116         layer_on(_LOWER);
117         update_tri_layer(_LOWER, _RAISE, _ADJUST);
118       } else {
119         layer_off(_LOWER);
120         update_tri_layer(_LOWER, _RAISE, _ADJUST);
121       }
122       return false;
123       break;
124     case RAISE:
125       if (record->event.pressed) {
126         layer_on(_RAISE);
127         update_tri_layer(_LOWER, _RAISE, _ADJUST);
128       } else {
129         layer_off(_RAISE);
130         update_tri_layer(_LOWER, _RAISE, _ADJUST);
131       }
132       return false;
133       break;
134     case ADJUST:
135       if (record->event.pressed) {
136         layer_on(_ADJUST);
137       } else {
138         layer_off(_ADJUST);
139       }
140       return false;
141       break;
142   }
143   return true;
144 }