]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/planck/keymaps/oeywil/keymap.c
f718c8f6a7bf1d9faa1da62cbab4f448d1af0e15
[qmk_firmware.git] / keyboards / planck / keymaps / oeywil / keymap.c
1 #include QMK_KEYBOARD_H
2 #include "secret.h"
3
4 enum planck_layers {
5   _DEFAULT,
6   _LOWER,
7   _RAISE,
8   _FUNCTION,
9   _GAME,
10   _GAMERAISE
11 };
12
13 #define LOWER    MO(_LOWER)
14 #define RAISE    MO(_RAISE)
15 #define FUNCTION MO(_FUNCTION)
16 #define GAMER    MO(_GAMERAISE)
17
18 #define NO_OE   KC_SCLN
19 #define NO_AE   KC_QUOT
20 #define NO_AA   KC_LBRC
21 #define NO_EXCL LSFT(KC_1)
22 #define NO_QEST LSFT(KC_MINS)
23 #define NO_APOS KC_BSLS
24 #define NO_QUOT LSFT(KC_2)
25 #define NO_UMLA KC_RBRC
26 #define NO_HASH LSFT(KC_3)
27 #define NO_FSLS LSFT(KC_7)
28 #define NO_LPAR LSFT(KC_8)
29 #define NO_RPAR LSFT(KC_9)
30 #define NO_ALFA ALGR(KC_2)
31 #define NO_AMPE LSFT(KC_6)
32 #define NO_USDO ALGR(KC_4)
33 #define NO_PERC LSFT(KC_5)
34 #define NO_BSLS KC_EQL
35 #define NO_ASTE LSFT(KC_BSLS)
36 #define NO_LBRA ALGR(KC_7)
37 #define NO_RBRA ALGR(KC_0)
38 #define NO_LBRC ALGR(KC_8)
39 #define NO_RBRC ALGR(KC_9)
40 #define NO_ANBR KC_NUBS
41 #define NO_DASH KC_SLSH
42 #define NO_PLUS KC_MINS
43 #define NO_EQUA LSFT(KC_0)
44
45 #define TSKMGR LCTL(LSFT(KC_ESC))
46 #define STEAM  LSFT(KC_F7)
47 #define WKILL  LALT(KC_F4)
48 #define BWORD  LCTL(KC_LEFT)
49 #define FWORD  LCTL(KC_RIGHT)
50
51 float onsong[][2] = SONG(MARIO_MUSHROOM);
52 float offsong[][2] = SONG(PLOVER_GOODBYE_SOUND);
53
54 enum custom_keycodes {
55   PWD = SAFE_RANGE,
56   MAIL,
57   GAMEON,
58   GAMEOFF
59 };
60
61 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
62   switch (keycode) {
63     case PWD:
64       if (record->event.pressed) {
65         SEND_STRING(pwd_str);
66       }
67       break;
68     case MAIL:
69       if (record->event.pressed) {
70         SEND_STRING(mail_str);
71       }
72       break;
73     case GAMEON:
74       if (record->event.pressed) {
75         #ifdef AUDIO_ENABLE
76           PLAY_SONG(onsong);
77         #endif
78         layer_on(_GAME);
79       }
80       break;
81     case GAMEOFF:
82       if (record->event.pressed) {
83         #ifdef AUDIO_ENABLE
84           PLAY_SONG(offsong);
85         #endif
86         layer_off(_GAME);
87       }
88       break;
89   }
90   return true;
91 };
92
93 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
94   /* Default
95    * ,-----------------------------------------------------------------------------------.
96    * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | BkSp |
97    * |------+------+------+------+------+-------------+------+------+------+------+------|
98    * | Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   Ø  |   Æ  |
99    * |------+------+------+------+------+------+------+------+------+------+------+------|
100    * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   Å  | Shift|
101    * |------+------+------+------+------+------+------+------+------+------+------+------|
102    * | Ctrl | Win  | Alt  | Lower|    Space    |    Enter    | Raise| AltGr| Game | Fn   |
103    * `-----------------------------------------------------------------------------------'
104    */
105   [_DEFAULT] = LAYOUT_planck_grid(
106     KC_TAB,  KC_Q,    KC_W,    KC_E,  KC_R,  KC_T,   KC_Y,  KC_U,   KC_I,    KC_O,    KC_P,   KC_BSPC,
107     KC_GESC, KC_A,    KC_S,    KC_D,  KC_F,  KC_G,   KC_H,  KC_J,   KC_K,    KC_L,    NO_OE,  NO_AE,
108     KC_LSFT, KC_Z,    KC_X,    KC_C,  KC_V,  KC_B,   KC_N,  KC_M,   KC_COMM, KC_DOT,  NO_AA,  KC_RSFT,
109     KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_NO, KC_SPC, KC_NO, KC_ENT, RAISE,   KC_RALT, GAMEON, FUNCTION
110   ),
111   /* Lower
112    * ,-----------------------------------------------------------------------------------.
113    * | Tab  | <Word| Up   | Word>| PgUp |      |      |      |  F7  |  F8  |  F9  |  Del |
114    * |------+------+------+------+------+-------------+------+------+------+------+------|
115    * | BkSp | Left | Down | Right| PgDn |      |      |      |  F4  |  F5  |  F6  |      |
116    * |------+------+------+------+------+------|------+------+------+------+------+------|
117    * | Shift| Home |      | End  |      |      |      |      |  F1  |  F2  |  F3  | Shift|
118    * |------+------+------+------+------+------+------+------+------+------+------+------|
119    * | Ctrl | Win  | Alt  | Lower|    Space    |    Enter    |      |      |      |      |
120    * `-----------------------------------------------------------------------------------'
121    */
122   [_LOWER] = LAYOUT_planck_grid(
123     KC_TRNS, BWORD,   KC_UP,   FWORD,    KC_PGUP, KC_NO,   KC_NO, KC_NO,   KC_F7, KC_F8, KC_F9, KC_DEL,
124     KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_NO,   KC_NO, KC_NO,   KC_F4, KC_F5, KC_F6, KC_NO,
125     KC_TRNS, KC_HOME, KC_NO,   KC_END,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_F1, KC_F2, KC_F3, KC_TRNS,
126     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_NO,   KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO
127   ),
128   /* Raise
129    * ,-----------------------------------------------------------------------------------.
130    * | Tab  |   !  |   ?  |   '  |   "  |   ¨  |      |   /  |   7  |   8  |   9  | Ins  |
131    * |------+------+------+------+------+-------------+------+------+------+------+------|
132    * | BkSp |   @  |   &  |   #  |   $  |   %  |  <>  |   \  |   4  |   5  |   6  |   *  |
133    * |------+------+------+------+------+------+------+------+------+------+------+------|
134    * | Shift|   (  |   )  |   {  |   }  |   [  |   ]  |   0  |   1  |   2  |   3  | Shift|
135    * |------+------+------+------+------+------+------+------+------+------+------+------|
136    * | Ctrl | Win  | Alt  |      |    Space    |    Enter    | Raise|   -  |   +  |   =  |
137    * `-----------------------------------------------------------------------------------'
138    */
139   [_RAISE] = LAYOUT_planck_grid(
140     KC_TRNS, NO_EXCL, NO_QEST, NO_APOS, NO_QUOT, NO_UMLA, KC_NO,   NO_FSLS, KC_7,    KC_8,    KC_9,    KC_INS,
141     KC_BSPC, NO_ALFA, NO_AMPE, NO_HASH, NO_USDO, NO_PERC, NO_ANBR, NO_BSLS, KC_4,    KC_5,    KC_6,    NO_ASTE,
142     KC_TRNS, NO_LPAR, NO_RPAR, NO_LBRA, NO_RBRA, NO_LBRC, NO_RBRC, KC_0,    KC_1,    KC_2,    KC_3,    KC_TRNS,
143     KC_TRNS, KC_TRNS, KC_TRNS, KC_NO,   KC_NO,   KC_TRNS, KC_NO,   KC_TRNS, KC_TRNS, NO_DASH, NO_PLUS, NO_EQUA
144   ),
145   /* Function
146    * ,-----------------------------------------------------------------------------------.
147    * |      |      |      |      |      |TskMgr|      |      |      |      | Pwd  | Vol+ |
148    * |------+------+------+------+------+-------------+------+------+------+------+------|
149    * | Reset|      |      |      |      |      |      |      | Wkill|      |      | Vol- |
150    * |------+------+------+------+------+------+------+------+------+------+------+------|
151    * |      |      |      |      |      |      |      | Mail |      |      |      | VolM |
152    * |------+------+------+------+------+------+------+------+------+------+------+------|
153    * |      |      |      |      |  Play/Pause |     Next    |      |      |      |      |
154    * `-----------------------------------------------------------------------------------'
155    */
156   [_FUNCTION] = LAYOUT_planck_grid(
157     KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TSKMGR,  KC_NO, KC_NO,   KC_NO, KC_NO, PWD,   KC_VOLU,
158     RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,   KC_NO, KC_NO,   WKILL, KC_NO, KC_NO, KC_VOLD,
159     KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,   KC_NO, MAIL,    KC_NO, KC_NO, KC_NO, KC_MUTE,
160     KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_NO, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO
161   ),
162   /* Game
163    * ,-----------------------------------------------------------------------------------.
164    * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | BkSp |
165    * |------+------+------+------+------+-------------+------+------+------+------+------|
166    * | Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |      |      |
167    * |------+------+------+------+------+------+------+------+------+------+------+------|
168    * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |      |      |      |      |
169    * |------+------+------+------+------+------+------+------+------+------+------+------|
170    * | Ctrl |      | Alt  | Raise|    Space    |    Enter    |      |      |      |      |
171    * `-----------------------------------------------------------------------------------'
172    */
173   [_GAME] = LAYOUT_planck_grid(
174     KC_TAB,  KC_Q,  KC_W,    KC_E,  KC_R,  KC_T,   KC_Y,  KC_U,   KC_I,  KC_O,  KC_P,  KC_BSPC,
175     KC_ESC,  KC_A,  KC_S,    KC_D,  KC_F,  KC_G,   KC_H,  KC_J,   KC_K,  KC_L,  KC_NO, KC_NO,
176     KC_LSFT, KC_Z,  KC_X,    KC_C,  KC_V,  KC_B,   KC_N,  KC_M,   KC_NO, KC_NO, KC_NO, KC_NO,
177     KC_LCTL, KC_NO, KC_LALT, GAMER, KC_NO, KC_SPC, KC_NO, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO
178   ),
179   /* Game raise
180    * ,-----------------------------------------------------------------------------------.
181    * |  Tab |  1   |  2   |  3   |   4  |   5  |      |      |      |      |      | Vol+ |
182    * |------+------+------+------+------+-------------+------+------+------+------+------|
183    * |  Esc |  F1  |  F2  |  F3  |  F4  |  F5  |      |      |      |      |      | Vol- |
184    * |------+------+------+------+------+------+------+------+------+------+------+------|
185    * | Shift|      |      |      |      |      |      |      |      |      |      | VolM |
186    * |------+------+------+------+------+------+------+------+------+------+------+------|
187    * | Ctrl |      |  Alt |      |    Space    |    Enter    |      |      | Def  | Steam|
188    * `-----------------------------------------------------------------------------------'
189    */
190   [_GAMERAISE] = LAYOUT_planck_grid(
191     KC_TRNS, KC_1,  KC_2,    KC_3,    KC_4,  KC_5,    KC_NO, KC_NO,   KC_NO, KC_NO, KC_NO,   KC_VOLU,
192     KC_TRNS, KC_F1, KC_F2,   KC_F3,   KC_F4, KC_F5,   KC_NO, KC_NO,   KC_NO, KC_NO, KC_NO,   KC_VOLD,
193     KC_TRNS, KC_NO, KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO, KC_NO,   KC_NO, KC_NO, KC_NO,   KC_MUTE,
194     KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_NO, GAMEOFF, STEAM
195   )
196 };