]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/keebio/iris/keymaps/yanfali/keymap.c
[Keyboard] Move Keebio boards to own folder (#5109)
[qmk_firmware.git] / keyboards / keebio / iris / keymaps / yanfali / 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
21 #define KC_CAPW LGUI(LSFT(KC_3))        // Capture whole screen
22 #define KC_CPYW LGUI(LSFT(LCTL(KC_3)))  // Copy whole screen
23 #define KC_CAPP LGUI(LSFT(KC_4))        // Capture portion of screen
24 #define KC_CPYP LGUI(LSFT(LCTL(KC_4)))  // Copy portion of screen
25 #define KC_ESCC MT(MOD_LCTL, KC_ESC)    // Control (hold), Escape (tap)
26 #define KC_BACK LGUI(KC_LEFT)           // Browser Back
27 #define KC_FORW LGUI(KC_RIGHT)          // Browser Forward
28 #define KC_LOWR LOWER
29 #define KC_RASE RAISE
30 #define KC_RST RESET
31 #define KC_BL_S BL_STEP
32 #define KC_ENTS MT(MOD_LSFT, KC_ENT)
33
34 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35
36   [_QWERTY] = LAYOUT_kc(
37   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
38      GRV , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,MINS,
39   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
40      TAB , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,PLUS,
41   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
42      ESCC, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
43   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
44      LSFT, Z  , X  , C  , V  , B  ,SPC ,     LALT, N  , M  ,COMM,DOT ,SLSH,DEL ,
45   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
46                        LGUI,LOWR,SPC ,         BSPC,ENTS,RASE
47   //                  `----+----+----'        `----+----+----'
48   ),
49
50   [_LOWER] = LAYOUT_kc(
51   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
52      TILD,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
53   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
54      RST , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,    ,
55   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
56      DEL ,CAPP,LEFT,RGHT, UP ,LBRC,               RBRC, P4 , P5 , P6 ,PLUS,PIPE,
57   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
58      BL_S,CPYP,    ,    ,DOWN,LCBR,LPRN,     RPRN,RCBR, P1 , P2 , P3 ,MINS,    ,
59   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
60                            ,    ,DEL ,         DEL ,    , P0
61   //                  `----+----+----'        `----+----+----'
62   ),
63
64   [_RAISE] = LAYOUT_kc(
65   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
66      F12 , F1 , F2 , F3 , F4 , F5 ,                F6 , F7 , F8 , F9 ,F10 ,F11 ,
67   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
68          ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,    ,
69   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
70      DEL ,MPRV,BACK,FORW,PGUP,UNDS,               EQL ,HOME,    ,    ,    ,BSLS,
71   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
72      MUTE,MSTP,MPLY,VOLD,PGDN,MINS,    ,         ,PLUS,END ,    ,    ,    ,    ,
73   //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
74                            ,    ,    ,             ,    ,
75   //                  `----+----+----'        `----+----+----'
76   ),
77
78   [_ADJUST] = LAYOUT(
79   //,--------+--------+--------+--------+--------+--------.                          ,--------+--------+--------+--------+--------+--------.
80       _______, _______, _______, _______, _______, _______,                            _______, _______, _______, _______, _______, _______,
81   //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
82       RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______,                            _______, _______, _______, _______, _______, _______,
83   //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
84       RESET  , DEBUG  , RGB_HUD, RGB_SAD, RGB_VAD, _______,                            _______, _______, _______, _______, _______, _______,
85   //|--------+--------+--------+--------+--------+--------+--------.        ,--------|--------+--------+--------+--------+--------+--------|
86       _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______, _______, _______,
87   //`--------+--------+--------+----+---+--------+--------+--------/        \--------+--------+--------+---+----+--------+--------+--------'
88                                       _______, _______, _______,                  _______, _______, _______
89   //                                `--------+--------+--------'                `--------+--------+--------'
90   )
91
92 };
93
94 #ifdef AUDIO_ENABLE
95 float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
96 #endif
97
98 void persistent_default_layer_set(uint16_t default_layer) {
99   eeconfig_update_default_layer(default_layer);
100   default_layer_set(default_layer);
101 }
102
103 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
104   switch (keycode) {
105     case QWERTY:
106       if (record->event.pressed) {
107         #ifdef AUDIO_ENABLE
108           PLAY_SONG(tone_qwerty);
109         #endif
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 }