Merge remote-tracking branch 'origin/develop' into xap

This commit is contained in:
QMK Bot 2023-03-06 19:26:15 +00:00
commit c4872f8fa5
9 changed files with 231 additions and 0 deletions

View File

@ -79,6 +79,16 @@ If you're using a custom transport (communication method), then you will also ne
SPLIT_TRANSPORT = custom
```
### Layout Macro
Configuring your layout in a split keyboard works slightly differently to a non-split keyboard. Take for example the following layout. The top left numbers refer to the matrix row and column, and the bottom right are the order of the keys in the layout:
![Physical layout](https://i.imgur.com/QeY6kMQ.png)
Since the matrix scanning procedure operates on entire rows, it first populates the left half's rows, then the right half's. Thus, the matrix as QMK views it has double the rows instead of double the columns:
![Matrix](https://i.imgur.com/4wjJzBU.png)
### Setting Handedness
By default, the firmware does not know which side is which; it needs some help to determine that. There are several ways to do this, listed in order of precedence.

View File

@ -150,6 +150,8 @@ In the above example,
* It must conform to the [layout guidelines](hardware_keyboard_guidelines.md#ltkeyboard_namehgt)
* `"matrix": [0, 0]` defines the electrical position
?> See also: [Split Keyboard Layout Macro](https://docs.qmk.fm/#/feature_split_keyboard?id=layout-macro) and [Matrix to Physical Layout](https://docs.qmk.fm/#/understanding_qmk?id=matrix-to-physical-layout-map).
## Additional Configuration
There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config.md). The following sections cover the process for when an `info.json` option is unavailable.

View File

@ -0,0 +1,26 @@
// Copyright 2023 Gummor (@gumorr)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2 }
#define USE_I2C
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

View File

@ -0,0 +1,4 @@
// Copyright 2023 Gummor (@gumorr)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "gummykey.h"

View File

@ -0,0 +1,28 @@
// Copyright 2023 Gummor (@gumorr)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"
#define ___ KC_NO
#define LAYOUT_split_4x6_5( \
L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \
L10, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, R10, \
L20, L21, L22, L23, L24, L25, R25, R24, R23, R22, R21, R20, \
L30, L31, L32, L33, L34, L35, R35, R34, R33, R32, R31, R30, \
L40, L41, L42, L44, L45, R45, R44, R42, R41, R40 \
) \
{ \
{ L00, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ L30, L31, L32, L33, L34, L35 }, \
{ L40, L41, L42, ___, L44, L45 }, \
{ R00, R01, R02, R03, R04, R05 }, \
{ R10, R11, R12, R13, R14, R15 }, \
{ R20, R21, R22, R23, R24, R25 }, \
{ R30, R31, R32, R33, R34, R35 }, \
{ R40, R41, R42, ___, R44, R45 } \
}

View File

@ -0,0 +1,89 @@
{
"keyboard_name": "GummyKey",
"manufacturer": "Gumorr",
"url": "https://github.com/gumorr/GummyKey",
"maintainer": "Gumorr",
"usb": {
"vid": "0xAA12",
"pid": "0x0001",
"device_version": "1.0.0"
},
"processor": "atmega32u4",
"bootloader": "caterina",
"diode_direction": "ROW2COL",
"layouts": {
"LAYOUT_split_4x6_5": {
"layout":
[
{"x":0.25, "y":0},
{"x":1.25, "y":0},
{"x":2.25, "y":0},
{"x":3.25, "y":0},
{"x":4.25, "y":0.125},
{"x":5.25, "y":0.25},
{"x":0.25, "y":1},
{"x":1.25, "y":1},
{"x":2.25, "y":1},
{"x":3.25, "y":1},
{"x":4.25, "y":1.125},
{"x":5.25, "y":1.25},
{"x":0, "y":2, "w":1.25},
{"x":1.25, "y":2},
{"x":2.25, "y":2},
{"x":3.25, "y":2},
{"x":4.25, "y":2.125},
{"x":5.25, "y":2.25},
{"x":0, "y":3, "w":1.25},
{"x":1.25, "y":3},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3.125},
{"x":5.25, "y":3.25},
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4},
{"x":2.25, "y":4},
{"x":3.5, "y":4.25, "w":2.25},
{"x":6.75, "y":4.25},
{"x":13.25, "y":0},
{"x":12.25, "y":0},
{"x":11.25, "y":0},
{"x":10.25, "y":0},
{"x":9.25, "y":0.125},
{"x":8.25, "y":0.25},
{"x":13.25, "y":1},
{"x":12.25, "y":1},
{"x":11.25, "y":1},
{"x":10.25, "y":1},
{"x":9.25, "y":1.125},
{"x":8.25, "y":1.25},
{"x":13.25, "y":2, "w":1.25},
{"x":12.25, "y":2},
{"x":11.25, "y":2},
{"x":10.25, "y":2},
{"x":9.25, "y":2.125},
{"x":8.25, "y":2.25},
{"x":13.25, "y":3, "w":1.25},
{"x":12.25, "y":3},
{"x":11.25, "y":3},
{"x":10.25, "y":3},
{"x":9.25, "y":3.125},
{"x":8.25, "y":3.25},
{"x":13.25, "y":4, "w":1.25},
{"x":12.25, "y":4},
{"x":11.25, "y":4},
{"x":8, "y":4.25, "w":2.25},
{"x":7, "y":4.25}
]
}
}
}

View File

@ -0,0 +1,32 @@
// Copyright 2023 Gummor (@gumorr)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE,
_FUNCTION
};
#define FUNCT MO(_FUNCTION)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_split_4x6_5(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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, FUNCT, FUNCT, KC_SPC, KC_RALT, KC_APP, KC_RCTL
),
[_FUNCTION] = LAYOUT_split_4x6_5(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_CAPS,
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, KC_RSFT,
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT
),
};

View File

@ -0,0 +1,27 @@
# GummyKey
![gummykey](https://i.imgur.com/R6ffs2Bh.png)
a 4x6+5 split keyboard i made
* Keyboard Maintainer: [Gummor](https://github.com/gumorr)
* Hardware Supported: Pro Micro
* Hardware Availability: [Github](https://github.com/gumorr/GummyKey)
Make example for this keyboard (after setting up your build environment):
make gummykey:default
Flashing example for this keyboard:
make gummykey: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,13 @@
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
SPLIT_KEYBOARD = yes