aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2021-04-29 11:25:30 -0700
committerGitHub <noreply@github.com>2021-04-29 11:25:30 -0700
commit8190a795ed3133ccab69b71f01104996080411bc (patch)
treed61f9ea7964187c48182c4c277935d328ba10030
parentd3963a61cb9209efce1d8f052d5d8e7aaa2be48b (diff)
downloadqmk_firmware-8190a795ed3133ccab69b71f01104996080411bc.tar.gz
qmk_firmware-8190a795ed3133ccab69b71f01104996080411bc.zip
DracuLad: add Configurator data and rework layout macro (#12727)
* add info.json file * refactor keymaps for readability * rework layout macro Arranges the layout macro and keycodes to resemble the physical layout. * readme touch-up Corrections to capitalization and spelling, and removal of extra white space.
-rw-r--r--keyboards/draculad/draculad.h3
-rw-r--r--keyboards/draculad/info.json59
-rw-r--r--keyboards/draculad/keymaps/default/keymap.c57
-rw-r--r--keyboards/draculad/keymaps/pimoroni/keymap.c53
-rw-r--r--keyboards/draculad/readme.md32
5 files changed, 136 insertions, 68 deletions
diff --git a/keyboards/draculad/draculad.h b/keyboards/draculad/draculad.h
index 47d4b2143..b98bb0d2c 100644
--- a/keyboards/draculad/draculad.h
+++ b/keyboards/draculad/draculad.h
@@ -25,7 +25,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25 L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ 25 L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
26 L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ 26 L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \
27 L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ 27 L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \
28 L30, L31, L32, L33, R30, R31, R32, R33 \ 28 L30, R33, \
29 L31, L32, L33, R30, R31, R32 \
29 ) \ 30 ) \
30 { \ 31 { \
31 { L00, L01, L02, L03, L04 }, \ 32 { L00, L01, L02, L03, L04 }, \
diff --git a/keyboards/draculad/info.json b/keyboards/draculad/info.json
new file mode 100644
index 000000000..c0f37771b
--- /dev/null
+++ b/keyboards/draculad/info.json
@@ -0,0 +1,59 @@
1{
2 "keyboard_name": "DracuLad",
3 "url": "",
4 "maintainer": "MangoIV",
5 "width": 13,
6 "height": 5.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"L00", "x":0, "y":1},
11 {"label":"L01", "x":1, "y":0.35},
12 {"label":"L02", "x":2, "y":0},
13 {"label":"L03", "x":3, "y":0.35},
14 {"label":"L04", "x":4, "y":0.5},
15
16 {"label":"R00", "x":8, "y":0.5},
17 {"label":"R01", "x":9, "y":0.35},
18 {"label":"R02", "x":10, "y":0},
19 {"label":"R03", "x":11, "y":0.35},
20 {"label":"R04", "x":12, "y":1},
21
22 {"label":"L10", "x":0, "y":2},
23 {"label":"L11", "x":1, "y":1.35},
24 {"label":"L12", "x":2, "y":1},
25 {"label":"L13", "x":3, "y":1.35},
26 {"label":"L14", "x":4, "y":1.5},
27
28 {"label":"R10", "x":8, "y":1.5},
29 {"label":"R11", "x":9, "y":1.35},
30 {"label":"R12", "x":10, "y":1},
31 {"label":"R13", "x":11, "y":1.35},
32 {"label":"R14", "x":12, "y":2},
33
34 {"label":"L20", "x":0, "y":3},
35 {"label":"L21", "x":1, "y":2.35},
36 {"label":"L22", "x":2, "y":2},
37 {"label":"L23", "x":3, "y":2.35},
38 {"label":"L24", "x":4, "y":2.5},
39
40 {"label":"R20", "x":8, "y":2.5},
41 {"label":"R21", "x":9, "y":2.35},
42 {"label":"R22", "x":10, "y":2},
43 {"label":"R23", "x":11, "y":2.35},
44 {"label":"R24", "x":12, "y":3},
45
46 {"label":"L30", "x":4.25, "y":3.5},
47 {"label":"R33", "x":7.75, "y":3.5},
48
49 {"label":"L31", "x":3, "y":4.5},
50 {"label":"L32", "x":4, "y":4.5},
51 {"label":"L33", "x":5, "y":4.5},
52
53 {"label":"R30", "x":7, "y":4.5},
54 {"label":"R31", "x":8, "y":4.5},
55 {"label":"R32", "x":9, "y":4.5}
56 ]
57 }
58 }
59}
diff --git a/keyboards/draculad/keymaps/default/keymap.c b/keyboards/draculad/keymaps/default/keymap.c
index b24cca932..f9432c992 100644
--- a/keyboards/draculad/keymaps/default/keymap.c
+++ b/keyboards/draculad/keymaps/default/keymap.c
@@ -30,35 +30,40 @@ enum layer_number {
30char wpm_as_str[8]; 30char wpm_as_str[8];
31 31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 [_BASE] = LAYOUT( 33 [_BASE] = LAYOUT(
34 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 34 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
35 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K , KC_L , KC_SCLN, 35 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
36 LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), 36 LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
37 KC_MUTE, KC_LCTL, LALT_T(KC_BSPC), LT(_MUS, KC_SPC), LT(_NUM,KC_DEL), LT(_SYMB, KC_ENT), KC_CAPS, TG(_ADJ) 37 KC_MUTE, TG(_ADJ),
38 ), 38 KC_LCTL, LALT_T(KC_BSPC), LT(_MUS,KC_SPC), LT(_NUM,KC_DEL), LT(_SYMB,KC_ENT), KC_CAPS
39 [_NUM] = LAYOUT( 39 ),
40 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 40 [_NUM] = LAYOUT(
41 KC_TAB, XXXXXXX, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP , KC_RIGHT , KC_QUOT, 41 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
42 KC_LSFT, XXXXXXX, XXXXXXX, KC_MUTE, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT, 42 KC_TAB, XXXXXXX, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
43 XXXXXXX, XXXXXXX, KC_LALT, XXXXXXX, _______, KC_ENT, KC_NO, KC_NO 43 KC_LSFT, XXXXXXX, XXXXXXX, KC_MUTE, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT,
44 ), 44 XXXXXXX, KC_NO,
45 [_SYMB] = LAYOUT( 45 XXXXXXX, KC_LALT, XXXXXXX, _______, KC_ENT, KC_NO
46 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS, 46 ),
47 XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX , KC_GRV , KC_BSLS, 47 [_SYMB] = LAYOUT(
48 KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT, 48 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS,
49 XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NO, KC_NO 49 XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX, KC_GRV, KC_BSLS,
50 KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT,
51 XXXXXXX, KC_NO,
52 KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NO
50 ), 53 ),
51 [_MUS] = LAYOUT( 54 [_MUS] = LAYOUT(
52 KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 55 KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
53 KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1 , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX, 56 KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
54 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 57 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
55 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX 58 XXXXXXX, XXXXXXX,
56 ), 59 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
60 ),
57 [_ADJ] = LAYOUT( 61 [_ADJ] = LAYOUT(
58 RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 62 RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
59 EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI , RGB_VAI , RGB_TOG, 63 EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG,
60 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, 64 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
61 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ 65 XXXXXXX, _______,
66 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
62 ) 67 )
63}; 68};
64 69
diff --git a/keyboards/draculad/keymaps/pimoroni/keymap.c b/keyboards/draculad/keymaps/pimoroni/keymap.c
index d3a8e1f79..1f57efb5d 100644
--- a/keyboards/draculad/keymaps/pimoroni/keymap.c
+++ b/keyboards/draculad/keymaps/pimoroni/keymap.c
@@ -42,35 +42,40 @@ enum custom_keycodes {
42char wpm_as_str[8]; 42char wpm_as_str[8];
43 43
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 [_BASE] = LAYOUT( 45 [_BASE] = LAYOUT(
46 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 46 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
47 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K , KC_L , KC_SCLN, 47 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
48 LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), 48 LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
49 KC_MUTE, KC_LCTL, LALT_T(KC_BSPC), LT(_MUS, KC_SPC), KC_NO, LT(_NUM,KC_ENT), LT(_SYMB, KC_DEL), TG(_ADJ) 49 KC_MUTE, TG(_ADJ),
50 ), 50 KC_LCTL, LALT_T(KC_BSPC), LT(_MUS,KC_SPC), KC_NO, LT(_NUM,KC_ENT), LT(_SYMB,KC_DEL)
51 [_NUM] = LAYOUT(
52 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
53 KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP , KC_RIGHT , KC_QUOT,
54 KC_LSFT, XXXXXXX, KC_MPRV, KC_MNXT, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT,
55 XXXXXXX, KC_LCTL, KC_LALT, XXXXXXX, KC_NO, _______, KC_ENT, KC_NO
56 ), 51 ),
57 [_SYMB] = LAYOUT( 52 [_NUM] = LAYOUT(
58 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS, 53 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
59 XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX , KC_GRV , KC_BSLS, 54 KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
60 KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT, 55 KC_LSFT, XXXXXXX, KC_MPRV, KC_MNXT, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT,
61 XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO, _______, KC_NO 56 XXXXXXX, KC_NO,
57 KC_LCTL, KC_LALT, XXXXXXX, KC_NO, _______, KC_ENT
58 ),
59 [_SYMB] = LAYOUT(
60 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS,
61 XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX, KC_GRV, KC_BSLS,
62 KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT,
63 XXXXXXX, KC_NO,
64 KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO, _______
62 ), 65 ),
63 [_MUS] = LAYOUT( 66 [_MUS] = LAYOUT(
64 KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 67 KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
65 KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1 , BALL_SCR, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX, 68 KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1, BALL_SCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
66 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 69 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
67 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX 70 XXXXXXX, XXXXXXX,
71 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
68 ), 72 ),
69 [_ADJ] = LAYOUT( 73 [_ADJ] = LAYOUT(
70 RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BALL_HUI, BALL_WHT, BALL_DEC, XXXXXXX, XXXXXXX, 74 RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BALL_HUI, BALL_WHT, BALL_DEC, XXXXXXX, XXXXXXX,
71 EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI , RGB_VAI , RGB_TOG, 75 EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG,
72 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, 76 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
73 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ 77 XXXXXXX, _______,
78 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
74 ) 79 )
75}; 80};
76 81
diff --git a/keyboards/draculad/readme.md b/keyboards/draculad/readme.md
index f1fd546cd..585d6cb5f 100644
--- a/keyboards/draculad/readme.md
+++ b/keyboards/draculad/readme.md
@@ -3,31 +3,29 @@
3![DracuLad](https://github.com/mangoiv/draculad/blob/master/pictures/rev1/both_sides_showcase.jpg?raw=true) 3![DracuLad](https://github.com/mangoiv/draculad/blob/master/pictures/rev1/both_sides_showcase.jpg?raw=true)
4 4
5*A 34-36 key split keyboard* 5*A 34-36 key split keyboard*
6- 36 keys, two of them can be replaced by rotary encoders making it support 34-36 keys and 2-4 encoders. 6- 36 keys, two of them can be replaced by rotary encoders making it support 34-36 keys and 2-4 encoders.
7- bright RGB Underglow with ws2812b LEDs 7- bright RGB Underglow with WS2812B LEDs
8- one ssd1306 OLED per side 8- one SSD1306 OLED per side
9- aggressive pinky stagger similar to the kyria but with an alternative thumb cluster to raise comfort for large hands 9- aggressive pinky stagger similar to the Kyria but with an alternative thumb cluster to raise comfort for large hands
10- support for mx and choc switches 10- support for MX and Choc switches
11 11
12* keyboard Maintainer: [MangoIV](https://github.com/MangoIV) 12* Keyboard Maintainer: [MangoIV](https://github.com/MangoIV)
13* Hardware Supported: [DracuLad PCBs and cases](https://github.com/MangoIV/dracuLad), [the pimoroni trackball](https://shop.pimoroni.com/products/trackball-breakout) 13* Hardware Supported: [DracuLad PCBs and cases](https://github.com/MangoIV/dracuLad), [the Pimoroni trackball](https://shop.pimoroni.com/products/trackball-breakout)
14* Hardware availability: [check my github](https://github.com/MangoIV) 14* Hardware Availability: [MangoIV's GitHub](https://github.com/MangoIV/dracuLad)
15 15
16Make example for this keyboard (after setting up your build env): 16Make example for this keyboard (after setting up your build env):
17 17
18 make draculad:default 18 make draculad:default
19 19
20or for the version using the pimoroni trackball 20or for the version using the Pimoroni trackball:
21 21
22 make draculad:pimoroni 22 make draculad:pimoroni
23 23
24Flashing example for dfu and catarina respectively (replace default with the name of your keymap) 24Flashing example for DFU and Caterina respectively (replace `default` with the name of your keymap):
25 25
26 make draculad:default:dfu 26 make draculad:default:dfu
27
28 make draculad:default:flash 27 make draculad:default:flash
29
30 28
31When flashing the first time using handedness by eeprom, use the [qmk guide for that topic](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom) 29When flashing the first time using handedness by EEPROM, use the [QMK guide for that topic](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom).
32 30
33See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). 31See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).