aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrooski15 <34818505+rooski15@users.noreply.github.com>2018-01-04 10:32:51 -0800
committerJack Humbert <jack.humb@gmail.com>2018-01-04 13:32:51 -0500
commit6bb3fbd4e0ff3123a1b3ea00d00c2ae7a2550120 (patch)
tree02b5d60cb703f7d5226a69080efe9c5806d66576
parent9e0b244a34d28aa2a03f2bf87919af4f25e5e96f (diff)
downloadqmk_firmware-6bb3fbd4e0ff3123a1b3ea00d00c2ae7a2550120.tar.gz
qmk_firmware-6bb3fbd4e0ff3123a1b3ea00d00c2ae7a2550120.zip
Prime_R (#2221)
* Rooski15: Add Prime_R Keyboard * Rooski15: Added keymaps to xd60, xd75, planck, and prime_r * Rooski15: Updated prime_r keymap * Rooski15: Added Prime_R and Documentation * Rooski15: Added Prime_R and Documentation * Rooski15: Prime_R - Added futher documentation. * Update config.h Added device information * Update readme.md Updated Planck:EmilyH Readme * Update readme.md Updated XD75:EmilyH Readme
-rw-r--r--keyboards/planck/keymaps/emilyh/config.h42
-rw-r--r--keyboards/planck/keymaps/emilyh/keymap.c317
-rw-r--r--keyboards/planck/keymaps/emilyh/readme.md2
-rw-r--r--keyboards/prime_r/config.h75
-rw-r--r--keyboards/prime_r/keymaps/default/config.h24
-rw-r--r--keyboards/prime_r/keymaps/default/keymap.c76
-rw-r--r--keyboards/prime_r/keymaps/default/readme.md3
-rw-r--r--keyboards/prime_r/keymaps/rooski/config.h24
-rw-r--r--keyboards/prime_r/keymaps/rooski/keymap.c179
-rw-r--r--keyboards/prime_r/keymaps/rooski/readme.md3
-rw-r--r--keyboards/prime_r/prime_r.c43
-rw-r--r--keyboards/prime_r/prime_r.h35
-rw-r--r--keyboards/prime_r/readme.md17
-rw-r--r--keyboards/prime_r/rules.mk56
-rw-r--r--keyboards/xd60/keymaps/rooski/instructions.txt2
-rw-r--r--keyboards/xd60/keymaps/rooski/keymap.c82
-rw-r--r--keyboards/xd75/keymaps/emilyh/config.h24
-rw-r--r--keyboards/xd75/keymaps/emilyh/keymap.c187
-rw-r--r--keyboards/xd75/keymaps/emilyh/readme.md1
-rw-r--r--keyboards/xd75/keymaps/emilyh/rules.mk18
20 files changed, 1210 insertions, 0 deletions
diff --git a/keyboards/planck/keymaps/emilyh/config.h b/keyboards/planck/keymaps/emilyh/config.h
new file mode 100644
index 000000000..b406e2fed
--- /dev/null
+++ b/keyboards/planck/keymaps/emilyh/config.h
@@ -0,0 +1,42 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#ifdef AUDIO_ENABLE
7 #define STARTUP_SONG SONG(PLANCK_SOUND)
8 // #define STARTUP_SONG SONG(NO_SOUND)
9
10 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
11 SONG(COLEMAK_SOUND), \
12 SONG(DVORAK_SOUND) \
13 }
14#endif
15
16#define MUSIC_MASK (keycode != KC_NO)
17
18/*
19 * MIDI options
20 */
21
22/* Prevent use of disabled MIDI features in the keymap */
23//#define MIDI_ENABLE_STRICT 1
24
25/* enable basic MIDI features:
26 - MIDI notes can be sent when in Music mode is on
27*/
28
29#define MIDI_BASIC
30
31/* enable advanced MIDI features:
32 - MIDI notes can be added to the keymap
33 - Octave shift and transpose
34 - Virtual sustain, portamento, and modulation wheel
35 - etc.
36*/
37//#define MIDI_ADVANCED
38
39/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
40//#define MIDI_TONE_KEYCODE_OCTAVES 2
41
42#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/emilyh/keymap.c b/keyboards/planck/keymaps/emilyh/keymap.c
new file mode 100644
index 000000000..cfc4bebae
--- /dev/null
+++ b/keyboards/planck/keymaps/emilyh/keymap.c
@@ -0,0 +1,317 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "planck.h"
5#include "action_layer.h"
6#ifdef AUDIO_ENABLE
7 #include "audio.h"
8#endif
9#include "eeconfig.h"
10
11extern keymap_config_t keymap_config;
12
13// Each layer gets a name for readability, which is then used in the keymap matrix below.
14// The underscores don't mean anything - you can have a layer called STUFF or any other name.
15// Layer names don't all need to be of the same length, obviously, and you can also skip them
16// entirely and just use numbers.
17
18enum planck_layers {
19 _QWERTY,
20 _COLEMAK,
21 _DVORAK,
22 _LOWER,
23 _RAISE,
24 _PLOVER,
25 _ADJUST
26};
27
28enum planck_keycodes {
29 QWERTY = SAFE_RANGE,
30 COLEMAK,
31 DVORAK,
32 PLOVER,
33 LOWER,
34 RAISE,
35 BACKLIT,
36 EXT_PLV
37};
38
39// Fillers to make layering more clear
40#define _______ KC_TRNS
41#define XXXXXXX KC_NO
42
43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44
45/* Qwerty
46 * ,-----------------------------------------------------------------------------------.
47 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
48 * |------+------+------+------+------+-------------+------+------+------+------+------|
49 * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
50 * |------+------+------+------+------+------|------+------+------+------+------+------|
51 * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
52 * |------+------+------+------+------+------+------+------+------+------+------+------|
53 * | Ctrl | Brite| GUI | Alt |Lower | Space |Raise | / | Left | Down |Right |
54 * `-----------------------------------------------------------------------------------'
55 */
56[_QWERTY] = {
57 {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
58 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
59 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT },
60 {KC_LCTL, BACKLIT, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
61},
62
63/* Colemak
64 * ,-----------------------------------------------------------------------------------.
65 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
66 * |------+------+------+------+------+-------------+------+------+------+------+------|
67 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
68 * |------+------+------+------+------+------|------+------+------+------+------+------|
69 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
70 * |------+------+------+------+------+------+------+------+------+------+------+------|
71 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
72 * `-----------------------------------------------------------------------------------'
73 */
74[_COLEMAK] = {
75 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
76 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
77 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
78 {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
79},
80
81/* Dvorak
82 * ,-----------------------------------------------------------------------------------.
83 * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
84 * |------+------+------+------+------+-------------+------+------+------+------+------|
85 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
86 * |------+------+------+------+------+------|------+------+------+------+------+------|
87 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
88 * |------+------+------+------+------+------+------+------+------+------+------+------|
89 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
90 * `-----------------------------------------------------------------------------------'
91 */
92[_DVORAK] = {
93 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
94 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
95 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
96 {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
97},
98
99/* Lower
100 * ,-----------------------------------------------------------------------------------.
101 * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
102 * |------+------+------+------+------+-------------+------+------+------+------+------|
103 * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
104 * |------+------+------+------+------+------|------+------+------+------+------+------|
105 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ | Home | Next | Vol+ | Mute |
106 * |------+------+------+------+------+------+------+------+------+------+------+------|
107 * | | | | | | | | End | Prev | Vol- | Play |
108 * `-----------------------------------------------------------------------------------'
109 */
110[_LOWER] = {
111 {_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
112 {KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
113 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), KC_HOME, KC_MNXT, KC_VOLU, KC_MUTE},
114 {_______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_MPRV, KC_VOLD, KC_MPLY}
115},
116
117/* Raise
118 * ,-----------------------------------------------------------------------------------.
119 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
120 * |------+------+------+------+------+-------------+------+------+------+------+------|
121 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
122 * |------+------+------+------+------+------|------+------+------+------+------+------|
123 * | | F7 | F8 | F9 | F10 | F11 | F12 |Plover|Pg Up | Next | Vol+ | Mute |
124 * |------+------+------+------+------+------+------+------+------+------+------+------|
125 * | | | | | | | |Pg Dn | Prev | Vol- | Play |
126 * `-----------------------------------------------------------------------------------'
127 */
128[_RAISE] = {
129 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
130 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
131 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(_PLOVER), KC_PGUP, KC_MNXT, KC_VOLU, KC_MUTE},
132 {_______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_MPRV, KC_VOLD, KC_MPLY}
133},
134
135/* Numpad Layer
136 * ,-----------------------------------------------------------------------------------.
137 * | ESC | | | ( | ) | | | 7 | 8 | 9 | + | Bksp |
138 * |------+------+------+------+------+-------------+------+------+------+------+------|
139 * | Tab | + | - | * | / | | | 4 | 5 | 6 | - | |
140 * |------+------+------+------+------+------|------+------+------+------+------+------|
141 * | | | Up | | | | | 1 | 2 | 3 | Up | |
142 * |------+------+------+------+------+------+------+------+------+------+------+------|
143 * |ToQrty| Left | Down |Right | | Space | 0 | . | Left | Down |Right |
144 * `-----------------------------------------------------------------------------------'
145 */
146
147[_PLOVER] = {
148 {KC_ESC , XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN,XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_BSPC},
149 {KC_TAB , KC_PPLS, KC_PMNS, KC_PAST, KC_PSLS,XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PMNS, XXXXXXX},
150 {XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_UP, _______},
151 {TO(_QWERTY),KC_LEFT,KC_DOWN,KC_RGHT,XXXXXXX, KC_SPC, KC_SPC, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT}
152},
153
154/* Adjust (Lower + Raise)
155 * ,-----------------------------------------------------------------------------------.
156 * | | Reset| | | | | | | | | | Del |
157 * |------+------+------+------+------+-------------+------+------+------+------+------|
158 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
159 * |------+------+------+------+------+------|------+------+------+------+------+------|
160 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
161 * |------+------+------+------+------+------+------+------+------+------+------+------|
162 * | | | | | | | | | | | |
163 * `-----------------------------------------------------------------------------------'
164 */
165[_ADJUST] = {
166 {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
167 {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
168 {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
169 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
170}
171
172
173};
174
175#ifdef AUDIO_ENABLE
176
177float tone_startup[][2] = SONG(STARTUP_SOUND);
178float tone_qwerty[][2] = SONG(QWERTY_SOUND);
179float tone_dvorak[][2] = SONG(DVORAK_SOUND);
180float tone_colemak[][2] = SONG(COLEMAK_SOUND);
181float tone_plover[][2] = SONG(PLOVER_SOUND);
182float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
183float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
184
185float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
186#endif
187
188
189void persistant_default_layer_set(uint16_t default_layer) {
190 eeconfig_update_default_layer(default_layer);
191 default_layer_set(default_layer);
192}
193
194bool process_record_user(uint16_t keycode, keyrecord_t *record) {
195 switch (keycode) {
196 case QWERTY:
197 if (record->event.pressed) {
198 #ifdef AUDIO_ENABLE
199 PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
200 #endif
201 persistant_default_layer_set(1UL<<_QWERTY);
202 }
203 return false;
204 break;
205 case COLEMAK:
206 if (record->event.pressed) {
207 #ifdef AUDIO_ENABLE
208 PLAY_NOTE_ARRAY(tone_colemak, false, 0);
209 #endif
210 persistant_default_layer_set(1UL<<_COLEMAK);
211 }
212 return false;
213 break;
214 case DVORAK:
215 if (record->event.pressed) {
216 #ifdef AUDIO_ENABLE
217 PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
218 #endif
219 persistant_default_layer_set(1UL<<_DVORAK);
220 }
221 return false;
222 break;
223 case LOWER:
224 if (record->event.pressed) {
225 layer_on(_LOWER);
226 update_tri_layer(_LOWER, _RAISE, _ADJUST);
227 } else {
228 layer_off(_LOWER);
229 update_tri_layer(_LOWER, _RAISE, _ADJUST);
230 }
231 return false;
232 break;
233 case RAISE:
234 if (record->event.pressed) {
235 layer_on(_RAISE);
236 update_tri_layer(_LOWER, _RAISE, _ADJUST);
237 } else {
238 layer_off(_RAISE);
239 update_tri_layer(_LOWER, _RAISE, _ADJUST);
240 }
241 return false;
242 break;
243 case BACKLIT:
244 if (record->event.pressed) {
245 register_code(KC_RSFT);
246 #ifdef BACKLIGHT_ENABLE
247 backlight_step();
248 #endif
249 } else {
250 unregister_code(KC_RSFT);
251 }
252 return false;
253 break;
254 case PLOVER:
255 if (record->event.pressed) {
256 #ifdef AUDIO_ENABLE
257 stop_all_notes();
258 PLAY_NOTE_ARRAY(tone_plover, false, 0);
259 #endif
260 layer_off(_RAISE);
261 layer_off(_LOWER);
262 layer_off(_ADJUST);
263 layer_on(_PLOVER);
264 if (!eeconfig_is_enabled()) {
265 eeconfig_init();
266 }
267 keymap_config.raw = eeconfig_read_keymap();
268 keymap_config.nkro = 1;
269 eeconfig_update_keymap(keymap_config.raw);
270 }
271 return false;
272 break;
273 case EXT_PLV:
274 if (record->event.pressed) {
275 #ifdef AUDIO_ENABLE
276 PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
277 #endif
278 layer_off(_PLOVER);
279 }
280 return false;
281 break;
282 }
283 return true;
284}
285
286void matrix_init_user(void) {
287 #ifdef AUDIO_ENABLE
288 startup_user();
289 #endif
290}
291
292#ifdef AUDIO_ENABLE
293
294void startup_user()
295{
296 _delay_ms(20); // gets rid of tick
297 PLAY_NOTE_ARRAY(tone_startup, false, 0);
298}
299
300void shutdown_user()
301{
302 PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
303 _delay_ms(150);
304 stop_all_notes();
305}
306
307void music_on_user(void)
308{
309 music_scale_user();
310}
311
312void music_scale_user(void)
313{
314 PLAY_NOTE_ARRAY(music_scale, false, 0);
315}
316
317#endif
diff --git a/keyboards/planck/keymaps/emilyh/readme.md b/keyboards/planck/keymaps/emilyh/readme.md
new file mode 100644
index 000000000..5805480eb
--- /dev/null
+++ b/keyboards/planck/keymaps/emilyh/readme.md
@@ -0,0 +1,2 @@
1# A modified planck layout with arrow cluster
2
diff --git a/keyboards/prime_r/config.h b/keyboards/prime_r/config.h
new file mode 100644
index 000000000..b53f14905
--- /dev/null
+++ b/keyboards/prime_r/config.h
@@ -0,0 +1,75 @@
1/*
2Copyright 2018 Andrew Heaston
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060
26#define DEVICE_VER 0x0001
27#define MANUFACTURER PrimeKB
28#define PRODUCT Prime_R
29#define DESCRIPTION A compact layout with mini-numpad.
30
31/* key matrix size */
32#define MATRIX_ROWS 5
33#define MATRIX_COLS 16
34
35/* key matrix pins */
36#define MATRIX_ROW_PINS { D1, D0, B7, B3, B2 }
37#define MATRIX_COL_PINS { D2, D3, D5, D4, D6, D7, B4, B5, C7, C6, F7, F6, F5, F4, F1, F0 }
38#define UNUSED_PINS
39
40/* COL2ROW or ROW2COL */
41#define DIODE_DIRECTION COL2ROW
42
43/* number of backlight levels */
44#define BACKLIGHT_PIN B6
45#ifdef BACKLIGHT_PIN
46#define BACKLIGHT_LEVELS 5
47#endif
48
49/* Set 0 if debouncing isn't needed */
50#define DEBOUNCING_DELAY 5
51
52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
53#define LOCKING_SUPPORT_ENABLE
54
55/* Locking resynchronize hack */
56#define LOCKING_RESYNC_ENABLE
57
58/* key combination for command */
59#define IS_COMMAND() ( \
60 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
61)
62
63/* prevent stuck modifiers */
64#define PREVENT_STUCK_MODIFIERS
65
66
67#ifdef RGB_DI_PIN
68#define RGBLIGHT_ANIMATIONS
69#define RGBLED_NUM 0
70#define RGBLIGHT_HUE_STEP 8
71#define RGBLIGHT_SAT_STEP 8
72#define RGBLIGHT_VAL_STEP 8
73#endif
74
75#endif
diff --git a/keyboards/prime_r/keymaps/default/config.h b/keyboards/prime_r/keymaps/default/config.h
new file mode 100644
index 000000000..e7ffd3aa2
--- /dev/null
+++ b/keyboards/prime_r/keymaps/default/config.h
@@ -0,0 +1,24 @@
1/* Copyright 2018 Andrew Heaston
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#ifndef CONFIG_USER_H
18#define CONFIG_USER_H
19
20#include "config_common.h"
21
22// place overrides here
23
24#endif
diff --git a/keyboards/prime_r/keymaps/default/keymap.c b/keyboards/prime_r/keymaps/default/keymap.c
new file mode 100644
index 000000000..ff00dc657
--- /dev/null
+++ b/keyboards/prime_r/keymaps/default/keymap.c
@@ -0,0 +1,76 @@
1/* Copyright 2018 Andrew Heaston @rooski15
2 *
3 * Developed by /u/holtenc at www.primekb.com
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18// Prime_R Rev 1.0
19
20#include "prime_r.h"
21#include "action_layer.h"
22#include "backlight.h"
23
24// Fillers to make layering more clear
25#define _______ KC_TRNS
26#define XXXXXXX KC_NO
27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 /* (Base Layer) Default Layer
30 * ,---------------------------------------------------------------.
31 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0|PUP|BSP|PSC|PUP|PDN|
32 * |---------------------------------------------------------------|
33 * |Grv| Q| W| E| R| T| Y| U| I| O| P|PDN|DEL| 7| 8| 9|
34 * |---------------------------------------------------------------|
35 * |Tab | A| S| D| F| G| H| J| K| L| '|Return| 4| 5| 6|
36 * |---------------------------------------------------------------|
37 * |Shift| Z| X| C| V| B| N| M| ,| .| ?|Shift| 1| 2| 3|
38 * |---------------------------------------------------------------|
39 * |Ctrl|Gui |App|Alt| Space| Space |Alt|App|GUI|Ctrl | 0| .|Ret|
40 * `---------------------------------------------------------------'
41 */
42 // 0: Base Layer
43 KEYMAP(
44 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PGUP, KC_BSPC, KC_PSCR, KC_PGUP, KC_PGDN, \
45 KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PGDN, KC_DEL, KC_7, KC_8, KC_9, \
46 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_DQUO, KC_ENT, KC_4, KC_5, KC_6, \
47 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_LABK, KC_RABK, KC_QUES, KC_LSFT, KC_1, KC_2, KC_3, \
48 KC_LCTL, KC_LGUI, KC_APP, KC_LALT, MO(0), KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL, KC_0, KC_DOT, KC_ENT), \
49
50 // 1: Function Layer
51 KEYMAP(
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
54 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
57
58};
59
60const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
61
62 switch (id) {
63
64 }
65 return MACRO_NONE;
66}
67
68void matrix_init_user(void) {
69}
70
71void matrix_scan_user(void) {
72}
73
74bool process_record_user(uint16_t keycode, keyrecord_t *record) {
75 return true;
76} \ No newline at end of file
diff --git a/keyboards/prime_r/keymaps/default/readme.md b/keyboards/prime_r/keymaps/default/readme.md
new file mode 100644
index 000000000..be92dce9b
--- /dev/null
+++ b/keyboards/prime_r/keymaps/default/readme.md
@@ -0,0 +1,3 @@
1# The default Prime_R layout, with nothing committed to function layer.
2
3# Extracted from json at https://www.primekb.com/pages/programming \ No newline at end of file
diff --git a/keyboards/prime_r/keymaps/rooski/config.h b/keyboards/prime_r/keymaps/rooski/config.h
new file mode 100644
index 000000000..e7ffd3aa2
--- /dev/null
+++ b/keyboards/prime_r/keymaps/rooski/config.h
@@ -0,0 +1,24 @@
1/* Copyright 2018 Andrew Heaston
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#ifndef CONFIG_USER_H
18#define CONFIG_USER_H
19
20#include "config_common.h"
21
22// place overrides here
23
24#endif
diff --git a/keyboards/prime_r/keymaps/rooski/keymap.c b/keyboards/prime_r/keymaps/rooski/keymap.c
new file mode 100644
index 000000000..c536d01fe
--- /dev/null
+++ b/keyboards/prime_r/keymaps/rooski/keymap.c
@@ -0,0 +1,179 @@
1/* Copyright 2018 Andrew Heaston @rooski15
2 *
3 * Developed by /u/holtenc at www.primekb.com
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */// Prime_R Rev 1.0
18
19#include "prime_r.h"
20#include "action_layer.h"
21#include "backlight.h"
22
23// Fillers to make layering more clear
24#define _______ KC_TRNS
25#define XXXXXXX KC_NO
26
27//Arrow Cluster Toggle
28static bool arrow_toggle = false;
29
30//Arrow Keys
31enum custom_keycodes{
32 AR_TOG = SAFE_RANGE, //Toggle Arrow Keys
33 AR_LT, //Num0 or Left Arrow
34 AR_RT, //NumEnt or Right Arrow
35 AR_DN, //NumDot or Down Arrow
36 AR_UP, //Num2 or Up Arrow
37};
38
39// Tap/Hold Space Layer
40#define SPC_LT LT(1, KC_SPC)
41
42const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43 /* (Base Layer) Default Layer
44 * ,---------------------------------------------------------------.
45 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -|BSP|DEL|HOM|END|
46 * |---------------------------------------------------------------|
47 * |Grv| Q| W| E| R| T| Y| U| I| O| P| [| ]| 7| 8| 9|
48 * |---------------------------------------------------------------|
49 * |Tab | A| S| D| F| G| H| J| K| L| '|Return| 4| 5| 6|
50 * |---------------------------------------------------------------|
51 * |Shift| Z| X| C| V| B| N| M| ,| .| ?|Shift| 1|ARU| 3| AR - U/D/L/R & Toggle
52 * |---------------------------------------------------------------|
53 * |Ctrl|Gui |Alt|TO1| 1/SP | 1/SP |ART|App|Alt|Ctrl |ARL|ARD|ARR| Arrow keys operate on AR Toggle to be numpad keys
54 * `---------------------------------------------------------------'
55 */
56 // 0: Base Layer
57 KEYMAP(
58 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_DEL, KC_HOME, KC_END, \
59 KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, \
60 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
61 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_P1, AR_UP, KC_P3, \
62 KC_LCTL, KC_LGUI, KC_LALT, TO(1), SPC_LT, SPC_LT, AR_TOG, KC_APP, KC_RALT, KC_RCTL, AR_LT, AR_DN, AR_RT), \
63
64 /* (Base Layer) Default Layer
65 * ,---------------------------------------------------------------.
66 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0| =|BSP|HOM|END|DEL|
67 * |---------------------------------------------------------------|
68 * |Grv| Q| W| E| R| T| Y| U| I| O| P| [| \| 7| 8| 9|
69 * |---------------------------------------------------------------|
70 * |Tab | A| S| D| F| G| H| J| K| L| '|Return| 4| 5| 6|
71 * |---------------------------------------------------------------|
72 * |Shift| Z| X| C| V| B| N| M| ,| .| ?|Shift| 1|ARU| 3|
73 * |---------------------------------------------------------------|
74 * |Ctrl|Gui |Alt|TO0| 1/SP | 1/SP |ART|App|Alt|Ctrl |ARL|ARD|ARR|
75 * `---------------------------------------------------------------'
76 */
77 // 1: Function Layer
78
79 KEYMAP(
80 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_EQL, _______, KC_PAST, KC_PMNS, KC_PPLS,
81 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, _______,
82 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, _______, _______, _______, _______,
83 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
84 _______, _______, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______),
85
86 // 2: Extra
87 KEYMAP(
88 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
89 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
91 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
93
94};
95
96void matrix_init_user(void) {
97 if (get_backlight_level() != 0){
98 backlight_toggle();
99 }
100};
101
102void matrix_scan_user(void) {
103};
104
105bool process_record_user(uint16_t keycode, keyrecord_t *record) {
106 if(record->event.pressed){
107 switch(keycode) {
108 case AR_TOG:
109 arrow_toggle = !arrow_toggle;
110 backlight_toggle();
111 return false; break;
112
113 case AR_UP:
114 if(arrow_toggle == 1){
115 SEND_STRING(SS_DOWN(X_UP));
116 } else {
117 SEND_STRING(SS_DOWN(X_KP_2));
118 }
119 return false; break;
120
121 case AR_DN:
122 if(arrow_toggle == 1){
123 SEND_STRING(SS_DOWN(X_DOWN));
124 } else {
125 SEND_STRING(SS_DOWN(X_KP_DOT));
126 }
127 return false; break;
128
129 case AR_LT:
130 if(arrow_toggle == 1){
131 SEND_STRING(SS_DOWN(X_LEFT));
132 } else {
133 SEND_STRING(SS_DOWN(X_KP_0));
134 }
135 return false; break;
136
137 case AR_RT:
138 if(arrow_toggle == 1){
139 SEND_STRING(SS_DOWN(X_RIGHT));
140 } else {
141 SEND_STRING(SS_DOWN(X_KP_ENTER));
142 }
143 return false; break;
144 }
145 }
146 if(!record->event.pressed){
147 switch(keycode) {
148 case AR_UP:
149 if(arrow_toggle == 1){
150 SEND_STRING(SS_UP(X_UP));
151 } else {
152 SEND_STRING(SS_UP(X_KP_2));
153 }
154 return false; break;
155 case AR_DN:
156 if(arrow_toggle == 1){
157 SEND_STRING(SS_UP(X_DOWN));
158 } else {
159 SEND_STRING(SS_UP(X_KP_DOT));
160 }
161 return false; break;
162 case AR_LT:
163 if(arrow_toggle == 1){
164 SEND_STRING(SS_UP(X_LEFT));
165 } else {
166 SEND_STRING(SS_UP(X_KP_0));
167 }
168 return false; break;
169 case AR_RT:
170 if(arrow_toggle == 1){
171 SEND_STRING(SS_UP(X_RIGHT));
172 } else {
173 SEND_STRING(SS_UP(X_KP_ENTER));
174 }
175 return false; break;
176 }
177 }
178 return true;
179}; \ No newline at end of file
diff --git a/keyboards/prime_r/keymaps/rooski/readme.md b/keyboards/prime_r/keymaps/rooski/readme.md
new file mode 100644
index 000000000..08064320e
--- /dev/null
+++ b/keyboards/prime_r/keymaps/rooski/readme.md
@@ -0,0 +1,3 @@
1# /u/rooski15 layout
2
3# Changes include numpad codes, layer additions, and a toggle-able arrow cluster that is non layer dependant. \ No newline at end of file
diff --git a/keyboards/prime_r/prime_r.c b/keyboards/prime_r/prime_r.c
new file mode 100644
index 000000000..845769dae
--- /dev/null
+++ b/keyboards/prime_r/prime_r.c
@@ -0,0 +1,43 @@
1/* Copyright 2018 Andrew Heaston
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 "prime_r.h"
17
18void matrix_init_kb(void) {
19 // put your keyboard start-up code here
20 // runs once when the firmware starts up
21
22 matrix_init_user();
23}
24
25void matrix_scan_kb(void) {
26 // put your looping keyboard code here
27 // runs every cycle (a lot)
28
29 matrix_scan_user();
30}
31
32bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
33 // put your per-action keyboard code here
34 // runs for every action, just before processing by the firmware
35
36 return process_record_user(keycode, record);
37}
38
39void led_set_kb(uint8_t usb_led) {
40 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
41
42 led_set_user(usb_led);
43}
diff --git a/keyboards/prime_r/prime_r.h b/keyboards/prime_r/prime_r.h
new file mode 100644
index 000000000..f98b5e87b
--- /dev/null
+++ b/keyboards/prime_r/prime_r.h
@@ -0,0 +1,35 @@
1/* Copyright 2018 Andrew Heaston
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#ifndef PRIMER_H
17#define PRIMER_H
18
19#include "quantum.h"
20
21#define KEYMAP( \
22 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
23 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
24 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K212, K213, K214, K215, \
25 K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \
26 K400, K402, K403, K404, K405, K407, K409, K410, K411, K412, K413, K414, K415 \
27) { \
28 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
29 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
30 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, KC_NO, K212, K213, K214, K215 }, \
31 { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \
32 { K400, KC_NO, K402, K403, K404, K405, KC_NO, K407, KC_NO, K409, K410, K411, K412, K413, K414, K415 } \
33}
34
35#endif \ No newline at end of file
diff --git a/keyboards/prime_r/readme.md b/keyboards/prime_r/readme.md
new file mode 100644
index 000000000..f9df97dfa
--- /dev/null
+++ b/keyboards/prime_r/readme.md
@@ -0,0 +1,17 @@
1# Prime_R
2
3![Prime_R](https://imgur.com/3nwvMu4)
4
5A compact layout with the footprint of your typical 65% board, featuring a right mini-numpad. Produced by /u/holtenc at www.primekb.com
6[Additional resources here](https://www.primekb.com/pages/programming)
7
8Keyboard Maintainer: [Andrew Heaston](https://github.com/rooski15)
9Hardware Supported: prime_r pcb, ATmega32U4
10Hardware Availability: [Prime_KB](https://www.primekb.com/
11
12Make example for this keyboard (after setting up your build environment):
13
14 make prime_r:default
15
16See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
17
diff --git a/keyboards/prime_r/rules.mk b/keyboards/prime_r/rules.mk
new file mode 100644
index 000000000..0e7a40727
--- /dev/null
+++ b/keyboards/prime_r/rules.mk
@@ -0,0 +1,56 @@
1# MCU name
2MCU = atmega32u4
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000
16
17#
18# LUFA specific
19#
20# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8
22
23# Input clock frequency.
24# This will define a symbol, F_USB, in all source code files equal to the
25# input clock frequency (before any prescaling is performed) in Hz. This value may
26# differ from F_CPU if prescaling is used on the latter, and is required as the
27# raw input clock is fed directly to the PLL sections of the AVR for high speed
28# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
29# at the end, this will be done automatically to create a 32-bit value in your
30# source code.
31#
32# If no clock division is performed on the input clock inside the AVR (via the
33# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
34F_USB = $(F_CPU)
35
36# Interrupt driven control endpoint task(+60)
37OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
38
39
40# Boot Section Size in *bytes*
41OPT_DEFS += -DBOOTLOADER_SIZE=4096
42
43
44# Build Options
45# comment out to disable the options.
46#
47BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
48MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
49EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
50CONSOLE_ENABLE ?= no # Console for debug(+400)
51COMMAND_ENABLE ?= no # Commands for debug and configuration
52SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
53NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
54BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
55AUDIO_ENABLE ?= no
56RGBLIGHT_ENABLE ?= no \ No newline at end of file
diff --git a/keyboards/xd60/keymaps/rooski/instructions.txt b/keyboards/xd60/keymaps/rooski/instructions.txt
new file mode 100644
index 000000000..1486647dc
--- /dev/null
+++ b/keyboards/xd60/keymaps/rooski/instructions.txt
@@ -0,0 +1,2 @@
1cd c:/QMK
2make xd60 / / / / / / / / \ No newline at end of file
diff --git a/keyboards/xd60/keymaps/rooski/keymap.c b/keyboards/xd60/keymaps/rooski/keymap.c
new file mode 100644
index 000000000..4b7b03e6a
--- /dev/null
+++ b/keyboards/xd60/keymaps/rooski/keymap.c
@@ -0,0 +1,82 @@
1// XD60 Rev 2.0
2
3#include "xd60.h"
4#include "action_layer.h"
5//#include "action_tapping.h"
6#include "backlight.h"
7
8// Define tapping term
9#define TAPPING_TERM 150
10
11// Fillers to make layering more clear
12#define _______ KC_TRNS
13#define XXXXXXX KC_NO
14// Layer definitions~
15#define _BL 0
16#define _FL 1
17#define _LK 2
18
19// RShift TapHold
20#define RSTT MT(MOD_RSFT, KC_SLSH)
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 /* (Base Layer) Default Layer
24 * ,-----------------------------------------------------------.
25 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
26 * |-----------------------------------------------------------|
27 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
28 * |-----------------------------------------------------------|
29 * | Caps | A| S| D| F| G| H| J| K| L| ;| '| Return |
30 * |-----------------------------------------------------------|
31 * |Shift | Z| X| C| V| B| N| M| ,| .|Shift| Up |Del |
32 * |-----------------------------------------------------------|
33 * |Ctrl|Gui |Alt | Space |Ctrl|Fn| LT| DN | RT |
34 * `-----------------------------------------------------------'
35 */
36 // 0: Base Layer
37 [_BL] = KEYMAP(
38 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
40 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \
41 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, XXXXXXX, RSTT, KC_UP, KC_DEL, \
42 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT),
43
44 // 1: Function Layer
45 [_FL] = KEYMAP(
46 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
47 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, \
48 XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
49 XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, \
50 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(_LK), _______, KC_HOME, _______, KC_END),
51
52 // 2: Lighting Keys
53 [_LK] = KEYMAP(
54 TO(_BL), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RESET, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
55 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, \
56 RESET , KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
57 XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, XXXXXXX, XXXXXXX, RGB_VAI, BL_STEP, \
58 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_BL), XXXXXXX, RGB_TOG, RGB_VAD, RGB_MOD),
59
60};
61
62// Macros
63const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
64
65 // MACRODOWN only works in this function
66 switch(id) {
67 case 0:
68 if (record->event.pressed) {
69 register_code(KC_RSFT);
70 backlight_step();
71 }
72 else { unregister_code(KC_RSFT); }
73 break;
74 }
75
76 return MACRO_NONE;
77};
78
79// Loop
80void matrix_scan_user(void) {
81 // Empty
82}; \ No newline at end of file
diff --git a/keyboards/xd75/keymaps/emilyh/config.h b/keyboards/xd75/keymaps/emilyh/config.h
new file mode 100644
index 000000000..f52a97bbc
--- /dev/null
+++ b/keyboards/xd75/keymaps/emilyh/config.h
@@ -0,0 +1,24 @@
1/* Copyright 2017 REPLACE_WITH_YOUR_NAME
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#ifndef CONFIG_USER_H
18#define CONFIG_USER_H
19
20#include "../../config.h"
21
22// place overrides here
23
24#endif
diff --git a/keyboards/xd75/keymaps/emilyh/keymap.c b/keyboards/xd75/keymaps/emilyh/keymap.c
new file mode 100644
index 000000000..034bb55ac
--- /dev/null
+++ b/keyboards/xd75/keymaps/emilyh/keymap.c
@@ -0,0 +1,187 @@
1/* Copyright 2017 REPLACE_WITH_YOUR_NAME
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 "xd75.h"
17#include "backlight.h"
18
19// Fillers to make layering more clear
20#define _______ KC_TRNS
21#define ___T___ KC_TRNS
22#define XXXXXXX KC_NO
23
24// Layer shorthand
25#define _QW 0
26#define _CM 1
27#define _DV 2
28#define _LW 3
29#define _RS 4
30#define _FN 5
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33
34/* QWERTY - MIT ENHANCED / GRID COMPATIBLE
35 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
36 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
37 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
38 * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
39 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
40 * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
41 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
42 * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
43 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
44 * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
45 * '--------------------------------------------------------------------------------------------------------------------------------------'
46 */
47
48 [_QW] = { /* QWERTY */
49 { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_PSLS, KC_PAST, KC_PPLS },
50 { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9 },
51 { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_P4, KC_P5, KC_P6 },
52 { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, KC_P1, KC_P2, KC_P3 },
53 { KC_LCTL, M(0), KC_LGUI, KC_LALT, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT, KC_PENT },
54 },
55
56/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE
57 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
58 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
59 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
60 * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL |
61 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
62 * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP |
63 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
64 * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
65 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
66 * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
67 * '--------------------------------------------------------------------------------------------------------------------------------------'
68 */
69
70 [_CM] = { /* COLEMAK */
71 { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
72 { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
73 { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
74 { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
75 { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
76 },
77
78/* DVORAK - MIT ENHANCED / GRID COMPATIBLE
79 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
80 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
81 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
82 * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL |
83 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
84 * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP |
85 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
86 * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN |
87 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
88 * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
89 * '--------------------------------------------------------------------------------------------------------------------------------------'
90 */
91
92 [_DV] = { /* DVORAK */
93 { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
94 { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
95 { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP },
96 { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
97 { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
98 },
99
100/* LOWERED
101 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
102 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
103 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
104 * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS |
105 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
106 * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | |
107 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
108 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
109 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
110 * | | | | | | XXXXXX . | | | | | | | | |
111 * '--------------------------------------------------------------------------------------------------------------------------------------'
112 */
113
114 [_LW] = { /* LOWERED */
115 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
116 { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS },
117 { RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ },
118 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ },
119 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
120 },
121
122/* RAISED
123 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
124 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
125 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
126 * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS |
127 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
128 * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | |
129 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
130 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
131 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
132 * | | | | | | XXXXXX . | | | | | | | | |
133 * '--------------------------------------------------------------------------------------------------------------------------------------'
134 */
135
136 [_RS] = { /* RAISED */
137 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
138 { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS },
139 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ },
140 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ },
141 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
142 },
143
144/* FUNCTION
145 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
146 * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
147 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
148 * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR |
149 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
150 * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ |
151 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
152 * | RGB TG | RGB MD | RGB HI | RGB HD | RGB SI | RGB SD | RGB VI | RGB VD | BL TOG | BL INC | BL DEC | XXXXXX . | MOUS U | WHEEL- |
153 * |--------+--------+--------+--------+--------+-- 2u -----------+--------+--------+--------+--------+-----------------+--------+--------|
154 * | RESET | | QWERTY | COLEMK | DVORAK | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R |
155 * '--------------------------------------------------------------------------------------------------------------------------------------'
156 */
157
158 [_FN] = { /* FUNCTION */
159 { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
160 { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR },
161 { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U },
162 { RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D },
163 { RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R },
164 },
165};
166
167const uint16_t PROGMEM fn_actions[] = {
168
169};
170
171const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
172{
173 // MACRODOWN only works in this function
174 switch(id) {
175 case 0:
176 if (record->event.pressed) {
177 register_code(KC_RSFT);
178 #ifdef BACKLIGHT_ENABLE
179 backlight_step();
180 #endif
181 } else {
182 unregister_code(KC_RSFT);
183 }
184 break;
185 }
186 return MACRO_NONE;
187};
diff --git a/keyboards/xd75/keymaps/emilyh/readme.md b/keyboards/xd75/keymaps/emilyh/readme.md
new file mode 100644
index 000000000..743aae5b3
--- /dev/null
+++ b/keyboards/xd75/keymaps/emilyh/readme.md
@@ -0,0 +1 @@
# Modified keymap for xd75 with numpad on right
diff --git a/keyboards/xd75/keymaps/emilyh/rules.mk b/keyboards/xd75/keymaps/emilyh/rules.mk
new file mode 100644
index 000000000..d4e08cfb2
--- /dev/null
+++ b/keyboards/xd75/keymaps/emilyh/rules.mk
@@ -0,0 +1,18 @@
1# Copyright 2013 Jun Wako <wakojun@gmail.com>
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
16ifndef QUANTUM_DIR
17 include ../../../../Makefile
18endif