]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/nyquist/keymaps/pitty/keymap.c
fcdbc946d718248bd4c8f694370b39b9bea89b87
[qmk_firmware.git] / keyboards / nyquist / keymaps / pitty / keymap.c
1 #include "nyquist.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 _GAME 1
9 #define _LOWER 2
10 #define _VIM 3
11
12
13 enum custom_macros {
14     DLEFT,
15     DRIGHT,
16 };
17
18
19 // Fillers to make layering more clear
20 #define _______ KC_TRNS
21 #define XXXXXXX KC_NO
22
23 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24
25 /* Qwerty
26  * ,-----------------------------------------------------------------------------------.
27  * | 0(') |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  | Ö(0) | Ü(-) |
28  * |------+------+------+------+------+------+------+------+------+------+------+------|
29  * | Tab  |   Q  |   W  |   E  |   R  |   T  |  Z(Y)|   U  |   I  |   O  |   P  | Bksp |
30  * |------+------+------+------+------+-------------+------+------+------+------+------|
31  * | Esc  |   A  |   S  |   D  |LTVIMF|   G  |   H  |   J  |   K  |   L  |  É(;)| Á(") |
32  * |------+------+------+------+------+------|------+------+------+------+------+------|
33  * |Í/Shft| Y(Z) |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |  -(/)| Shift|
34  * |------+------+------+------+------+------+------+------+------+------+------+------|
35  * | Ctrl |  GUI |  Alt |LOWER |  Spc |  Spc | Bksp | Ent  |  Alt | =(&) | GAME | Del  |
36  * `-----------------------------------------------------------------------------------'
37  */
38 [_QWERTY] = KEYMAP( \
39   KC_GRV,                KC_1,      KC_2,    KC_3,        KC_4,           KC_5,    KC_6,    KC_7,    KC_8,    KC_9,         KC_0,          KC_MINUS, \
40   KC_TAB,                KC_Q,      KC_W,    KC_E,        KC_R,           KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,         KC_P,          KC_BSPC, \
41   KC_ESC,                KC_A,      KC_S,    KC_D,        LT(_VIM, KC_F), KC_G,    KC_H,    KC_J,    KC_K,    KC_L,         KC_SCLN,       KC_QUOT, \
42   MT(MOD_LSFT, KC_NUBS), KC_Z,      KC_X,    KC_C,        KC_V,           KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,       KC_SLSH,       KC_RSFT, \
43   KC_LCTL,               KC_LGUI,   KC_LALT, TT(_LOWER),  KC_SPC,         KC_SPC, KC_BSPC,  KC_ENT,  KC_RALT, KC_AMPERSAND, TG(_GAME),     KC_DEL \
44 ),
45
46 /* Gaming mode
47  * ,-----------------------------------------------------------------------------------.
48  * |      |      |      |      |      |      |      |      |      |      |      |QWERTY|
49  * |------+------+------+------+------+------+------+------+------+------+------+------|
50  * |      |      |      |      |      |      |      |      |      |      |      |Lower |
51  * |------+------+------+------+------+------+------+------+------+------+------+------|
52  * |      |      |      |      |   F  |      |      |      |      |      |      |      |
53  * |------+------+------+------+------+------+------+------+------+------+------+------|
54  * | Shift|      |      |      |      |      |      |      |      |      |      |      |
55  * |------+------+------+------+------+------+------+------+------+------+------+------|
56  * |      |      |      |      |      |      |      |      | Left | Down |  Up  | Right|
57  * `-----------------------------------------------------------------------------------'
58  */
59 [_GAME] =  KEYMAP( \
60   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY),    \
61   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OSL(_LOWER),    \
62   _______, _______, _______, _______, KC_F,    _______, _______, _______, _______, _______, _______, _______,    \
63   KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    \
64   _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT \
65 ),
66
67 /* Lower
68  * ,-----------------------------------------------------------------------------------.
69  * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
70  * |------+------+------+------+------+-------------+------+------+------+------+------|
71  * |      |      |  Up  |      |  Del |  Ins |      |   7  |   8  |   9  |   /  |      |
72  * |------+------+------+------+------+-------------+------+------+------+------+------|
73  * |      | Left | Down | Right| Home |  End |      |   4  |   5  |   6  |   *  |      |
74  * |------+------+------+------+------+------|------+------+------+------+------+------|
75  * | Shift|      |      |      | PGUP | PGDN |      |   1  |   2  |   3  |   -  |      |
76  * |------+------+------+------+------+------+------+------+------+------+------+------|
77  * |      |      |      |      |      |      |      |   0  |   .  |   =  |   +  |      |
78  * `-----------------------------------------------------------------------------------'
79  */
80 [_LOWER] = KEYMAP( \
81   KC_F1,     KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,    KC_F8,   KC_F9,     KC_F10,       KC_F11,         KC_F12, \
82   _______,   _______, KC_UP,   _______, KC_DEL , KC_INS , _______,  KC_7,    KC_8,      KC_9,         KC_KP_SLASH,    _______, \
83   _______,   KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END , _______,  KC_4,    KC_5,      KC_6,         KC_KP_ASTERISK, _______, \
84   KC_LSFT,   _______, _______, _______, KC_PGUP, KC_PGDN, _______,  KC_1,    KC_2,      KC_3,         KC_KP_MINUS,    _______, \
85   _______,   _______, _______, _______, _______, _______, _______,  KC_GRV,  KC_KP_DOT, KC_KP_EQUAL,  KC_KP_PLUS,     _______ \
86 ),
87
88
89 /* Vim Movement (Hold down F)
90  * ,-----------------------------------------------------------------------------------.
91  * |      |      |      |      |DM_stp|      |      |      |      |      |   Ő  |  Ű   |
92  * |------+------+------+------+------+------+------+------+------+------+------+------|
93  * |      |      |      |      |DM_REC|      |      |  Ú   |   Í  |   Ó  |      |      |
94  * |------+------+------+------+------+------+------+------+------+------+------+------|
95  * |      | DLeft|DRight| LCTRL|      |      | Left | Down |  Up  | Right|      |      |
96  * |------+------+------+------+------+------+------+------+------+------+------+------|
97  * |      |      |      |      |      |      |      |      |      |      |      |      |
98  * |------+------+------+------+------+------+------+------+------+------+------+------|
99  * |      |      |      |      | LShft|      |      |      |      |      |      |      |
100  * `-----------------------------------------------------------------------------------'
101  */
102 [_VIM] =  KEYMAP( \
103   RGB_MOD, RGB_TOG,  _______,   _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_NUHS, \
104   _______, _______,  _______,   _______, _______, _______, _______, KC_RBRC, KC_NUBS, KC_EQL , _______, _______, \
105   _______, M(DLEFT), M(DRIGHT), KC_LCTL, _______, _______, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, _______, _______, \
106   _______, _______,  _______,   _______, _______, _______, _______, _______, _______, _______, _______, _______, \
107   _______, _______,  _______,   _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______ \
108 )
109
110
111 };
112
113 void persistent_default_layer_set(uint16_t default_layer) {
114   eeconfig_update_default_layer(default_layer);
115   default_layer_set(default_layer);
116 }
117
118 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
119     switch(id) {
120         case DLEFT:
121             if (record->event.pressed) { // Windows move desktop left
122                 return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END);
123             }
124             break;
125         case DRIGHT:
126             if (record->event.pressed) { // Windows move desktop right
127                 return MACRO(D(LCTL), D(LGUI), T(RIGHT), U(LGUI), U(LCTL), END);
128             }
129             break;
130     }
131     return MACRO_NONE;
132 }
133
134 #ifdef RGBLIGHT_ENABLE
135 bool rgb_layer_change = true;
136 #endif
137
138 #define rgblight_set_blue        rgblight_sethsv (0xFF,  0xFF, 0xFF);
139 #define rgblight_set_red         rgblight_sethsv (0x00,  0xFF, 0xFF);
140 #define rgblight_set_green       rgblight_sethsv (0x78,  0xFF, 0xFF);
141 #define rgblight_set_orange      rgblight_sethsv (0x1E,  0xFF, 0xFF);
142 #define rgblight_set_teal        rgblight_sethsv (0xC3,  0xFF, 0xFF);
143 #define rgblight_set_magenta     rgblight_sethsv (0x12C, 0xFF, 0xFF);
144 #define rgblight_set_yellow      rgblight_sethsv (0x3C,  0xFF, 0xFF);
145 #define rgblight_set_purple      rgblight_sethsv (0x10E, 0xFF, 0xFF);
146 #define rgblight_set_white       rgblight_sethsv (0x00,  0x00, 0xFF);
147 #define rgblight_set_black       rgblight_sethsv (0x00,  0x00, 0x00);
148
149 uint32_t layer_state_set_user(uint32_t state) {
150 #ifdef RGBLIGHT_ENABLE
151   uint8_t default_layer = eeconfig_read_default_layer();
152   if (rgb_layer_change) {
153     switch (biton32(state)) {
154     case _LOWER:
155       rgblight_set_purple;
156       rgblight_mode(5);
157       break;
158     case _VIM:
159           rgblight_set_green;
160       rgblight_mode(23);
161       break;
162         case _GAME:
163       rgblight_mode(8);
164       break;
165     default:
166       if (default_layer & (1UL << _GAME)) {
167       }
168       else 
169       rgblight_mode(14);
170       break;
171     }
172   }
173 #endif
174   return state;
175 }