]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/nyquist/keymaps/bramver/keymap.c
f1562546791a3b9feefeaa1985a669ebc52c4916
[qmk_firmware.git] / keyboards / nyquist / keymaps / bramver / keymap.c
1 /* Copyright 2018 darm
2  *
3  * This program is free software: you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation, either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16 #include QMK_KEYBOARD_H
17
18 // Fillers to make layering more clear
19 #define _______ KC_TRNS
20 #define XXXXXXX KC_NO
21
22 // Each layer gets a name for readability, which is then used in the keymap matrix below.
23 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
24 // Layer names don't all need to be of the same length, obviously, and you can also skip them
25 // entirely and just use numbers.
26 #define _BASE 0
27 #define _LOWER 1
28 #define _RAISE 2
29 #define _LMOUSE 3
30 #define _RMOUSE 4
31 #define _EMOJI 5
32
33 enum emoji_map {
34   UNAM, // unamused 😒
35   HEYE, // smiling face with heart shaped eyes 😍
36   OK, // ok hand sign 👌
37   SMIR, // smirk 😏
38   PRAY, // pray 🙏
39   CELE, // celebration 🙌
40   COOL, // smile with sunglasses 😎
41   EYES, // eyes
42   THNK, // BIG THONK
43   NAIL, // Nailcare
44   SOS, // Vuile sos
45   REDB, // Red B
46   HNDR, // 100
47   MONY,
48   FIRE,
49   CAR,
50   BUTT,
51   BNIS,
52   CUM,
53   CLAP,
54   TRIU, // Fart from nose
55   SCRM,
56   VOMI,
57   DTIV, // Detective
58   EXPL, // Brainsplosion
59   HAIR, // Haircut
60   DANC, // Salsa dancer
61   STRN, // Stronk
62   LEFT, // Point Left
63   RGHT, // Point Right
64 };
65
66 const uint32_t PROGMEM unicode_map[] = {
67   [UNAM] = 0x1F612,
68   [HEYE] = 0x1f60d,
69   [OK]   = 0x1F44C,
70   [SMIR] = 0x1F60F,
71   [PRAY] = 0x1F64F,
72   [CELE] = 0x1F64C,
73   [COOL] = 0x1F60E,
74   [EYES] = 0x1F440,
75   [THNK] = 0x1F914,
76   [NAIL] = 0x1F485,
77   [SOS] = 0x1F198,
78   [REDB] = 0x1F171,
79   [HNDR] = 0x1F4AF,
80   [MONY] = 0x1F480,
81   [FIRE] = 0x1F525,
82   [CAR] = 0x1F697,
83   [BUTT] = 0x1F351,
84   [BNIS] = 0x1F346,
85   [CUM] = 0x1F4A6,
86   [CLAP] = 0x1F44F,
87   [TRIU] = 0x1F624,
88   [SCRM] = 0x1F631,
89   [VOMI] = 0x1F92E,
90   [DTIV] = 0x1F575,
91   [EXPL] = 0x1F92F,
92   [HAIR] = 0x2640,
93   [DANC] = 0x1F483,
94   [STRN] = 0x1F4AA,
95   [LEFT] = 0x1F448,
96   [RGHT] = 0x1F449,
97 };
98
99 enum custom_keycodes {
100   CTRL_Z = SAFE_RANGE,
101   CTRL_X,
102   CTRL_C,
103   CTRL_V
104 };
105
106 #define SP_LMS LT(_LMOUSE, KC_SPC)
107 #define SP_RMS LT(_RMOUSE, KC_SPC)
108 #define LOW TT(_LOWER)
109 #define RAI TT(_RAISE)
110 #define EMO TT(_EMOJI)
111
112 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
113
114   /* Base
115    * ,-----------------------------------------. ,-----------------------------------------.
116    * | GEsc |   1  |   2  |   3  |   4  |   5  | |   6  |   7  |   8  |   9  |   0  | Bksp |
117    * |------+------+------+------+------+------| |------+------+------+------+------+------|
118    * | Tab  |   Q  |   W  |   E  |   R  |   T  | |   Y  |   U  |   I  |   O  |   P  | Entr |
119    * |------+------+------+------+------+------| |------+------+------+------+------+------|
120    * | LOW  |   A  |   S  |   D  |   F  |   G  | |   H  |   J  |   K  |   L  |   ;  |  "   |
121    * |------+------+------+------+------+------| |------+------+------+------+------+------|
122    * | Shft |   Z  |   X  |   C  |   V  |   B  | |   N  |   M  |   ,  |   .  |   /  | Shft |
123    * |------+------+------+------+------+------| |------+------+------+------+------+------|
124    * | Ctrl | EMO  | Alt  | GUI  | SPCE |SP_LMS| |SP_RMS|SP_RMS| GUI  | Alt  | RAI  | Ctrl |
125    * `-----------------------------------------' `-----------------------------------------'
126    */
127   [_BASE] = LAYOUT( \
128     KC_GESC ,   KC_1  ,   KC_2    ,   KC_3    ,   KC_4    ,   KC_5    , /**/    KC_6    ,   KC_7    ,   KC_8    ,   KC_9    , KC_0    ,   KC_BSPC , \
129     KC_TAB  ,   KC_Q  ,   KC_W    ,   KC_E    ,   KC_R    ,   KC_T    , /**/    KC_Y    ,   KC_U    ,   KC_I    ,   KC_O    , KC_P    ,   KC_ENT  , \
130     LOW     ,   KC_A  ,   KC_S    ,   KC_D    ,   KC_F    ,   KC_G    , /**/    KC_H    ,   KC_J    ,   KC_K    ,   KC_L    , KC_SCLN ,   KC_QUOT , \
131     KC_LSFT ,   KC_Z  ,   KC_X    ,   KC_C    ,   KC_V    ,   KC_B    , /**/    KC_N    ,   KC_M    ,   KC_COMM ,   KC_DOT  , KC_SLSH ,   KC_RSFT , \
132     KC_LCTL ,   EMO   ,   KC_LALT ,   KC_LGUI ,   KC_SPC  ,   SP_LMS  , /**/    SP_RMS  ,   KC_SPC  ,   KC_RGUI ,   KC_RALT , RAI     ,   KC_RCTL  \
133   ),
134
135
136   /* Lower
137    * ,-----------------------------------------. ,-----------------------------------------.
138    * | GESC |   !  |   @  |   #  |   $  |   %  | |   ^  |   &  |   *  |   (  |   )  | Bksp |
139    * |------+------+------+------+------+------| |------+------+------+------+------+------|
140    * | Tab  |   !  |   @  |   #  |   $  |   %  | |   ^  |   &  |   *  |   (  |   )  | Entr |
141    * |------+------+------+------+------+------| |------+------+------+------+------+------|
142    * |      |  \   |  -   |  =   |  [   |  ]   | |  [   |  ]   |  -   |  =   |  \   | Del  |
143    * |------+------+------+------+------+------| |------+------+------+------+------+------|
144    * | Shft |  ^Z  |  ^X  |  ^C  |  ^V  |      | | Play | Vol+ | Vol- | Mute | Next | Shft |
145    * |------+------+------+------+------+------| |------+------+------+------+------+------|
146    * | Ctrl |      | Alt  | GUI  |      |      | |      |      | GUI  | Alt  |      | Ctrl |
147    * `-----------------------------------------' `-----------------------------------------'
148    */
149   [_LOWER] = LAYOUT( \
150     TO(0)   ,   KC_EXLM ,   KC_AT   ,   KC_HASH ,   KC_DLR  ,   KC_PERC , /**/    KC_CIRC ,   KC_AMPR ,   KC_ASTR ,   KC_LPRN , KC_RPRN ,   _______ , \
151     _______ ,   KC_EXLM ,   KC_AT   ,   KC_HASH ,   KC_DLR  ,   KC_PERC , /**/    KC_CIRC ,   KC_AMPR ,   KC_ASTR ,   KC_LPRN , KC_RPRN ,   _______ , \
152     _______ ,   KC_RCBR ,   KC_MINS ,   KC_EQL  ,   KC_LBRC ,   KC_RBRC , /**/    KC_LBRC ,   KC_RBRC ,   KC_MINS ,   KC_EQL  , KC_BSLS ,   KC_DEL  , \
153     _______ ,   CTRL_Z  ,   CTRL_X  ,   CTRL_C  ,   CTRL_V  ,   XXXXXXX , /**/    KC_MPLY ,   KC_VOLU ,   KC_VOLD ,   KC_MUTE , KC_MNXT ,   _______ , \
154     _______ ,   XXXXXXX ,   _______ ,   _______ ,   _______ ,   XXXXXXX , /**/    XXXXXXX ,   _______ ,   _______ ,   _______ , XXXXXXX ,   _______  \
155   ),
156
157   /* Raise
158    * ,-----------------------------------------. .-----------------------------------------.
159    * | GESC |      |      |      |      |      | |      |   =  |   /  |   *  |   -  | Bksp  |
160    * |------+------+------+------+------+------| |------+------+------+------+------+------|
161    * | Tab  |  F9  |  F10 | F11  | F12  |      | |      |   7  |   8  |   9  |   +  | Entr |
162    * |------+------+------+------+------+------| |------+------+------+------+------+------|
163    * |      |  F5  |  F6  |  F7  |  F8  |      | |      |   4  |   5  |   6  |  ,   | Del  |
164    * |------+------+------+------+------+------| |------+------+------+------+------+------|
165    * | Shft |  F1  |  F2  |  F3  |  F4  |      | |      |   1  |   2  |   3  |  .   | Shft |
166    * |------+------+------+------+------+------| |------+------+------+------+------+------|
167    * | Ctrl |      | Alt  | GUI  |      |      | |      |  0   | GUI  | Alt  |      | Ctrl |
168    * `-----------------------------------------' `-----------------------------------------'
169    */
170
171   [_RAISE] = LAYOUT( \
172     TO(0)   ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , /**/  XXXXXXX ,   KC_EQL  ,   KC_SLSH ,   KC_ASTR ,   KC_MINS , _______ , \
173     _______ ,   KC_F9   ,   KC_F10  ,   KC_F11  ,   KC_F12  ,   XXXXXXX , /**/  XXXXXXX ,   KC_7    ,   KC_8    ,   KC_9    ,   KC_PLUS , _______ , \
174     XXXXXXX ,   KC_F5   ,   KC_F6   ,   KC_F7   ,   KC_F8   ,   XXXXXXX , /**/  XXXXXXX ,   KC_4    ,   KC_5    ,   KC_6    ,   KC_COMM , KC_DEL  , \
175     _______ ,   KC_F1   ,   KC_F2   ,   KC_F3   ,   KC_F4   ,   XXXXXXX , /**/  XXXXXXX ,   KC_1    ,   KC_2    ,   KC_3    ,   KC_DOT  , _______ , \
176     _______ ,   XXXXXXX ,   _______ ,   _______ ,   _______ ,   XXXXXXX , /**/  XXXXXXX ,   KC_0    ,   _______ ,   _______ ,   _______ , _______  \
177   ),
178
179   /* LMOUSE (Lower + Raise)
180    * ,-----------------------------------------. ,-----------------------------------------.
181    * | GESC |      | Home | End  | PGUP | PGDN | |      |      |      |      |      | Bksp |
182    * |------+------+------+------+------+------| |------+------+------+------+------+------|
183    * | Tab  | WH_L | BTN1 | MS_U | BTN2 | WH_U | |      |      |      |      |      | Entr |
184    * |------+------+------+------+------+------| |------+------+------+------+------+------|
185    * |      | WH_R | MS_L | MS_D | MS_R | WH_D | |      |      |      |      |      | Del  |
186    * |------+------+------+------+------+------| |------+------+------+------+------+------|
187    * | Shft | LEFT | DOWN |  UP  |RIGHT |      | |      |      |      |      |      | Shft |
188    * |------+------+------+------+------+------| |------+------+------+------+------+------|
189    * | Ctrl |      | Alt  | GUI  |      |      | |      |      | GUI  | Alt  |      | Ctrl |
190    * `-----------------------------------------' `-----------------------------------------'
191    */
192
193   [_LMOUSE] = LAYOUT( \
194     TO(0)   ,   XXXXXXX ,   KC_HOME ,   KC_END  ,   KC_PGUP ,   KC_PGDN , /**/  XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , _______ , \
195     _______ ,   KC_WH_L ,   KC_BTN1 ,   KC_MS_U ,   KC_BTN2 ,   KC_WH_U , /**/  XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , _______ , \
196     XXXXXXX ,   KC_WH_R ,   KC_MS_L ,   KC_MS_D ,   KC_MS_R ,   KC_WH_D , /**/  XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , KC_DEL  , \
197     _______ ,   KC_LEFT ,   KC_DOWN ,   KC_UP   ,   KC_RGHT ,   XXXXXXX , /**/  XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , _______ , \
198     _______ ,   XXXXXXX ,   _______ ,   _______ ,   _______ ,   _______ , /**/  XXXXXXX ,   _______ ,   _______ ,   _______ ,   XXXXXXX , _______  \
199   ),
200
201   /* RMOUSE (Lower + Raise)
202    * ,-----------------------------------------. ,-----------------------------------------.
203    * | GESC |      |      |      |      |      | | PGUP | PGDN | Home | End  |      | Bksp |
204    * |------+------+------+------+------+------| |------+------+------+------+------+------|
205    * | Tab  |      |      |      |      |      | | WH_U | BTN1 | MS_U | BTN2 | WH_L | Entr |
206    * |------+------+------+------+------+------| |------+------+------+------+------+------|
207    * |      |      |      |      |      |      | | WH_D | MS_L | MS_D | MS_R | WH_R | Del  |
208    * |------+------+------+------+------+------| |------+------+------+------+------+------|
209    * | Shft |      |      |      |      |      | |      | LEFT | DOWN |  UP  |RIGHT | Shft |
210    * |------+------+------+------+------+------| |------+------+------+------+------+------|
211    * | Ctrl |      | Alt  | GUI  |      |      | |      |      | GUI  | Alt  |      | Ctrl |
212    * `-----------------------------------------' `-----------------------------------------'
213    */
214
215   [_RMOUSE] = LAYOUT( \
216     TO(0)   , XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , /**/  KC_PGUP ,   KC_PGDN ,   KC_HOME ,   KC_END  ,   XXXXXXX ,   _______ , \
217     _______ , XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , /**/  KC_WH_U ,   KC_BTN1 ,   KC_MS_U ,   KC_BTN2 ,   KC_WH_L ,   _______ , \
218     XXXXXXX , XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , /**/  KC_WH_D ,   KC_MS_L ,   KC_MS_D ,   KC_MS_R ,   KC_WH_R ,   KC_DEL  , \
219     _______ , XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX ,   XXXXXXX , /**/  XXXXXXX ,   KC_LEFT ,   KC_DOWN ,   KC_UP   ,   KC_RGHT ,   _______ , \
220     _______ , XXXXXXX ,   _______ ,   _______ ,   _______ ,   XXXXXXX , /**/  _______ ,   _______ ,   _______ ,   _______ ,   XXXXXXX ,   _______  \
221   ),
222
223   /* Emojis
224    * ,-----------------------------------------. ,-----------------------------------------.
225    * | GESC |      |      |      |      |      | | RSET |      |      |      |      | Bksp |
226    * |------+------+------+------+------+------| |------+------+------+------+------+------|
227    * | Tab  | CLAP | CUM  | BNIS | BUTT | CAR  | | FIRE | REDB | MONY | 100  | SOS | Entr |
228    * |------+------+------+------+------+------| |------+------+------+------+------+------|
229    * |      | CELE | PRAY | NAIL |  OK  | THNK | | UNAM | HEYE | COOL | EYES | SMIR | Del  |
230    * |------+------+------+------+------+------| |------+------+------+------+------+------|
231    * | Shft | TRIU | SCRM | VOMI | DTIV | EXPL | | HAIR | DANC | STRN | LEFT | RGHT | Shft |
232    * |------+------+------+------+------+------| |------+------+------+------+------+------|
233    * | Ctrl |      | Alt  | GUI  |      |      | |      |      | GUI  | Alt  |      | Ctrl |
234    * `-----------------------------------------' `-----------------------------------------'
235    */
236
237   [_EMOJI] = LAYOUT( \
238     TO(0)   , XXXXXXX     ,   XXXXXXX     ,   XXXXXXX     ,   XXXXXXX     ,   XXXXXXX     , /**/  RESET       ,   XXXXXXX     ,   XXXXXXX     ,   XXXXXXX     ,   XXXXXXX     ,   _______   , \
239     _______ , X(CLAP)     ,   X(CUM)      ,   X(BNIS)     ,   X(BUTT)     ,   X(CAR)      , /**/  X(FIRE)     ,   X(REDB)     ,   X(MONY)     ,   X(HNDR)     ,   X(SOS)      ,   _______   , \
240     XXXXXXX , X(CELE)     ,   X(PRAY)     ,   X(NAIL)     ,   X(OK)       ,   X(THNK)     , /**/  X(UNAM)     ,   X(HEYE)     ,   X(COOL)     ,   X(EYES)     ,   X(SMIR)     ,   KC_DEL    , \
241     _______ , X(TRIU)     ,   X(SCRM)     ,   X(VOMI)     ,   X(DTIV)     ,   X(EXPL)     , /**/  X(HAIR)     ,   X(DANC)     ,   X(STRN)     ,   X(LEFT)     ,   X(RGHT)     ,   _______   , \
242     _______ , _______     ,   _______     ,   _______     ,   _______     ,   XXXXXXX     , /**/  XXXXXXX     ,   _______     ,   _______     ,   _______     ,   XXXXXXX     ,   _______     \
243   ),
244
245 };
246
247 void matrix_init_user(void) {
248   set_unicode_input_mode(UC_LNX);
249 };
250
251
252 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
253
254   if (record->event.pressed) {
255     switch(keycode) {
256       case CTRL_Z:
257         SEND_STRING(SS_LCTRL("z"));
258         return false;
259       case CTRL_X:
260         SEND_STRING(SS_LCTRL("x"));
261         return false;
262       case CTRL_C:
263         SEND_STRING(SS_LCTRL("c"));
264         return false;
265       case CTRL_V:
266         SEND_STRING(SS_LCTRL("v"));
267         return false;
268     }
269   }
270
271   return true;
272 }