mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-01-18 15:53:26 +00:00
Merge remote-tracking branch 'origin/develop' into xap
This commit is contained in:
commit
c4872f8fa5
@ -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.
|
||||
|
@ -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.
|
||||
|
26
keyboards/gummykey/config.h
Normal file
26
keyboards/gummykey/config.h
Normal 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
|
4
keyboards/gummykey/gummykey.c
Normal file
4
keyboards/gummykey/gummykey.c
Normal file
@ -0,0 +1,4 @@
|
||||
// Copyright 2023 Gummor (@gumorr)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "gummykey.h"
|
28
keyboards/gummykey/gummykey.h
Normal file
28
keyboards/gummykey/gummykey.h
Normal 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 } \
|
||||
}
|
89
keyboards/gummykey/info.json
Normal file
89
keyboards/gummykey/info.json
Normal 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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
32
keyboards/gummykey/keymaps/default/keymap.c
Normal file
32
keyboards/gummykey/keymaps/default/keymap.c
Normal 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
|
||||
),
|
||||
|
||||
};
|
27
keyboards/gummykey/readme.md
Normal file
27
keyboards/gummykey/readme.md
Normal 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
|
13
keyboards/gummykey/rules.mk
Normal file
13
keyboards/gummykey/rules.mk
Normal 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
|
Loading…
Reference in New Issue
Block a user