]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/primekb/prime_o/keymaps/reasonsandreasons/keymap.c
Added my Prime_O Layout (#4811)
[qmk_firmware.git] / keyboards / primekb / prime_o / keymaps / reasonsandreasons / keymap.c
1 /* Copyright 2018 Jumail Mundekkat
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
17 #include QMK_KEYBOARD_H
18
19 #define L1BS LT(2, KC_BSPC)
20 #define LSUP LSFT_T(KC_UP)
21 #define CTLL LCTL_T(KC_LEFT)
22 #define ECTL LCTL_T(KC_ESC)
23 #define ALLM ALL_T(KC_MINS)
24 #define SCLS LT(3, KC_SCLN)
25
26 // Establishes tap dance keys
27 enum {
28   TD_SPC_ENT = 0
29 };
30
31 qk_tap_dance_action_t tap_dance_actions[] = {
32   [TD_SPC_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)
33
34 };
35
36 // Defines the keycodes used by our macros in process_record_user
37 enum custom_keycodes {
38   QMKBEST = SAFE_RANGE,
39   QMKURL
40 };
41
42 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43
44 /* BASE
45  * ,---------------------------------------------------------------------------------------------------------------,
46  * |  `   |  1   |  2   |  3   |  4   |  5   |  6   |  7   |  8   |  9   |  0   | Del  | NMLK |  /   |  *   |  -   |
47  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
48  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
49  * | Tab  |  Q   |  W   |  E   |  R   |  T   |  Y   |  U   |  I   |  O   |  P   |  \   |  7   |  8   |  9   |  +   |
50  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
51  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
52  * | Esc  |  A   |  S   |  D   |  F   |  G   |  H   |  J   |  K   |  L   |  ;   |  '   |  4   |  5   |  6   |  =   |
53  * | Ctrl |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
54  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
55  * |      |  Z   |  X   |  C   |  V   |  B   |  N   |  M   |  ,   |  .   |  /   |  Up  |  1   |  2   |  3   |      |
56  * | Shift|      |      |      |      |      |      |      |      |      |      | Shift|      |      |      |      |
57  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+ Enter|
58  * |  -   |      |      |      |  Backspace  |    Space    |      |      | Left | Down | Right|  0   |  .   |      |
59  * | ALL  | Ctrl | Alt  | GUI  |     Fn1     |             | GUI  | Alt  | Ctrl |      |      |      |      |      |
60  * `---------------------------------------------------------------------------------------------------------------'
61  */
62
63   [0] = LAYOUT(
64     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,  KC_5,  KC_6,    KC_7,    KC_8,     KC_9,     KC_0,     KC_DEL,   KC_NLCK,   KC_PSLS,  KC_PAST,  KC_PMNS,
65     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,  KC_T,  KC_Y,    KC_U,    KC_I,     KC_O,     KC_P,     KC_BSLS,  KC_7,      KC_8,     KC_9,     KC_PPLS,
66     ECTL,     KC_A,     KC_S,     KC_D,     KC_F,  KC_G,  KC_H,    KC_J,    KC_K,     KC_L,     SCLS,     KC_QUOT,  KC_4,      KC_5,     KC_6,     KC_PEQL,
67     KC_LSFT,  KC_Z,     KC_X,     KC_C,     KC_V,  KC_B,  KC_N,    KC_M,    KC_COMM,  KC_DOT,   KC_SLSH,  LSUP,     KC_1,      KC_2,     KC_3,     KC_ENT,
68     ALLM,     KC_LCTL,  KC_LALT,  KC_LGUI,  L1BS,  L1BS,  KC_SPC,  KC_SPC,  KC_RGUI,  KC_RALT,  CTLL,     KC_DOWN,  KC_RIGHT,  KC_0,     KC_PDOT,  KC_ENT
69   ),
70
71 /* GAME
72  * ,---------------------------------------------------------------------------------------------------------------,
73  * | Esc  |  1   |  2   |  3   |  4   |  5   |  6   |  7   |  8   |  9   |  0   | Del  | NMLK |  /   |  *   |  -   |
74  * |  `   |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
75  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
76  * | Tab  |  Q   |  W   |  E   |  R   |  T   |  Y   |  U   |  I   |  O   |  P   | '    |  7   |  8   |  9   |  +   |
77  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
78  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
79  * | Caps |  A   |  S   |  D   |  F   |  G   |  H   |  J   |  K   |  L   |  ;   | Rtrn |  4   |  5   |  6   |  =   |
80  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
81  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
82  * |      |  Z   |  X   |  C   |  V   |  B   |  N   |  M   |  ,   |  .   |  /   |  Up  |  1   |  2   |  3   |      |
83  * | Shift|      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
84  * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+ Enter|
85  * |      |      |      |      |    Space    |  Backspace  |      |      | Left | Down | Right|  0   |  .   |      |
86  * | Fn1  | Ctrl | Alt  | Alt  |             |             | GUI  | DF(0)|      |      |      |      |      |      |
87  * `---------------------------------------------------------------------------------------------------------------'
88  */
89
90   [1] = LAYOUT(
91     KC_GESC,  KC_1,     KC_2,     KC_3,     KC_4,    KC_5,    KC_6,     KC_7,     KC_8,     KC_9,    KC_0,     KC_DEL,   KC_NLCK,   KC_PSLS,  KC_PAST,  KC_PMNS,
92     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,    KC_T,    KC_Y,     KC_U,     KC_I,     KC_O,    KC_P,     KC_QUOT,  KC_7,      KC_8,     KC_9,     KC_PPLS,
93     KC_CAPS,  KC_A,     KC_S,     KC_D,     KC_F,    KC_G,    KC_H,     KC_J,     KC_K,     KC_L,    KC_SCLN,  KC_ENT,   KC_4,      KC_5,     KC_6,     KC_PEQL,
94     KC_LSFT,  KC_Z,     KC_X,     KC_C,     KC_V,    KC_B,    KC_N,     KC_M,     KC_COMM,  KC_DOT,  KC_SLSH,  KC_UP,    KC_1,      KC_2,     KC_3,     KC_ENT,
95     MO(2),    KC_LCTL,  KC_LALT,  KC_LALT,  KC_SPC,  KC_SPC,  KC_BSPC,  KC_BSPC,  KC_RGUI,  DF(0),   KC_LEFT,  KC_DOWN,  KC_RIGHT,  KC_0,     KC_PDOT,  KC_ENT
96   ),
97
98 /* SYMBOL
99  * ,---------------------------------------------------------------------------------------------------------------,
100  * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |      |      |      |      |
101  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
102  * |------+-------------+------+------+------+------+------+------+------+------+------+------+------+------+------|
103  * |      |      |      |  #   |  [   |  <   |  >   |  ]   |  _   |  |   |      |      |      |      |      |      |
104  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
105  * |------+------|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
106  * |      |      |      |  ~   |  (   |  {   |  }   |  )   |  @   |  -   |      |      |      |      |      |      |
107  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
108  * |------+------|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
109  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
110  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
111  * |------+------|------+------+------+------+------+------+------+------+------+------+------+------+------+      |
112  * |      |      |      |      |             |    Enter    |      |      |      |      |      |      |      |      |
113  * |      |      |      |      |             |             |      |      |      |      |      |      |      |      |
114  * `---------------------------------------------------------------------------------------------------------------'
115  */
116
117         [2] = LAYOUT(
118     KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   _______,  _______,  _______,  _______,
119     _______,  _______,  _______,  KC_HASH,  KC_LBRC,  KC_LT,    KC_GT,    KC_RBRC,  KC_UNDS,  KC_PIPE,  _______,  _______,  _______,  _______,  _______,  _______,
120     _______,  _______,  _______,  KC_TILD,  KC_LPRN,  KC_LCBR,  KC_RCBR,  KC_RPRN,  KC_AT,    KC_MINS,  _______,  _______,  _______,  _______,  _______,  _______,
121     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
122     _______,  _______,  _______,  _______,  _______,  _______,  KC_ENT,   KC_ENT,   _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______
123   ),
124
125 /* SYSTEM
126  * ,---------------------------------------------------------------------------------------------------------------,
127  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
128  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
129  * |------+-------------+------+------+------+------+------+------+------+------+------+------+------+------+------|
130  * |      | PgUp | Home |  Up  | End  |      |      | Vol- | Vol+ | Mute |      |      |      |      |      |      |
131  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
132  * |------+------|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
133  * |      | PgDn | Left | Down |Right |      |      | Play | Prev | Next |      |      |      |      |      | RESET|
134  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
135  * |------+------|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
136  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
137  * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
138  * |------+------|------+------+------+------+------+------+------+------+------+------+------+------+------+  BL  |
139  * |      |      |      |      |             |             |      |      |      |      |      |      |  BL  | TGGL |
140  * | GAME |      |      |      |             |             |      |      |      |      |      |      | STEP |      |
141  * `---------------------------------------------------------------------------------------------------------------'
142  */
143
144         [3] = LAYOUT(
145     _______,  _______,  _______,  _______,  _______, _______,  _______,  _______,      _______,    _______,   _______,  _______,  _______,  _______,  _______,   _______,
146     _______,  KC_PGUP,  KC_HOME,  KC_UP,    KC_END,  _______,  _______,  KC__VOLDOWN,  KC__VOLUP,  KC__MUTE,  _______,  _______,  _______,  _______,  _______,   _______,
147     _______,  KC_PGDN,  KC_LEFT,  KC_DOWN,  KC_RGHT,  _______,  _______,  KC_MPLY,     KC_MRWD,    KC_MFFD,   _______,  _______,  _______,  _______,  _______,   RESET,
148     _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,    _______,   _______,  _______,  _______,  _______,  _______,   BL_TOGG,
149     DF(1),    _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,    _______,   _______,  _______,  _______,  _______,  BL_STEP,  BL_TOGG
150   ),
151
152 };
153
154 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
155   switch (keycode) {
156     case QMKBEST:
157       if (record->event.pressed) {
158         // when keycode QMKBEST is pressed
159         SEND_STRING("QMK is the best thing ever!");
160       } else {
161         // when keycode QMKBEST is released
162       }
163       break;
164     case QMKURL:
165       if (record->event.pressed) {
166         // when keycode QMKURL is pressed
167         SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
168       } else {
169         // when keycode QMKURL is released
170       }
171       break;
172   }
173   return true;
174 }
175
176 void matrix_init_user(void) {
177
178 }
179
180 void matrix_scan_user(void) {
181
182 }
183
184 void led_set_user(uint8_t usb_led) {
185
186 }