Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Skyloong/Gk61 PRO keyboard #21450

Merged
merged 37 commits into from
Oct 12, 2023
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
fffd892
Add GK61 PRO keyboard
JZ-Skyloong Jul 4, 2023
d795c90
Update info.json regarding to dunk2k suggestion
JZ-Skyloong Jul 4, 2023
19ad514
Update keymap files regarding to dunk2k suggestion
JZ-Skyloong Jul 4, 2023
f2dbc40
Update keyboards/skyloong/gk61/pro/config.h
JZ-Skyloong Jul 5, 2023
1e4e669
Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c
JZ-Skyloong Jul 5, 2023
8d9e9c9
Update keyboards/skyloong/gk61/pro/keymaps/via/keymap.c
JZ-Skyloong Jul 5, 2023
d9bedba
Update keyboards/skyloong/gk61/pro/rules.mk
JZ-Skyloong Jul 5, 2023
fdc7074
Update keyboards/skyloong/gk61/pro/info.json
JZ-Skyloong Jul 5, 2023
9f1784e
Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c
JZ-Skyloong Jul 5, 2023
db32dfb
Update keyboards/skyloong/gk61/pro/info.json
JZ-Skyloong Jul 5, 2023
5d17774
Update keyboards/skyloong/gk61/pro/config.h
JZ-Skyloong Jul 5, 2023
23415f2
Update keyboards/skyloong/gk61/pro/info.json
JZ-Skyloong Jul 5, 2023
68f7e24
Update keyboards/skyloong/gk61/pro/info.json
JZ-Skyloong Jul 5, 2023
11864c1
Update keyboards/skyloong/gk61/pro/config.h
JZ-Skyloong Jul 5, 2023
55464ea
Update keyboards/skyloong/gk61/pro/pro.c
JZ-Skyloong Jul 5, 2023
8839fcb
Correct PCB feature description in readme.
JZ-Skyloong Jul 5, 2023
56a2eed
Update keyboards/skyloong/gk61/pro/config.h
JZ-Skyloong Jul 5, 2023
0aba054
Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c
JZ-Skyloong Jul 5, 2023
0688246
update config.h to define __flash.
JZ-Skyloong Jul 6, 2023
f8eca1a
Update keyboards/skyloong/gk61/pro/config.h
JZ-Skyloong Jul 7, 2023
bc5a55a
add hardware availabilty international website
JZ-Skyloong Jul 8, 2023
6660124
update via/rules.mk for encoder map
JZ-Skyloong Jul 12, 2023
c699552
Revert "update via/rules.mk for encoder map"
JZ-Skyloong Jul 14, 2023
f41abb4
Update keyboards/skyloong/gk61/pro/config.h
JZ-Skyloong Jul 14, 2023
4e82266
Update rules.mk
JZ-Skyloong Jul 14, 2023
58119eb
1.update readme to correct mcu type ; 2. update pro.c to improve indi…
JZ-Skyloong Jul 28, 2023
fd3ad89
update pro.c and config.h to save power when USB suspend.
JZ-Skyloong Jul 31, 2023
b8d98ff
Merge branch 'develop' into gk61_pro
JZ-Skyloong Sep 8, 2023
787691a
update info.json
JZ-Skyloong Sep 8, 2023
f72af0c
Update RGB animations---delete rainbow_beacon and rainbow_pinwheels
JZ-Skyloong Sep 9, 2023
374de8a
Update keymap.c and layer indication.
JZ-Skyloong Sep 15, 2023
e4221cf
Enable I2C DMA
JZ-Skyloong Sep 18, 2023
e50fe76
Update keyboards/skyloong/gk61/pro/info.json
JZ-Skyloong Oct 9, 2023
3c5f2c6
Update keyboards/skyloong/gk61/pro/info.json
JZ-Skyloong Oct 9, 2023
1e9e090
enable encoder map in default keymaps
JZ-Skyloong Oct 9, 2023
c652b0b
Merge branch 'develop' into gk61_pro
JZ-Skyloong Oct 10, 2023
b139cd2
Update keyboards/skyloong/gk61/pro/info.json
JZ-Skyloong Oct 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions keyboards/skyloong/gk61/pro/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright 2023 linlin012 (@linlin012)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once


#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 64
#define CAPS_LOCK_INDEX 28
#define WIN_MOD_INDEX 16
#define MAC_MOD_INDEX 17
#define WIN_LOCK_INDEX 54

/* RGB Matrix Animation modes. Explicitly enabled
* For full list of effects, see:
* https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
*/

#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
7 changes: 7 additions & 0 deletions keyboards/skyloong/gk61/pro/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// Copyright 2023 linlin012 (@linlin012)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once

#define HAL_USE_I2C TRUE

#include_next <halconf.h>
352 changes: 352 additions & 0 deletions keyboards/skyloong/gk61/pro/info.json

Large diffs are not rendered by default.

44 changes: 44 additions & 0 deletions keyboards/skyloong/gk61/pro/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Ctl│GUI│Alt│ │Spc│Mut│ │ |Spc|Alt│App│Ctl│ │Mo1|
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
*/
[0] = LAYOUT_all(
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_EQL, KC_BSPC,
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,
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_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1)
),

[1] = LAYOUT_all(
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, _______,
_______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)

};

#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }
};
#endif
JZ-Skyloong marked this conversation as resolved.
Show resolved Hide resolved

68 changes: 68 additions & 0 deletions keyboards/skyloong/gk61/pro/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

enum layer_names {
_WIN,
_WIN_LOCK,
_MAC,
_INDEX1
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │Ctl│GUI│Alt│ │Spc│Spc│Mut│ |Spc|Alt│App│Ctl│ │Mo3|
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
*/
[_WIN] = LAYOUT_all(
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_EQL, KC_BSPC,
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,
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_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(3)
),

[_WIN_LOCK] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, MO(3)
),

[_MAC] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LALT, KC_LGUI, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, MO(3)
),

[_INDEX1] = LAYOUT_all(
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,
_______, _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______,
_______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______,
_______, TO(1), _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
)
};

#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_WIN_LOCK] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[_MAC] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[_INDEX1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }
};
#endif

2 changes: 2 additions & 0 deletions keyboards/skyloong/gk61/pro/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes
11 changes: 11 additions & 0 deletions keyboards/skyloong/gk61/pro/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Copyright 2023 linlin012 (@linlin012)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once

#include_next <mcuconf.h>

#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE

#undef STM32_I2C_USE_DMA
#define STM32_I2C_USE_DMA FALSE
153 changes: 153 additions & 0 deletions keyboards/skyloong/gk61/pro/pro.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
// Copyright 2023 linlin012 (@linlin012)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"

const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, CS1_SW1, CS2_SW1, CS3_SW1},
{0, CS1_SW2, CS2_SW2, CS3_SW2},
{0, CS1_SW3, CS2_SW3, CS3_SW3},
{0, CS1_SW4, CS2_SW4, CS3_SW4},
{0, CS1_SW5, CS2_SW5, CS3_SW5},
{0, CS1_SW6, CS2_SW6, CS3_SW6},
{0, CS1_SW7, CS2_SW7, CS3_SW7},
{0, CS1_SW8, CS2_SW8, CS3_SW8},
{0, CS1_SW9, CS2_SW9, CS3_SW9},
{0, CS1_SW10, CS2_SW10, CS3_SW10},
{0, CS1_SW11, CS2_SW11, CS3_SW11},
{0, CS16_SW1, CS17_SW1, CS18_SW1},
{0, CS16_SW2, CS17_SW2, CS18_SW2},
{0, CS16_SW3, CS17_SW3, CS18_SW3},

{0, CS4_SW1, CS5_SW1, CS6_SW1},
{0, CS4_SW2, CS5_SW2, CS6_SW2},
{0, CS4_SW3, CS5_SW3, CS6_SW3},
{0, CS4_SW4, CS5_SW4, CS6_SW4},
{0, CS4_SW5, CS5_SW5, CS6_SW5},
{0, CS4_SW6, CS5_SW6, CS6_SW6},
{0, CS4_SW7, CS5_SW7, CS6_SW7},
{0, CS4_SW8, CS5_SW8, CS6_SW8},
{0, CS4_SW9, CS5_SW9, CS6_SW9},
{0, CS4_SW10, CS5_SW10, CS6_SW10},
{0, CS4_SW11, CS5_SW11, CS6_SW11},
{0, CS16_SW4, CS17_SW4, CS18_SW4},
{0, CS16_SW5, CS17_SW5, CS18_SW5},
{0, CS16_SW6, CS17_SW6, CS18_SW6},

{0, CS7_SW1, CS8_SW1, CS9_SW1},
{0, CS7_SW2, CS8_SW2, CS9_SW2},
{0, CS7_SW3, CS8_SW3, CS9_SW3},
{0, CS7_SW4, CS8_SW4, CS9_SW4},
{0, CS7_SW5, CS8_SW5, CS9_SW5},
{0, CS7_SW6, CS8_SW6, CS9_SW6},
{0, CS7_SW7, CS8_SW7, CS9_SW7},
{0, CS7_SW8, CS8_SW8, CS9_SW8},
{0, CS7_SW9, CS8_SW9, CS9_SW9},
{0, CS7_SW10, CS8_SW10, CS9_SW10},
{0, CS7_SW11, CS8_SW11, CS9_SW11},
{0, CS16_SW7, CS17_SW7, CS18_SW7},
{0, CS16_SW8, CS17_SW8, CS18_SW8},

{0, CS10_SW1, CS11_SW1, CS12_SW1},
{0, CS10_SW2, CS11_SW2, CS12_SW2},
{0, CS10_SW3, CS11_SW3, CS12_SW3},
{0, CS10_SW4, CS11_SW4, CS12_SW4},
{0, CS10_SW5, CS11_SW5, CS12_SW5},
{0, CS10_SW6, CS11_SW6, CS12_SW6},
{0, CS10_SW7, CS11_SW7, CS12_SW7},
{0, CS10_SW8, CS11_SW8, CS12_SW8},
{0, CS10_SW9, CS11_SW9, CS12_SW9},
{0, CS10_SW10, CS11_SW10, CS12_SW10},
{0, CS10_SW11, CS11_SW11, CS12_SW11},
{0, CS16_SW9, CS17_SW9, CS18_SW9},

{0, CS13_SW1, CS14_SW1, CS15_SW1},
{0, CS13_SW2, CS14_SW2, CS15_SW2},
{0, CS13_SW3, CS14_SW3, CS15_SW3},
{0, CS13_SW4, CS14_SW4, CS15_SW4},
{0, CS13_SW5, CS14_SW5, CS15_SW5},
{0, CS13_SW5, CS14_SW5, CS15_SW5},
{0, CS13_SW6, CS14_SW6, CS15_SW6},
{0, CS13_SW7, CS14_SW7, CS15_SW7},
{0, CS13_SW8, CS14_SW8, CS15_SW8},
{0, CS13_SW9, CS14_SW9, CS15_SW9},
{0, CS13_SW10, CS14_SW10, CS15_SW10}
};

#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/

bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
if (!process_record_user(keycode, record)) {
return false;
}
switch (keycode) {
# ifdef RGB_MATRIX_ENABLE
case RGB_TOG:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
rgb_matrix_set_color_all(0, 0, 0);
} break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
} break;
}
}
return false;
# endif
}
return true;
}

bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
return false;
}
// RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);

if (host_keyboard_led_state().caps_lock) {
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255);
} else {
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0);
}
}

if (get_highest_layer(layer_state) == 2) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
} else {
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
}
}

if (get_highest_layer(layer_state) == 1) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_LOCK_INDEX, 255, 255, 255);
} else {
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_LOCK_INDEX, 0, 0, 0);
}
}

if (get_highest_layer(layer_state) == 3) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_LOCK_INDEX, 255, 255, 255);
} else {
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_LOCK_INDEX, 0, 0, 0);
}
}

return true;
}

#endif
33 changes: 33 additions & 0 deletions keyboards/skyloong/gk61/pro/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# GK61 PRO

![GK61 PRO](https://i.imgur.com/DTetyVLh.jpg)

## The PCB features:
* QMK & VIA compatibility
* RGB Matrix backlight
* The space bar position switch can be interchanged with encoder module.


The following is the QMK Firmware for the Destop 60% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd

* Keyboard Maintainer: [linlin012](https://github.com/linlin012)
* Hardware Supported: DestopPCB for Skyloong keylayout 60%, STM32F103C8T6
* Hardware Availability: http://www.skyloong.com.cn https://skyloong.vip

Make example for this keyboard (after setting up your build environment):

make skyloong/gk61/pro:default

Flashing example for this keyboard:

make skyloong/gk61/pro:default:flash

See 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).

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
1 change: 1 addition & 0 deletions keyboards/skyloong/gk61/pro/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# File intentionally blank