1
0

Compare commits

...

11 Commits

Author SHA1 Message Date
Ryan
d92ef59f24 Update macOS install script (#21854) 2023-09-01 09:26:48 +10:00
Idan Kamara
9614c3adfa [keyboard] add sweeq, a ferris/sweep variant with diodes (#21597) 2023-08-29 21:41:44 -07:00
Andrew Kannan
adef366e0c CannonKeys Meetup Pad 2023 (#21806)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-08-29 18:08:51 -07:00
Joel Challis
c2a81d8fd4 Revert "fix 60_hhkb ASCII diagram (#21813)" (#21869)
This reverts commit af2d6ea128.
2023-08-30 01:47:15 +01:00
Lasse Luttermann
ce51fdfe51 doio/kb16: Added timeout option for OLED boot logo. (#21823) 2023-08-30 01:34:10 +01:00
Laneware
fbb61c3b1d Update keymap.c to add encoder (#21469)
* Update keymap.c to add encoder

* Fix build

---------

Co-authored-by: zvecr <git@zvecr.com>
2023-08-30 01:24:13 +01:00
Joel Challis
281541fe1b Fix invalid encoder_map declaration (#21868) 2023-08-30 01:07:38 +01:00
Duncan Sutherland
6d7344428a fix 60_jis keymap.c (#21820) 2023-08-30 01:06:46 +01:00
Adam Price
4769f6d419 chore(ferris/test): visually format keymap (#21851)
... and set all keys to printable characters (as described in the
keymap's readme)
2023-08-30 00:43:47 +01:00
Duncan Sutherland
af2d6ea128 fix 60_hhkb ASCII diagram (#21813) 2023-08-30 00:43:08 +01:00
Joel Challis
11a8101301 Fix compilation of dynamic_keymap.c without VIA (#21858) 2023-08-29 14:28:09 +01:00
24 changed files with 439 additions and 27 deletions

View File

@@ -0,0 +1,40 @@
{
"manufacturer": "CannonKeys",
"keyboard_name": "Meetup Pad 2023",
"maintainer": "awkannan",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B11", "B10", "B2", "B0"],
"rows": ["B1", "A7"]
},
"processor": "STM32F072",
"url": "https://cannonkeys.com",
"usb": {
"device_version": "0.0.1",
"pid": "0x2023",
"vid": "0xCA04"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [1, 0], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1, "y": 0},
{"matrix": [1, 1], "x": 0, "y": 1},
{"matrix": [0, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 0, "y": 2},
{"matrix": [0, 2], "x": 1, "y": 2},
{"matrix": [1, 3], "x": 0, "y": 3},
{"matrix": [0, 3], "x": 1, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,20 @@
// Copyright 2023 Andrew Kannan
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_1, KC_2,
KC_3, KC_4,
KC_5, KC_6,
KC_7, MO(1)
),
[1] = LAYOUT(
QK_BOOT, KC_8,
KC_9, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,35 @@
// Copyright 2023 Andrew Kannan
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_keycodes {
MYMACRO = QK_KB_0,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
MYMACRO, KC_1,
KC_2, KC_3,
KC_4, KC_5,
KC_6, MO(1)
),
[1] = LAYOUT(
QK_BOOT, KC_7,
KC_8, KC_9,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case MYMACRO:
if (record->event.pressed) {
SEND_STRING("I went to the CannonKeys 2023 meetup and all I got was this macropad");
}
break;
}
return true;
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,18 @@
# CannonKeys Meetup Pad 2023
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
* Hardware Supported: STM32F072CBT6
Make example for this keyboard (after setting up your build environment):
make cannonkeys/meetuppad2023:default
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 (top right on this board) and plug in the keyboard
* **Physical reset button**: Swap the boot switch on the back of the PCB to "1" and hit the reset button
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF

View File

@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },

View File

@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },

View File

@@ -20,6 +20,11 @@
// OLED animation
#include "./lib/logo.h"
// Default timeout for displaying boot logo.
#ifndef OLED_LOGO_TIMEOUT
#define OLED_LOGO_TIMEOUT 5000
#endif
#ifdef OLED_ENABLE
uint16_t startup_timer;
@@ -32,16 +37,14 @@
bool oled_task_kb(void) {
static bool finished_logo = false;
if ((timer_elapsed(startup_timer) < 5000) && !finished_logo) {
if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) {
render_logo();
} else {
finished_logo = true;
if (!oled_task_user()) {
return false;
}
}
return true;
}
#endif

View File

@@ -7,7 +7,13 @@ void matrix_init_user(void) {
//debug_mouse=true;
}
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P0, DB_TOGG, KC_P2, KC_P3)
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
KC_1, KC_2, KC_3, KC_4
)
};
// clang-format on

View File

@@ -0,0 +1,6 @@
// Copyright 2023 Idan Kamara (@idank)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define MASTER_RIGHT

View File

@@ -0,0 +1,80 @@
{
"url": "https://github.com/idank/keyboards/tree/main/sweeq",
"maintainer": "idank",
"keyboard_name": "Sweeq",
"manufacturer": "idank",
"development_board": "promicro",
"usb": {
"vid": "0xC3AB",
"pid": "0x3139",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": [ "F4", "F5", "F6", "F7", "B1" ],
"rows": [ "D4", "C6", "D7", "E6" ]
},
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
"soft_serial_pin": "D2"
},
"community_layouts": ["split_3x5_2"],
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x5_2"
},
"layouts": {
"LAYOUT_split_3x5_2": {
"layout": [
{"x": 0, "y": 0.93, "matrix": [0, 0]},
{"x": 1, "y": 0.31, "matrix": [0, 1]},
{"x": 2, "y": 0, "matrix": [0, 2]},
{"x": 3, "y": 0.28, "matrix": [0, 3]},
{"x": 4, "y": 0.42, "matrix": [0, 4]},
{"x": 7, "y": 0.42, "matrix": [4, 4]},
{"x": 8, "y": 0.28, "matrix": [4, 3]},
{"x": 9, "y": 0, "matrix": [4, 2]},
{"x": 10, "y": 0.31, "matrix": [4, 1]},
{"x": 11, "y": 0.93, "matrix": [4, 0]},
{"x": 0, "y": 1.93, "matrix": [1, 0]},
{"x": 1, "y": 1.31, "matrix": [1, 1]},
{"x": 2, "y": 1, "matrix": [1, 2]},
{"x": 3, "y": 1.28, "matrix": [1, 3]},
{"x": 4, "y": 1.42, "matrix": [1, 4]},
{"x": 7, "y": 1.42, "matrix": [5, 4]},
{"x": 8, "y": 1.28, "matrix": [5, 3]},
{"x": 9, "y": 1, "matrix": [5, 2]},
{"x": 10, "y": 1.31, "matrix": [5, 1]},
{"x": 11, "y": 1.93, "matrix": [5, 0]},
{"x": 0, "y": 2.93, "matrix": [2, 0]},
{"x": 1, "y": 2.31, "matrix": [2, 1]},
{"x": 2, "y": 2, "matrix": [2, 2]},
{"x": 3, "y": 2.28, "matrix": [2, 3]},
{"x": 4, "y": 2.42, "matrix": [2, 4]},
{"x": 7, "y": 2.42, "matrix": [6, 4]},
{"x": 8, "y": 2.28, "matrix": [6, 3]},
{"x": 9, "y": 2, "matrix": [6, 2]},
{"x": 10, "y": 2.31, "matrix": [6, 1]},
{"x": 11, "y": 2.93, "matrix": [6, 0]},
{"x": 3.5, "y": 3.75, "matrix": [3, 3]},
{"x": 4.5, "y": 4, "matrix": [3, 4]},
{"x": 6.5, "y": 4, "matrix": [7, 4]},
{"x": 7.5, "y": 3.75, "matrix": [7, 3]}
]
}
}
}

View File

@@ -0,0 +1,21 @@
// Copyright 2023 Idan Kamara (@idank)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// Set the mouse settings to a comfortable speed/accuracy trade-off,
// assuming a screen refresh rate of 60 Htz or higher
// The default is 50. This makes the mouse ~3 times faster and more accurate
#define MOUSEKEY_INTERVAL 16
// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
// give it more time to accelerate to max speed to retain precise control over short distances.
#define MOUSEKEY_TIME_TO_MAX 40
// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
#define MOUSEKEY_DELAY 100
// It makes sense to use the same delay for the mouseweel
#define MOUSEKEY_WHEEL_DELAY 100
// The default is 100
#define MOUSEKEY_WHEEL_INTERVAL 50
// The default is 40
#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
#define QUICK_TAP_TERM 0

View File

@@ -0,0 +1,107 @@
{
"version": 1,
"notes": "sweeq default keymap",
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
"keyboard": "idank/sweeq",
"keymap": "default",
"layout": "LAYOUT_split_3x5_2",
"layers": [
["KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T",
"KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P",
"LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G",
"KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)",
"KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B",
"KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH",
"KC_P0" , "KC_BSPC",
"LT(7,KC_SPC)", "KC_P1"
],
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS",
"KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS",
"KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS"
],
["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS",
"KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)",
"KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS"
],
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
"KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS",
"KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
"RGB_RMOD" , "KC_TRNS",
"KC_TRNS" , "RGB_MOD"
],
["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT",
"KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC",
"KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_VOLD" , "KC_TRNS",
"KC_TRNS" , "KC_VOLU"
],
["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10",
"KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12",
"KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS"
],
["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS",
"KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS"
],
["KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL",
"KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS",
"DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS",
"DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "QK_BOOT",
"KC_TRNS" , "KC_TAB",
"KC_NO" , "KC_TRNS"
]
],
"author": "idank"
}

View File

@@ -0,0 +1 @@
See the readme of the Ferris [default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default).

View File

@@ -0,0 +1,7 @@
// Copyright 2023 Idan Kamara (@idank)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// Good defaults for home row modifiers
#define TAPPING_TERM 230

View File

@@ -0,0 +1,36 @@
// Copyright 2023 Idan Kamara (@idank)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define KC_CTSC RCTL_T(KC_SCLN)
#define KC_CTLA LCTL_T(KC_A)
#define KC_LSHZ LSFT_T(KC_Z)
#define KC_RLSH RSFT_T(KC_SLSH)
#define KC_SPM2 LT(2, KC_SPC)
#define KC_BSM1 LT(1, KC_BSPC)
#define KC_GUTA GUI_T(KC_TAB)
#define KC_CLGV CTL_T(KC_GRV)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_CTLA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_LSHZ, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RLSH,
KC_CLGV, KC_BSM1, KC_SPM2, KC_GUTA
),
[1] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
QK_GESC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_ENT,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, QK_BOOT,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@@ -0,0 +1,31 @@
# Sweeq
![sweeq](https://i.imgur.com/TGSyHHxh.png)
*Sweeq is a Ferris Sweep clone that uses diodes, instead of the latter's direct pin matrix.*
The primary goal is to free up the SDA/SCL pins so they can be used by auxiliary devices such as a trackball, trackpoint or an OLED screen.
Other than the diode changes and the ability to use hotswap sockets, this keyboard is identical to the original Sweep.
* Keyboard Maintainer: [@idank](https://github.com/idank)
* Hardware Supported: [sweeq](https://github.com/idank/keyboards/tree/main/sweeq)
* Hardware Availability: *[holykeebs](https://holykeebs.com)*
Make example for this keyboard (after setting up your build environment):
make idank/sweeq:default
Flashing example for this keyboard:
make idank/sweeq: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

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -41,24 +41,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS,
KC_KP_4, KC_KP_5, KC_KP_6,
KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER,
KC_KP_0, KC_KP_DOT),
[1] = LAYOUT_numpad(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS),
[2] = LAYOUT_numpad(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS), };
KC_KP_0, KC_KP_DOT)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}
};
#endif

View File

@@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_INT3, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_RCTL
)
};

View File

@@ -26,6 +26,7 @@
# include "via.h"
# define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END)
#else
# include "eeconfig.h"
# define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE)
#endif

View File

@@ -19,8 +19,13 @@ _qmk_install() {
# https://github.com/qmk/homebrew-qmk
brew install qmk/qmk/qmk
# Conflicts with new toolchain formulae
brew uninstall --ignore-dependencies arm-gcc-bin@8 >/dev/null 2>&1
# Keg-only, so need to be manually linked
brew link --force avr-gcc@8
brew link --force arm-gcc-bin@8
brew link --force arm-none-eabi-binutils
brew link --force arm-none-eabi-gcc@8
python3 -m pip install -r $QMK_FIRMWARE_DIR/requirements.txt
}