]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/iris/keymaps/olligranlund_nordic/keymap.c
[Keymap] Plain60 rgb (#5104)
[qmk_firmware.git] / keyboards / iris / keymaps / olligranlund_nordic / keymap.c
1 #include QMK_KEYBOARD_H
2 #include "keymap_swedish.h"
3
4 extern keymap_config_t keymap_config;
5
6 #define _QWERTY 0
7 #define _LOWER 1
8 #define _RAISE 2
9 #define _ADJUST 16
10
11 enum custom_keycodes {
12         QWERTY = SAFE_RANGE,
13         LOWER,
14         RAISE,
15         ADJUST
16 };
17
18 #define KC_ KC_TRNS
19
20 #define KC_LOWER LOWER
21 #define KC_RAISE RAISE
22 #define KC_ADJ ADJUST
23 #define KC_RST RESET
24
25 #define KC_AA NO_AA
26 #define KC_AE NO_AE
27 #define KC_OE NO_OSLH
28
29 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30
31         [_QWERTY] = LAYOUT(
32         //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
33                 KC_ESC,  KC_1,    KC_2,          KC_3,   KC_4,    KC_5,                                           KC_6,    KC_7,    KC_8,        KC_9,     KC_0,  KC_MINS,
34         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
35 LT(_LOWER, KC_TAB),KC_Q,  KC_W,         KC_E,    KC_R,    KC_T,                                           KC_Y,    KC_U,        KC_I,    KC_O,    KC_P,   KC_AA,
36         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
37                 KC_LSFT,  KC_A,         KC_S,    KC_D,   KC_F,    KC_G,                                                   KC_H,         KC_J,   KC_K,     KC_L,  KC_OE,   KC_AE,
38         //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
39                 KC_LCTL,   KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,   RAISE,           KC_BSPC,  KC_N,    KC_M,   KC_COMM, KC_DOT,  KC_SLSH, KC_MINS,
40         //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
41                                                            KC_LGUI, KC_LALT, KC_SPC,                             KC_ENT,  ADJUST, KC_RALT
42                                                                   // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
43         ),
44
45         [_LOWER] = LAYOUT(
46         //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
47            NO_TILD,  KC_EXLM, NO_AT,   KC_HASH, NO_DLR, KC_PERC,                                NO_CIRC,  NO_AMPR, NO_ASTR, NO_SLSH, NO_LPRN, NO_RPRN,
48         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
49            KC_TRNS,  KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,                               KC_TRNS,  KC_PGUP, KC_UP, KC_PGDOWN, NO_LCBR, NO_RCBR,
50         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
51           KC_TRNS,  KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, NO_BSLS,                                KC_TRNS, KC_LEFT,  KC_DOWN, KC_RGHT, NO_LBRC,  NO_RBRC,
52         //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
53            KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         KC_DEL, KC_TRNS, KC_GRAVE, KC_CIRC, KC_QUOTE, NO_LESS, NO_GRTR,
54         //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
55                                            KC_TRNS, KC_TRNS, KC_TRNS,                       KC_TRNS, KC_TRNS, KC_TRNS
56                                                                   // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
57         ),
58
59         [_RAISE] = LAYOUT(
60         //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
61                 KC_F12,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,                                      KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,
62         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
63                 NO_GRV, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                                    KC_TRNS,  KC_7,    KC_8,    KC_9,  NO_MINS, NO_ASTR,
64         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
65                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                                   KC_TRNS,  KC_4,    KC_5,    KC_6,  NO_PLUS, NO_SLSH,
66         //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
67                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,  KC_1,   KC_2,     KC_3,   KC_0,   KC_TRNS,
68         //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
69                                            KC_TRNS, KC_TRNS, KC_TRNS,                           KC_TRNS, KC_TRNS, KC_TRNS
70                                                                   // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
71         ),
72
73         [_ADJUST] = LAYOUT(
74         //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
75            BL_TOGG, BL_STEP, BL_BRTG, RGB_TOG, RGB_RMOD, RGB_MOD,                            _______, _______, _______, _______, _______, _______,
76         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
77            BL_DEC, _______,   BL_INC, RGB_VAD, RGB_SAI, RGB_VAI,                            _______, _______, _______, _______, _______, _______,
78         //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
79            _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI,                            _______, _______, _______, _______, _______, _______,
80         //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
81            _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______, _______, _______,
82         //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
83                                                                           _______, _______, _______,                   _______, _______, _______
84                                                                   // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
85         )
86 };
87
88 void persistent_default_layer_set(uint16_t default_layer) {
89         eeconfig_update_default_layer(default_layer);
90         default_layer_set(default_layer);
91 }
92
93 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
94         switch (keycode) {
95         case QWERTY:
96                 if (record->event.pressed) {
97                         set_single_persistent_default_layer(_QWERTY);
98                 }
99                 return false;
100                 break;
101         case LOWER:
102                 if (record->event.pressed) {
103                         layer_on(_LOWER);
104                         update_tri_layer(_LOWER, _RAISE, _ADJUST);
105                 } else {
106                         layer_off(_LOWER);
107                         update_tri_layer(_LOWER, _RAISE, _ADJUST);
108                 }
109                 return false;
110                 break;
111         case RAISE:
112                 if (record->event.pressed) {
113                         layer_on(_RAISE);
114                         update_tri_layer(_LOWER, _RAISE, _ADJUST);
115                 } else {
116                         layer_off(_RAISE);
117                         update_tri_layer(_LOWER, _RAISE, _ADJUST);
118                 }
119                 return false;
120                 break;
121         case ADJUST:
122                 if (record->event.pressed) {
123                         layer_on(_ADJUST);
124                 } else {
125                         layer_off(_ADJUST);
126                 }
127                 return false;
128                 break;
129         }
130         return true;
131 }