Merge branch 'master' into hfdkb_m2

pull/19853/head
jonylee@hfd 2024-03-23 14:02:37 +08:00 committed by GitHub
commit 772335cc79
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
90 changed files with 2617 additions and 69 deletions

View File

@ -5,8 +5,10 @@ ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),)
$(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.)
endif
# TODO: opt in rather than assume everything uses a pro micro
PIN_COMPATIBLE ?= promicro
ifneq (,$(filter $(MCU),atmega32u4))
# TODO: opt in rather than assume everything uses a pro micro
PIN_COMPATIBLE ?= promicro
endif
# Remove whitespace from any rule.mk provided vars
# - env cannot be overwritten but cannot have whitespace anyway
@ -16,6 +18,10 @@ ifneq ($(CONVERT_TO),)
# stash so we can overwrite env provided vars if needed
ACTIVE_CONVERTER=$(CONVERT_TO)
ifeq ($(PIN_COMPATIBLE),)
$(call CATASTROPHIC_ERROR,Converting to '$(CONVERT_TO)' not possible!)
endif
# glob to search each platfrorm and/or check for valid converter
CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/)
ifeq ($(CONVERTER),)

View File

@ -335,5 +335,9 @@
"key": "ES_CIRC",
"label": "^",
}
"ALGR(KC_NUHS)": {
"key": "ES_GRV",
"label": "`",
}
}
}

View File

@ -9,6 +9,7 @@ If there are any inconsistencies with these recommendations, you're best off [cr
- PR should be submitted using a non-`master` branch on the source repository
- this does not mean you target a different branch for your PR, rather that you're not working out of your own master branch
- if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](newbs_git_using_your_master_branch.md) page after merging -- (end of this document will contain the contents of the message)
- Note, frequently merging upstream with your branch is not needed and is discouraged. Valid reason for updating your branch may be resolving merge conflicts and pulling in new changes relevant to your PR.
- PRs should contain the smallest amount of modifications required for a single change to the codebase
- multiple keyboards at the same time is not acceptable
- **the smaller the PR, the higher likelihood of a quicker review, higher likelihood of quicker merge, and less chance of conflicts**
@ -43,10 +44,10 @@ If there are any inconsistencies with these recommendations, you're best off [cr
- PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`.
- vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps.
- #include QMK_KEYBOARD_H preferred to including specific board files
- `#include QMK_KEYBOARD_H` preferred to including specific board files
- prefer layer enums to #defines
- custom keycode enums must have first entry = SAFE_RANGE
- some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap
- custom keycode enums must have first entry = `QK_USER`
- some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap. Spaces are preferred to tabs
## Keyboard PRs
@ -81,6 +82,8 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- Encoder Configuration
- Bootmagic Configuration
- LED Indicator Configuration
- RGB Light Configuration
- RGB Matrix Configuration
- Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file.
- `readme.md`
- must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
@ -90,8 +93,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- a picture about the keyboard and preferably about the PCB, too
- images are not to be placed in the `qmk_firmware` repository
- images should be uploaded to an external image hosting service, such as [imgur](https://imgur.com/).
- if imgur is used, images should be resized appropriately: append "h" to the image url i.e. [https://i.imgur.com/vqgE7Ok.jpg](https://i.imgur.com/vqgE7Ok.jpg) becomes [https://i.imgur.com/vqgE7Ok**h**.jpg](https://i.imgur.com/vqgE7Okh.jpg)
- image links should link directly to the image, not a "preview" -- i.e. [https://imgur.com/vqgE7Ok](https://imgur.com/vqgE7Ok) should be [https://i.imgur.com/vqgE7Okh.jpg](https://i.imgur.com/vqgE7Okh.jpg) when using imgur
- image links should link directly to the image, not a "preview" -- i.e. [https://imgur.com/vqgE7Ok](https://imgur.com/vqgE7Ok) should be [https://i.imgur.com/vqgE7Ok.jpg](https://i.imgur.com/vqgE7Ok.jpg) when using imgur
- `rules.mk`
- removed `MIDI_ENABLE`, `FAUXCLICKY_ENABLE` and `HD44780_ENABLE`
- modified `# Enable Bluetooth with the Adafruit EZ-Key HID` -> `# Enable Bluetooth`
@ -204,7 +206,7 @@ Additionally, PR reviews are something that is done in our free time. We are not
## Example GPLv2 Header
```
/* Copyright 2021 Your Name (@yourgithub)
/* Copyright 2024 Your Name (@yourgithub)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -224,6 +226,6 @@ Additionally, PR reviews are something that is done in our free time. We are not
Or, optionally, using [SPDX identifier](https://spdx.org/licenses/) instead:
```
// Copyright 2021 Your Name (@yourgithub)
// Copyright 2024 Your Name (@yourgithub)
// SPDX-License-Identifier: GPL-2.0-or-later
```

View File

@ -39,15 +39,14 @@
/* SPI config for pmw3360 sensor. */
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN B1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
#define SPI_MOSI_PIN B2
#define SPI_MOSI_PIN A7
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN B3
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5
/* PMW3360 settings. */
#define A1 PAL_LINE(GPIOA, 1)
#define POINTING_DEVICE_CS_PIN A1
#define PMW3360_CS_MODE 3
#define PMW3360_CS_DIVISOR 64

View File

@ -7,20 +7,19 @@
"driver": "ws2812"
},
"ws2812": {
"pin": "D3",
"pin": "A2",
"driver": "pwm"
},
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"matrix_pins": {
"cols": ["F5", "B6", "D7", "E6", "B4"],
"rows": ["F7", "C6", "D4", "B5"]
"cols": ["B2", "A4", "B4", "B5", "B8"],
"rows": ["B0", "B3", "A15", "B9"]
},
"diode_direction": "ROW2COL",
"split": {
"soft_serial_pin": "D2"
"soft_serial_pin": "A3"
},
"processor": "STM32F411",
"bootloader": "stm32-dfu"
"development_board": "stemcell"
}

View File

@ -1,5 +1,3 @@
CONVERT_TO = stemcell
# Build Options
# change yes to no to disable
#

View File

@ -39,15 +39,14 @@
/* SPI config for pmw3360 sensor. */
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN B1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
#define SPI_MOSI_PIN B2
#define SPI_MOSI_PIN A7
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN B3
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5
/* PMW3360 settings. */
#define A1 PAL_LINE(GPIOA, 1)
#define POINTING_DEVICE_CS_PIN A1
#define PMW3360_CS_MODE 3
#define PMW3360_CS_DIVISOR 64

View File

@ -7,20 +7,19 @@
"driver": "ws2812"
},
"ws2812": {
"pin": "D3",
"pin": "A2",
"driver": "pwm"
},
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"matrix_pins": {
"cols": ["F6", "F5", "B6", "D7", "E6", "B4"],
"rows": ["F7", "C6", "D4", "B5"]
"cols": ["B1", "B2", "A4", "B4", "B5", "B8"],
"rows": ["B0", "B3", "A15", "B9"]
},
"diode_direction": "ROW2COL",
"split": {
"soft_serial_pin": "D2"
"soft_serial_pin": "A3"
},
"processor": "STM32F411",
"bootloader": "stm32-dfu"
"development_board": "stemcell"
}

View File

@ -1,5 +1,3 @@
CONVERT_TO = stemcell
# Build Options
# change yes to no to disable
#

View File

@ -39,15 +39,14 @@
/* SPI config for pmw3360 sensor. */
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN B1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
#define SPI_MOSI_PIN B2
#define SPI_MOSI_PIN A7
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN B3
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5
/* PMW3360 settings. */
#define A1 PAL_LINE(GPIOA, 1)
#define POINTING_DEVICE_CS_PIN A1
#define PMW3360_CS_MODE 3
#define PMW3360_CS_DIVISOR 64

View File

@ -7,20 +7,19 @@
"driver": "ws2812"
},
"ws2812": {
"pin": "D3",
"pin": "A2",
"driver": "pwm"
},
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"matrix_pins": {
"cols": ["F6", "F5", "B6", "D7", "E6", "B4"],
"rows": ["F4", "F7", "C6", "D4", "B5"]
"cols": ["B1", "B2", "A4", "B4", "B5", "B8"],
"rows": ["B10", "B0", "B3", "A15", "B9"]
},
"diode_direction": "ROW2COL",
"split": {
"soft_serial_pin": "D2"
"soft_serial_pin": "A3"
},
"processor": "STM32F411",
"bootloader": "stm32-dfu"
"development_board": "stemcell"
}

View File

@ -1,5 +1,3 @@
CONVERT_TO = stemcell
# Build Options
# change yes to no to disable
#

View File

@ -7,20 +7,19 @@
"driver": "ws2812"
},
"ws2812": {
"pin": "D3",
"pin": "A2",
"driver": "pwm"
},
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"matrix_pins": {
"cols": ["F6", "F5", "B6", "D7", "E6", "B4"],
"rows": ["F4", "F7", "C6", "D4", "B5"]
"cols": ["B1", "B2", "A4", "B4", "B5", "B8"],
"rows": ["B10", "B0", "B3", "A15", "B9"]
},
"diode_direction": "ROW2COL",
"split": {
"soft_serial_pin": "D2"
"soft_serial_pin": "A3"
},
"processor": "STM32F411",
"bootloader": "stm32-dfu"
"development_board": "stemcell"
}

View File

@ -1,5 +1,3 @@
CONVERT_TO = stemcell
# Build Options
# change yes to no to disable
#

View File

@ -7,20 +7,19 @@
"driver": "ws2812"
},
"ws2812": {
"pin": "D3",
"pin": "A2",
"driver": "pwm"
},
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"matrix_pins": {
"cols": ["F5", "B6", "D7", "E6", "B4"],
"rows": ["F7", "C6", "D4", "B5"]
"cols": ["B2", "A4", "B4", "B5", "B8"],
"rows": ["B0", "B3", "A15", "B9"]
},
"diode_direction": "ROW2COL",
"split": {
"soft_serial_pin": "D2"
"soft_serial_pin": "A3"
},
"processor": "STM32F411",
"bootloader": "stm32-dfu"
"development_board": "stemcell"
}

View File

@ -1,5 +1,3 @@
CONVERT_TO = stemcell
# Build Options
# change yes to no to disable
#

View File

@ -7,20 +7,19 @@
"driver": "ws2812"
},
"ws2812": {
"pin": "D3",
"pin": "A2",
"driver": "pwm"
},
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"matrix_pins": {
"cols": ["F6", "F5", "B6", "D7", "E6", "B4"],
"rows": ["F7", "C6", "D4", "B5"]
"cols": ["B1", "B2", "A4", "B4", "B5", "B8"],
"rows": ["B0", "B3", "A15", "B9"]
},
"diode_direction": "ROW2COL",
"split": {
"soft_serial_pin": "D2"
"soft_serial_pin": "A3"
},
"processor": "STM32F411",
"bootloader": "stm32-dfu"
"development_board": "stemcell"
}

View File

@ -1,5 +1,3 @@
CONVERT_TO = stemcell
# Build Options
# change yes to no to disable
#

View File

@ -0,0 +1,104 @@
{
"manufacturer": "Jotix",
"keyboard_name": "jotlily60",
"maintainer" : "jotix",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/jotlily60",
"usb": {
"vid": "0x4A4F",
"pid": "0x2332",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"development_board": "promicro",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [ "D0", "D4", "C6", "D7", "E6", "B4", "B5" ],
"rows": [ "F7", "B1", "B3", "B2", "B6" ],
},
"split": {
"enabled": true,
"soft_serial_pin": "D3"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.5},
{"matrix": [0, 1], "x": 1, "y": 0.5},
{"matrix": [0, 2], "x": 2, "y": 0.25},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.25},
{"matrix": [0, 5], "x": 5, "y": 0.25},
{"matrix": [5, 5], "x": 10, "y": 0.25},
{"matrix": [5, 4], "x": 11, "y": 0.25},
{"matrix": [5, 3], "x": 12, "y": 0},
{"matrix": [5, 2], "x": 13, "y": 0.25},
{"matrix": [5, 1], "x": 14, "y": 0.5},
{"matrix": [5, 0], "x": 15, "y": 0.5},
{"matrix": [1, 0], "x": 0, "y": 1.5},
{"matrix": [1, 1], "x": 1, "y": 1.5},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [6, 5], "x": 10, "y": 1.25},
{"matrix": [6, 4], "x": 11, "y": 1.25},
{"matrix": [6, 3], "x": 12, "y": 1},
{"matrix": [6, 2], "x": 13, "y": 1.25},
{"matrix": [6, 1], "x": 14, "y": 1.5},
{"matrix": [6, 0], "x": 15, "y": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2.5},
{"matrix": [2, 1], "x": 1, "y": 2.5},
{"matrix": [2, 2], "x": 2, "y": 2.25},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.25},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [7, 5], "x": 10, "y": 2.25},
{"matrix": [7, 4], "x": 11, "y": 2.25},
{"matrix": [7, 3], "x": 12, "y": 2},
{"matrix": [7, 2], "x": 13, "y": 2.25},
{"matrix": [7, 1], "x": 14, "y": 2.5},
{"matrix": [7, 0], "x": 15, "y": 2.5},
{"matrix": [3, 0], "x": 0, "y": 3.5},
{"matrix": [3, 1], "x": 1, "y": 3.5},
{"matrix": [3, 2], "x": 2, "y": 3.25},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3.25},
{"matrix": [3, 5], "x": 5, "y": 3.25},
{"matrix": [3, 6], "x": 6, "y": 3.5},
{"matrix": [8, 6], "x": 9, "y": 3.5},
{"matrix": [8, 5], "x": 10, "y": 3.25},
{"matrix": [8, 4], "x": 11, "y": 3.25},
{"matrix": [8, 3], "x": 12, "y": 3},
{"matrix": [8, 2], "x": 13, "y": 3.25},
{"matrix": [8, 1], "x": 14, "y": 3.5},
{"matrix": [8, 0], "x": 15, "y": 3.5},
{"matrix": [4, 2], "x": 2, "y": 4.25},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 4.25},
{"matrix": [4, 5], "x": 5, "y": 4.5},
{"matrix": [4, 6], "x": 6, "y": 4.75},
{"matrix": [9, 6], "x": 9, "y": 4.75},
{"matrix": [9, 5], "x": 10, "y": 4.5},
{"matrix": [9, 4], "x": 11, "y": 4.25},
{"matrix": [9, 3], "x": 12, "y": 4},
{"matrix": [9, 2], "x": 13, "y": 4.25}
]
}
}
}

View File

@ -0,0 +1,65 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layers {
_QWERTY,
_FN,
_ADJUST
};
#define FN MO(_FN)
#define ADJUST MO(_ADJUST)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
* +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
* | esc | Q | W | E | R | T | | Y | U | I | O | P | tab |
* +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
* | caps | A | S | D | F | G | | H | J | K | L | ; | ' |
* +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
* | shift | Z | X | C | V | B | { | } | N | M | , | . | / | enter |
* +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
* | alt | super | ctrl | space | fn | fn | bspc | del | meh | ralt |
* +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
*/
[_QWERTY] = LAYOUT (
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB,
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_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,KC_RCBR,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT,
KC_LALT,KC_LGUI,KC_LCTL,KC_SPC, FN, FN, KC_BSPC,KC_DEL, KC_MEH, KC_RALT
),
/* +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
* | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | _ |
* +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
* |adjust | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |
* +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
* | | F11 | F12 | F13 | F14 | F15 | | left | down | up | right | | | " |
* +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
* | | vol- | mute | vol+ | ` | ~ | [ | ] | home | end | pgup | pgdn | \ | |
* +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
* | | | | | | | | | | |
* +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
*/
[_FN] = LAYOUT (
KC_PLUS,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_UNDS,
ADJUST, 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_F13, KC_F14, KC_F15, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,KC_BSLS,KC_DQUO,
_______,KC_VOLD,KC_MUTE,KC_VOLU,KC_GRV, KC_TILD,KC_LBRC,KC_RBRC,KC_HOME,KC_END, KC_PGUP,KC_PGDN,KC_PIPE,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
),
[_ADJUST] = LAYOUT (
_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
_______,QK_BOOT,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
_______,_______,_______,DB_TOGG,_______,_______, _______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
),
};

View File

@ -0,0 +1,31 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT (
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB,
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_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,KC_RCBR,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT,
KC_LALT,KC_LGUI,KC_LCTL,KC_SPC, MO(1), MO(1), KC_BSPC,KC_DEL, KC_MEH, KC_RALT
),
[1] = LAYOUT (
KC_PLUS,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_UNDS,
MO(2), 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_F13, KC_F14, KC_F15, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,KC_BSLS,KC_DQUO,
_______,KC_VOLD,KC_MUTE,KC_VOLU,KC_GRV, KC_TILD,KC_LBRC,KC_RBRC,KC_HOME,KC_END, KC_PGUP,KC_PGDN,KC_PIPE,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
),
[2] = LAYOUT (
_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
_______,QK_BOOT,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
)
};

View File

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

View File

@ -0,0 +1,55 @@
# jotlily60
![jotlily60](https://i.imgur.com/I68WGmJh.jpg)
A split keyboard kit made by jotix, inspired in the Lily58 keyboard.
* Keyboard Maintainer: [jotix](https://github.com/jotix)
* Hardware Supported: Arduino Pro Micro
---
### Arduino Pro Micro Pinout
| Rows | 0 | 1 | 2 | 3 | 4 |
|-------------|----|----|----|----|----|
| Arduino pin | A0 | 15 | 14 | 16 | 10 |
| QMK pin | F7 | B1 | B3 | B2 | B6 |
| Columns | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
|-------------|----|----|----|----|----|----|----|
| Arduino pin | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| QMK pin | D0 | D4 | C6 | D7 | E6 | B4 | B5 |
| Serial | |
|-------------|-----|
| Arduino pin | TX0 |
| QMK pin | D3 |
---
### Compiling the Firmware
Compile example for this keyboard (after setting up your build environment):
qmk compile -kb handwired/jotlily60 -km default
---
### The Defaukt Keymap
+-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
| = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
+-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
| esc | Q | W | E | R | T | | Y | U | I | O | P | tab |
+-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
| caps | A | S | D | F | G | | H | J | K | L | ; | ' |
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| shift | Z | X | C | V | B | { | } | N | M | , | . | / | enter |
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| alt | super | ctrl | space | fn | fn | bspc | del | meh | ralt |
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
---
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).

View File

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

View File

@ -0,0 +1,38 @@
{
"manufacturer": "nwhirschfeld",
"keyboard_name": "TechnicPad",
"maintainer": "nwhirschfeld",
"build": {
"lto": true
},
"development_board": "promicro",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true
},
"matrix_pins": {
"direct": [
["D1"],
["D0"],
["D4"],
["C6"]
]
},
"url": "https://github.com/nwhirschfeld/TechnicPad",
"usb": {
"device_version": "0.0.1",
"pid": "0x5450",
"vid": "0x4E57"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "D1", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "D0", "matrix": [1, 0], "x": 0, "y": 1},
{"label": "D4", "matrix": [2, 0], "x": 1, "y": 0},
{"label": "C6", "matrix": [3, 0], "x": 1, "y": 1}
]
}
}
}

View File

@ -0,0 +1,8 @@
{
"keyboard": "technicpad",
"keymap": "default",
"layers": [
["KC_A", "KC_B", "KC_C", "KC_D"]
],
"layout": "LAYOUT"
}

View File

@ -0,0 +1,13 @@
{
"keyboard": "technicpad",
"keymap": "via",
"config": {
"features": {
"via": true
}
},
"layers": [
["KC_A", "KC_B", "KC_C", "KC_D"]
],
"layout": "LAYOUT"
}

View File

@ -0,0 +1,27 @@
# TechnicPad
![TechnicPad](https://i.imgur.com/LPD0KSL.jpg)
A 4% (2x2) macropad, that is compatible to technic building blocks.
* Keyboard Maintainer: [Niclas Hirschfeld](https://github.com/nwhirschfeld)
* Hardware Supported: Pro Micro boards
* Hardware Availability: for now TechnicPad is handwired and uses an Arduino pro micro. [TechnicPad repository](https://github.com/nwhirschfeld/TechnicPad)
Make example for this keyboard (after setting up your build environment):
make handwired/technicpad:default
Flashing example for this keyboard:
make handwired/technicpad: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 upper left key and plug in the keyboard
* **Physical reset**: Short the _RST_ and _GND_ pins of the PCB
* **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

@ -0,0 +1,37 @@
{
"manufacturer": "marshkeys.com",
"keyboard_name": "Flowerpad",
"maintainer": "Ethirallan",
"bootmagic": {
"matrix": [0, 1]
},
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true
},
"matrix_pins": {
"cols": ["F7", "F6", "F5"],
"rows": ["C6", "D4", "D0"]
},
"url": "marshkeys.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x466C",
"vid": "0x4D61"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 1], "x": 0, "y": 1},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 1, "y": 2},
{"matrix": [2, 0], "x": 2, "y": 0},
{"matrix": [2, 2], "x": 2, "y": 2}
]
}
}
}

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Benjamin Božič
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* --------
* | MUTE |
* |------+------+------|
* | PREV | PLAY | NEXT |
* |------+------+------|
* | VOL- | | VOL+ |
* -------- --------
*/
LAYOUT(
KC_MUTE,
KC_MPRV, KC_MPLY, KC_MNXT,
KC_VOLD, KC_VOLU
),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Benjamin Božič
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* --------
* | MUTE |
* |------+------+------|
* | PREV | PLAY | NEXT |
* |------+------+------|
* | VOL- | | VOL+ |
* -------- --------
*/
LAYOUT(
KC_MUTE,
KC_MPRV, KC_MPLY, KC_MNXT,
KC_VOLD, KC_VOLU
),
};

View File

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

View File

@ -0,0 +1,23 @@
# Flowerpad
![flowerpad](https://i.imgur.com/SRo0iWLh.jpeg)
A flourishing 6-key macropad that will catch your eye.
* Keyboard Maintainer: [Benjamin Božič](https://github.com/Ethirallan)
* Hardware Supported: Onboard ATmega32u4, Flowerpad PCB v1, hotswap v1
* Hardware Availability: marshkeys.com
Make example for this keyboard (after setting up your build environment):
make marshkeys/flowerpad:default
Flashing example for this keyboard:
make marshkeys/flowerpad: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 by holding down the top key (where the usb connects) and plug in the keyboard

View File

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

View File

@ -0,0 +1,20 @@
/*
Copyright 2022 Christoph Baumann
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define STM32_HSECLK 16000000
#include_next <board.h>

View File

@ -0,0 +1,105 @@
{
"manufacturer": "Pizzakeyboards",
"keyboard_name": "Slice65",
"maintainer": "mm0nte",
"bootloader": "stm32-dfu",
"debounce": 10,
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["C14", "C13", "C15", "B6", "B5", "B4", "C4", "A7"],
"rows": ["C11", "C12", "B3", "D2", "A1", "A2", "A5", "A4", "B1", "B0"]
},
"processor": "STM32F303",
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"url": "www.keyboards.pizza",
"usb": {
"device_version": "1.0.0",
"pid": "0x707C",
"vid": "0x504B"
},
"community_layouts": ["65_ansi_blocker"],
"layouts": {
"LAYOUT_65_ansi_blocker": {
"layout": [
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [1, 0], "x": 1, "y": 0},
{"label": "2", "matrix": [0, 1], "x": 2, "y": 0},
{"label": "3", "matrix": [1, 1], "x": 3, "y": 0},
{"label": "4", "matrix": [0, 2], "x": 4, "y": 0},
{"label": "5", "matrix": [1, 2], "x": 5, "y": 0},
{"label": "6", "matrix": [0, 3], "x": 6, "y": 0},
{"label": "7", "matrix": [1, 3], "x": 7, "y": 0},
{"label": "8", "matrix": [0, 4], "x": 8, "y": 0},
{"label": "9", "matrix": [1, 4], "x": 9, "y": 0},
{"label": "0", "matrix": [0, 5], "x": 10, "y": 0},
{"label": "-", "matrix": [1, 5], "x": 11, "y": 0},
{"label": "=", "matrix": [0, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"label": "Home", "matrix": [0, 7], "x": 15, "y": 0},
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
{"label": "[", "matrix": [3, 5], "x": 11.5, "y": 1},
{"label": "]", "matrix": [2, 6], "x": 12.5, "y": 1},
{"label": "\\", "matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"label": "End", "matrix": [2, 7], "x": 15, "y": 1},
{"label": "Capslock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
{"label": ";", "matrix": [4, 5], "x": 10.75, "y": 2},
{"label": "'", "matrix": [5, 5], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"label": "PgUp", "matrix": [4, 7], "x": 15, "y": 2},
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
{"label": ",", "matrix": [7, 4], "x": 9.25, "y": 3},
{"label": ".", "matrix": [6, 5], "x": 10.25, "y": 3},
{"label": "/", "matrix": [7, 5], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Up", "matrix": [7, 6], "x": 14, "y": 3},
{"label": "PgDn", "matrix": [6, 7], "x": 15, "y": 3},
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
{"label": "Alt", "matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
{"label": "Space", "matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"label": "Alt", "matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
{"label": "Ctrl", "matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
{"label": "Left", "matrix": [8, 6], "x": 13, "y": 4},
{"label": "Down", "matrix": [9, 6], "x": 14, "y": 4},
{"label": "Right", "matrix": [8, 7], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,26 @@
/* Copyright 2021 Christoph Baumann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi_blocker(
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_HOME,
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_END,
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_PGUP,
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_UP, KC_PGDN,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
};

View File

@ -0,0 +1,26 @@
/* Copyright 2022 Christoph Baumann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi_blocker(
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_HOME,
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_END,
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_PGUP,
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_UP, KC_PGDN,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
)
};

View File

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

View File

@ -0,0 +1,86 @@
/*
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
Copyright (C) 2022 Christoph Baumann
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/*
* STM32F303xC memory setup.
*/
MEMORY
{
flash0 (rx) : org = 0x08000000, len = 128k
flash1 (rx) : org = 0x00000000, len = 0
flash2 (rx) : org = 0x00000000, len = 0
flash3 (rx) : org = 0x00000000, len = 0
flash4 (rx) : org = 0x00000000, len = 0
flash5 (rx) : org = 0x00000000, len = 0
flash6 (rx) : org = 0x00000000, len = 0
flash7 (rx) : org = 0x00000000, len = 0
ram0 (wx) : org = 0x20000000, len = 32k
ram1 (wx) : org = 0x00000000, len = 0
ram2 (wx) : org = 0x00000000, len = 0
ram3 (wx) : org = 0x00000000, len = 0
ram4 (wx) : org = 0x10000000, len = 8k
ram5 (wx) : org = 0x00000000, len = 0
ram6 (wx) : org = 0x00000000, len = 0
ram7 (wx) : org = 0x00000000, len = 0
}
/* For each data/text section two region are defined, a virtual region
and a load region (_LMA suffix).*/
/* Flash region to be used for exception vectors.*/
REGION_ALIAS("VECTORS_FLASH", flash0);
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
/* Flash region to be used for constructors and destructors.*/
REGION_ALIAS("XTORS_FLASH", flash0);
REGION_ALIAS("XTORS_FLASH_LMA", flash0);
/* Flash region to be used for code text.*/
REGION_ALIAS("TEXT_FLASH", flash0);
REGION_ALIAS("TEXT_FLASH_LMA", flash0);
/* Flash region to be used for read only data.*/
REGION_ALIAS("RODATA_FLASH", flash0);
REGION_ALIAS("RODATA_FLASH_LMA", flash0);
/* Flash region to be used for various.*/
REGION_ALIAS("VARIOUS_FLASH", flash0);
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
/* Flash region to be used for RAM(n) initialization data.*/
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
/* RAM region to be used for Main stack. This stack accommodates the processing
of all exceptions and interrupts.*/
REGION_ALIAS("MAIN_STACK_RAM", ram0);
/* RAM region to be used for the process stack. This is the stack used by
the main() function.*/
REGION_ALIAS("PROCESS_STACK_RAM", ram0);
/* RAM region to be used for data segment.*/
REGION_ALIAS("DATA_RAM", ram0);
REGION_ALIAS("DATA_RAM_LMA", flash0);
/* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
/* RAM region to be used for the default heap.*/
REGION_ALIAS("HEAP_RAM", ram0);
/* Generic rules inclusion.*/
INCLUDE rules.ld

View File

@ -0,0 +1,22 @@
/*
Copyright 2022 Christoph Baumann
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include_next <mcuconf.h>
#undef STM32_PREDIV_VALUE
#define STM32_PREDIV_VALUE 2

View File

@ -0,0 +1,27 @@
# Pizza Keyboards (V2) Slice65
![Pizza V2](https://i.imgur.com/RfqnpVlh.jpeg)
A 65% keyboard kit made and sold by [pizza keyboards](https://keyboards.pizza).
* Keyboard Maintainer: [mm0nte](https://github.com/mm0nte)
* Hardware Supported: Pizza V2 Slice65 (Hotswap) PCB
* Hardware Availability: [Pizza Keyboards Store](https://keyboards.pizza/collections/store)
Make example for this keyboard (after setting up your build environment):
make pizzakeyboards/slice65:default
Flashing example for this keyboard:
make pizzakeyboards/slice65: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 @@
MCU_LDSCRIPT = STM32F303xB

View File

@ -0,0 +1,18 @@
// Copyright 2023 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/*Split keyboard configuration*/
// Hardware Settings
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP1
#define SERIAL_USART_RX_PIN GP0
// Communication Settings
#define FORCED_SYNC_THROTTLE_MS 1000
#define SPLIT_MAX_CONNECTION_ERRORS 5
#define SPLIT_CONNECTION_CHECK_TIMEOUT 2000
// RGB Configuration
#define RGBLIGHT_EFFECT_BREATHE_CENTER 2.0 //1.0 to 2.7

View File

@ -0,0 +1,145 @@
{
"manufacturer": "Posey's Mechanical Keyboards",
"keyboard_name": "posey_split_v4",
"maintainer": "joliverMI",
"bootloader": "rp2040",
"build": {
"debounce_type": "sym_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"rgblight": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"],
"rows": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"]
},
"processor": "RP2040",
"ws2812": {
"pin": "GP17",
"driver": "vendor"
},
"rgblight": {
"animations": {
"breathing": true
},
"layers": {
"enabled": true,
"max": 4
},
"led_count": 1,
"sleep": true,
"split": true,
"split_count": [1, 0]
},
"split": {
"enabled": true,
"handedness": {
"pin": "GP18"
}
},
"tags": ["split"],
"url": "poseysmechanicalkeyboards.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0003",
"vid": "0x4A4F"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0},
{"matrix": [0, 1], "label": "LED", "x": 1, "y": 0},
{"matrix": [0, 2], "label": "F1", "x": 2, "y": 0},
{"matrix": [0, 3], "label": "F2", "x": 3, "y": 0},
{"matrix": [0, 4], "label": "F3", "x": 4, "y": 0},
{"matrix": [0, 5], "label": "F4", "x": 5, "y": 0},
{"matrix": [0, 6], "label": "F5", "x": 6, "y": 0},
{"matrix": [0, 7], "label": "F6", "x": 7, "y": 0},
{"matrix": [6, 0], "label": "Layer", "x": 9.294, "y": 0},
{"matrix": [6, 1], "label": "F7", "x": 10.294, "y": 0},
{"matrix": [6, 2], "label": "F8", "x": 11.294, "y": 0},
{"matrix": [6, 3], "label": "F9", "x": 12.294, "y": 0},
{"matrix": [6, 4], "label": "F10", "x": 13.294, "y": 0},
{"matrix": [6, 5], "label": "F11", "x": 14.294, "y": 0},
{"matrix": [6, 6], "label": "Pause", "x": 15.294, "y": 0},
{"matrix": [6, 7], "label": "Delete", "x": 16.294, "y": 0},
{"matrix": [1, 0], "label": "~", "x": 0, "y": 1},
{"matrix": [1, 1], "label": "1", "x": 1, "y": 1},
{"matrix": [1, 2], "label": "2", "x": 2, "y": 1},
{"matrix": [1, 3], "label": "3", "x": 3, "y": 1},
{"matrix": [1, 4], "label": "4", "x": 4, "y": 1},
{"matrix": [1, 5], "label": "5", "x": 5, "y": 1},
{"matrix": [1, 6], "label": "6", "x": 6, "y": 1},
{"matrix": [1, 7], "label": "7", "x": 7, "y": 1},
{"matrix": [7, 0], "label": "&", "x": 9.294, "y": 1},
{"matrix": [7, 1], "label": "*", "x": 10.294, "y": 1},
{"matrix": [7, 2], "label": "(", "x": 11.294, "y": 1},
{"matrix": [7, 3], "label": ")", "x": 12.294, "y": 1},
{"matrix": [7, 4], "label": "_", "x": 13.294, "y": 1},
{"matrix": [7, 5], "label": "+", "x": 14.294, "y": 1},
{"matrix": [7, 6], "label": "Backspace", "x": 15.294, "y": 1, "w": 2},
{"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2},
{"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2},
{"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2},
{"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2},
{"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2},
{"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2},
{"matrix": [8, 0], "label": "Y", "x": 8.794, "y": 2},
{"matrix": [8, 1], "label": "U", "x": 9.794, "y": 2},
{"matrix": [8, 2], "label": "I", "x": 10.794, "y": 2},
{"matrix": [8, 3], "label": "O", "x": 11.794, "y": 2},
{"matrix": [8, 4], "label": "P", "x": 12.794, "y": 2},
{"matrix": [8, 5], "label": "{", "x": 13.794, "y": 2},
{"matrix": [8, 6], "label": "}", "x": 14.794, "y": 2},
{"matrix": [8, 7], "label": "|", "x": 15.794, "y": 2, "w": 1.5},
{"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3},
{"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3},
{"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3},
{"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3},
{"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3},
{"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3},
{"matrix": [9, 0], "label": "H", "x": 9.044, "y": 3},
{"matrix": [9, 1], "label": "J", "x": 10.044, "y": 3},
{"matrix": [9, 2], "label": "K", "x": 11.044, "y": 3},
{"matrix": [9, 3], "label": "L", "x": 12.044, "y": 3},
{"matrix": [9, 4], "label": ":", "x": 13.044, "y": 3},
{"matrix": [9, 5], "label": "\"", "x": 14.044, "y": 3},
{"matrix": [9, 6], "label": "Enter", "x": 15.044, "y": 3, "w": 2.25},
{"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4, "w": 2.25},
{"matrix": [4, 1], "label": "Z", "x": 2.25, "y": 4},
{"matrix": [4, 2], "label": "X", "x": 3.25, "y": 4},
{"matrix": [4, 3], "label": "C", "x": 4.25, "y": 4},
{"matrix": [4, 4], "label": "V", "x": 5.25, "y": 4},
{"matrix": [4, 5], "label": "B", "x": 6.25, "y": 4},
{"matrix": [4, 6], "label": "N", "x": 7.25, "y": 4},
{"matrix": [10, 0], "label": "B", "x": 8.544, "y": 4},
{"matrix": [10, 1], "label": "N", "x": 9.544, "y": 4},
{"matrix": [10, 2], "label": "M", "x": 10.544, "y": 4},
{"matrix": [10, 3], "label": "<", "x": 11.544, "y": 4},
{"matrix": [10, 4], "label": ">", "x": 12.544, "y": 4},
{"matrix": [10, 5], "label": "?", "x": 13.544, "y": 4},
{"matrix": [10, 6], "label": "Shift", "x": 14.544, "y": 4, "w": 2.75},
{"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 3], "label": "L2", "x": 3.5, "y": 5, "w": 1.25},
{"matrix": [5, 6], "label": "Space", "x": 5.5, "y": 5, "w": 2.75},
{"matrix": [11, 1], "label": "Space", "x": 8.794, "y": 5, "w": 2.25},
{"matrix": [11, 2], "label": "Space", "x": 11.044, "y": 5, "w": 1.25},
{"matrix": [11, 3], "label": "L2", "x": 12.294, "y": 5, "w": 1.25},
{"matrix": [11, 4], "label": "Win", "x": 13.544, "y": 5, "w": 1.25},
{"matrix": [11, 5], "label": "Menu", "x": 14.794, "y": 5, "w": 1.25},
{"matrix": [11, 7], "label": "Ctrl", "x": 16.044, "y": 5, "w": 1.25}
]
}
}
}

View File

@ -0,0 +1,73 @@
// Copyright 2024 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum my_layers {
_QWERTY,
_NAV,
_SYMB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* EscLEDF1 F2 F3 F4 F5 F6 L1 F7 F8 F9 F10F11PASDel 16
*
* ` 1 2 3 4 5 6 7 7 8 9 0 - = Backsp 15
*
* Tab Q W E R T Y Y U I O P [ ] \ 15
*
* Caps A S D F G H H J K L ; ' Enter 14
*
* Shift Z X C V B N B N M , . / Shift 14
*
* CtrlGUI L2 Alt | L3 Alt GUIMenuCtrl 11
*
*/
[_QWERTY] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_LCTL, KC_LGUI, MO(_NAV), KC_LALT, KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_NAV] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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_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_TRNS, KC_TRNS, KC_TRNS, KC_ENT,
//├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤
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_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_SYMB] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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, QK_CLEAR_EEPROM,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
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_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_TRNS, KC_TRNS, DT_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
)
};

View File

@ -0,0 +1,73 @@
// Copyright 2024 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum my_layers {
_QWERTY,
_NAV,
_SYMB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* EscLEDF1 F2 F3 F4 F5 F6 L1 F7 F8 F9 F10F11PASDel 16
*
* ` 1 2 3 4 5 6 7 7 8 9 0 - = Backsp 15
*
* Tab Q W E R T Y Y U I O P [ ] \ 15
*
* Caps A S D F G H H J K L ; ' Enter 14
*
* Shift Z X C V B N B N M , . / Shift 14
*
* CtrlGUI L2 Alt | L3 Alt GUIMenuCtrl 11
*
*/
[_QWERTY] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_LCTL, KC_LGUI, MO(_NAV), KC_LALT, KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_NAV] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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_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_TRNS, KC_TRNS, KC_TRNS, KC_ENT,
//├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤
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_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_SYMB] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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, QK_CLEAR_EEPROM,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
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_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_TRNS, KC_TRNS, DT_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
)
};

View File

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

View File

@ -0,0 +1,30 @@
# posey_split_v4
![posey_split_v4](https://i.imgur.com/g3yf6alh.png)
The Posey split keyboard was designed from the gournd up for gaming. By pushing the left half of your split keyboard out of the way, you'll be able to game with better posture and increase mouse movement. PMK's have additional keys on the right half to make sure you don't need to reach for your other half while gaming.
Version Changes from v4:
-Changed bottom row on the left half to use standard modifier key sizes
* Keyboard Maintainer: [Javier Oliver](https://github.com/joliverMI)
* Hardware Supported: posey_split_v4, blizz_sorc_v1 and logic_module_v1
* Hardware Availability: poseysmechanicalkeyboards.com
Make example for this keyboard (after setting up your build environment):
make pmk/posey_split/v4:default
Flashing example for this keyboard:
make pmk/posey_split/v4: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 Escape and plug in the keyboard
* **Physical reset button**: Hold the button on the bottom of the keyboard while you plug in the USB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
SERIAL_DRIVER = vendor

View File

@ -0,0 +1,145 @@
{
"manufacturer": "Posey's Mechanical Keyboards",
"keyboard_name": "posey_split_v5",
"maintainer": "joliverMI",
"bootloader": "rp2040",
"build": {
"debounce_type": "sym_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"rgblight": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"],
"rows": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"]
},
"processor": "RP2040",
"ws2812": {
"pin": "GP17",
"driver": "vendor"
},
"rgblight": {
"animations": {
"breathing": true
},
"layers": {
"enabled": true,
"max": 4
},
"led_count": 1,
"sleep": true,
"split": true,
"split_count": [1, 0]
},
"split": {
"enabled": true,
"handedness": {
"pin": "GP18"
}
},
"tags": ["split"],
"url": "poseysmechanicalkeyboards.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0005",
"vid": "0x4A4F"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0},
{"matrix": [0, 1], "label": "LED", "x": 1, "y": 0},
{"matrix": [0, 2], "label": "F1", "x": 2, "y": 0},
{"matrix": [0, 3], "label": "F2", "x": 3, "y": 0},
{"matrix": [0, 4], "label": "F3", "x": 4, "y": 0},
{"matrix": [0, 5], "label": "F4", "x": 5, "y": 0},
{"matrix": [0, 6], "label": "F5", "x": 6, "y": 0},
{"matrix": [0, 7], "label": "F6", "x": 7, "y": 0},
{"matrix": [6, 0], "label": "Layer", "x": 9.294, "y": 0},
{"matrix": [6, 1], "label": "F7", "x": 10.294, "y": 0},
{"matrix": [6, 2], "label": "F8", "x": 11.294, "y": 0},
{"matrix": [6, 3], "label": "F9", "x": 12.294, "y": 0},
{"matrix": [6, 4], "label": "F10", "x": 13.294, "y": 0},
{"matrix": [6, 5], "label": "F11", "x": 14.294, "y": 0},
{"matrix": [6, 6], "label": "Pause", "x": 15.294, "y": 0},
{"matrix": [6, 7], "label": "Delete", "x": 16.294, "y": 0},
{"matrix": [1, 0], "label": "~", "x": 0, "y": 1},
{"matrix": [1, 1], "label": "1", "x": 1, "y": 1},
{"matrix": [1, 2], "label": "2", "x": 2, "y": 1},
{"matrix": [1, 3], "label": "3", "x": 3, "y": 1},
{"matrix": [1, 4], "label": "4", "x": 4, "y": 1},
{"matrix": [1, 5], "label": "5", "x": 5, "y": 1},
{"matrix": [1, 6], "label": "6", "x": 6, "y": 1},
{"matrix": [1, 7], "label": "7", "x": 7, "y": 1},
{"matrix": [7, 0], "label": "&", "x": 9.294, "y": 1},
{"matrix": [7, 1], "label": "*", "x": 10.294, "y": 1},
{"matrix": [7, 2], "label": "(", "x": 11.294, "y": 1},
{"matrix": [7, 3], "label": ")", "x": 12.294, "y": 1},
{"matrix": [7, 4], "label": "_", "x": 13.294, "y": 1},
{"matrix": [7, 5], "label": "+", "x": 14.294, "y": 1},
{"matrix": [7, 6], "label": "Backspace", "x": 15.294, "y": 1, "w": 2},
{"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2},
{"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2},
{"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2},
{"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2},
{"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2},
{"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2},
{"matrix": [8, 0], "label": "Y", "x": 8.794, "y": 2},
{"matrix": [8, 1], "label": "U", "x": 9.794, "y": 2},
{"matrix": [8, 2], "label": "I", "x": 10.794, "y": 2},
{"matrix": [8, 3], "label": "O", "x": 11.794, "y": 2},
{"matrix": [8, 4], "label": "P", "x": 12.794, "y": 2},
{"matrix": [8, 5], "label": "{", "x": 13.794, "y": 2},
{"matrix": [8, 6], "label": "}", "x": 14.794, "y": 2},
{"matrix": [8, 7], "label": "|", "x": 15.794, "y": 2, "w": 1.5},
{"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3},
{"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3},
{"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3},
{"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3},
{"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3},
{"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3},
{"matrix": [9, 0], "label": "H", "x": 9.044, "y": 3},
{"matrix": [9, 1], "label": "J", "x": 10.044, "y": 3},
{"matrix": [9, 2], "label": "K", "x": 11.044, "y": 3},
{"matrix": [9, 3], "label": "L", "x": 12.044, "y": 3},
{"matrix": [9, 4], "label": ":", "x": 13.044, "y": 3},
{"matrix": [9, 5], "label": "\"", "x": 14.044, "y": 3},
{"matrix": [9, 6], "label": "Enter", "x": 15.044, "y": 3, "w": 2.25},
{"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4, "w": 2.25},
{"matrix": [4, 1], "label": "Z", "x": 2.25, "y": 4},
{"matrix": [4, 2], "label": "X", "x": 3.25, "y": 4},
{"matrix": [4, 3], "label": "C", "x": 4.25, "y": 4},
{"matrix": [4, 4], "label": "V", "x": 5.25, "y": 4},
{"matrix": [4, 5], "label": "B", "x": 6.25, "y": 4},
{"matrix": [4, 6], "label": "N", "x": 7.25, "y": 4},
{"matrix": [10, 0], "label": "B", "x": 8.544, "y": 4},
{"matrix": [10, 1], "label": "N", "x": 9.544, "y": 4},
{"matrix": [10, 2], "label": "M", "x": 10.544, "y": 4},
{"matrix": [10, 3], "label": "<", "x": 11.544, "y": 4},
{"matrix": [10, 4], "label": ">", "x": 12.544, "y": 4},
{"matrix": [10, 5], "label": "?", "x": 13.544, "y": 4},
{"matrix": [10, 6], "label": "Shift", "x": 14.544, "y": 4, "w": 2.75},
{"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "label": "Layer", "x": 2.5, "y": 5},
{"matrix": [5, 3], "label": "Alt", "x": 3.5, "y": 5, "w": 2},
{"matrix": [5, 6], "label": "Space", "x": 5.5, "y": 5, "w": 2.75},
{"matrix": [11, 1], "label": "Space", "x": 8.794, "y": 5, "w": 2.25},
{"matrix": [11, 2], "label": "Arrows", "x": 11.044, "y": 5, "w": 1.25},
{"matrix": [11, 3], "label": "Ctrl", "x": 12.294, "y": 5, "w": 1.25},
{"matrix": [11, 4], "label": "Win", "x": 13.544, "y": 5, "w": 1.25},
{"matrix": [11, 5], "label": "Menu", "x": 14.794, "y": 5, "w": 1.25},
{"matrix": [11, 7], "label": "Ctrl", "x": 16.044, "y": 5, "w": 1.25}
]
}
}
}

View File

@ -0,0 +1,73 @@
// Copyright 2024 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum my_layers {
_QWERTY,
_NAV,
_SYMB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* EscLEDF1 F2 F3 F4 F5 F6 L1 F7 F8 F9 F10F11PASDel 16
*
* ` 1 2 3 4 5 6 7 7 8 9 0 - = Backsp 15
*
* Tab Q W E R T Y Y U I O P [ ] \ 15
*
* Caps A S D F G H H J K L ; ' Enter 14
*
* Shift Z X C V B N B N M , . / Shift 14
*
* CtrlGUI Alt L2 | L3 Alt GUIMenuCtrl 11
*
*/
[_QWERTY] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PAUS, KC_DEL,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_LCTL, KC_LGUI, KC_LALT, MO(_NAV), KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN,KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_NAV] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS,KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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_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_TRNS, KC_TRNS, KC_TRNS, KC_ENT,
//├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤
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_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_SYMB] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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, QK_CLEAR_EEPROM,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
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_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_TRNS, KC_TRNS, DT_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
)
};

View File

@ -0,0 +1,73 @@
// Copyright 2024 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum my_layers {
_QWERTY,
_NAV,
_SYMB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* EscLEDF1 F2 F3 F4 F5 F6 L1 F7 F8 F9 F10F11PASDel 16
*
* ` 1 2 3 4 5 6 7 7 8 9 0 - = Backsp 15
*
* Tab Q W E R T Y Y U I O P [ ] \ 15
*
* Caps A S D F G H H J K L ; ' Enter 14
*
* Shift Z X C V B N B N M , . / Shift 14
*
* CtrlGUI Alt L2 | L3 Alt GUIMenuCtrl 11
*
*/
[_QWERTY] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PAUS, KC_DEL,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_LCTL, KC_LGUI, KC_LALT, MO(_NAV), KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN,KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_NAV] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS,KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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_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_TRNS, KC_TRNS, KC_TRNS, KC_ENT,
//├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤
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_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
),
[_SYMB] = LAYOUT(
// ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐
KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤
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, QK_CLEAR_EEPROM,
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤
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_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_TRNS, KC_TRNS, DT_UP,
//├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP
//└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘
)
};

View File

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

View File

@ -0,0 +1,30 @@
# posey_split_v5
![posey_split_v5](https://i.imgur.com/g3yf6al.png)
The Posey split keyboard was designed from the gournd up for gaming. By pushing the left half of your split keyboard out of the way, you'll be able to game with better posture and increase mouse movement. PMK's have additional keys on the right half to make sure you don't need to reach for your other half while gaming.
Version Changes from v4:
-Changed bottom row on the left half to use standard modifier key sizes
* Keyboard Maintainer: [Javier Oliver](https://github.com/joliverMI)
* Hardware Supported: posey_split_v5 and logic_module_v1
* Hardware Availability: poseysmechanicalkeyboards.com
Make example for this keyboard (after setting up your build environment):
make pmk/posey_split/v5:default
Flashing example for this keyboard:
make pmk/posey_split/v5: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 Escape and plug in the keyboard
* **Physical reset button**: Hold the button on the bottom of the keyboard while you plug in the USB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
SERIAL_DRIVER = vendor

View File

@ -0,0 +1,11 @@
// Copyright 2024 Ramon Imbao (@ramonimbao)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* RGB */
#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_EXTERNAL_PULLUP

View File

@ -0,0 +1,30 @@
// Copyright 2024 Ramon Imbao (@ramonimbao)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
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;
}
led_t state = host_keyboard_led_state();
uint32_t highest_layer = get_highest_layer(layer_state);
if (!(state.compose || state.scroll_lock)) {
RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0);
}
if (!state.caps_lock) {
RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0);
}
if (highest_layer == 0) {
RGB_MATRIX_INDICATOR_SET_COLOR(2, 0, 0, 0);
}
return false;
}
#endif

View File

@ -0,0 +1,8 @@
// Copyright 2023 Ramon Imbao (@ramonimbao)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,152 @@
{
"manufacturer": "Ramon Imbao",
"keyboard_name": "EQUATOR",
"maintainer": "ramonimbao",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A9", "A8", "B2", "B11", "F1", "F0", "C15", "C14", "C13"],
"rows": ["B12", "B10", "A15", "A10", "B1"]
},
"processor": "STM32F072",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0xE0A1",
"vid": "0xB16B"
},
"ws2812": {
"pin": "B15",
"driver": "spi"
},
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"rainbow_moving_chevron": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_rain": true,
"pixel_flow": true,
"pixel_fractal": true,
"digital_rain": true
},
"driver": "ws2812",
"layout": [
{"flags": 8, "x":224, "y":8},
{"flags": 8, "x":224, "y":4},
{"flags": 8, "x":224, "y":0}
]
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 9, "y": 0},
{"matrix": [0, 8], "x":10, "y": 0},
{"matrix": [0, 9], "x":11, "y": 0},
{"matrix": [0,10], "x":12, "y": 0},
{"matrix": [0,11], "x":13, "y": 0},
{"matrix": [0,12], "x":14, "y": 0},
{"matrix": [0,13], "x":15, "y": 0},
{"matrix": [0,14], "x":16, "y": 0},
{"matrix": [0,15], "x":17, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 7], "x": 8.5, "y": 1},
{"matrix": [1, 8], "x": 9.5, "y": 1},
{"matrix": [1, 9], "x":10.5, "y": 1},
{"matrix": [1,10], "x":11.5, "y": 1},
{"matrix": [1,11], "x":12.5, "y": 1},
{"matrix": [1,12], "x":13.5, "y": 1},
{"matrix": [1,13], "x":14.5, "y": 1},
{"matrix": [1,14], "x":15.5, "y": 1, "w": 1.5},
{"matrix": [1,15], "x":17, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 7], "x": 8.75, "y": 2},
{"matrix": [2, 8], "x": 9.75, "y": 2},
{"matrix": [2, 9], "x":10.75, "y": 2},
{"matrix": [2,10], "x":11.75, "y": 2},
{"matrix": [2,11], "x":12.75, "y": 2},
{"matrix": [2,12], "x":13.75, "y": 2},
{"matrix": [2,14], "x":14.75, "y": 2, "w": 2.25},
{"matrix": [2,15], "x":17, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 8.25, "y": 3},
{"matrix": [3, 8], "x": 9.25, "y": 3},
{"matrix": [3, 9], "x":10.25, "y": 3},
{"matrix": [3,10], "x":11.25, "y": 3},
{"matrix": [3,11], "x":12.25, "y": 3},
{"matrix": [3,12], "x":13.25, "y": 3},
{"matrix": [3,13], "x":14.25, "y": 3, "w": 1.75},
{"matrix": [3,14], "x":16, "y": 3},
{"matrix": [3,15], "x":17, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 3, "w": 1.25},
{"matrix": [4, 3], "x": 3.25, "y": 3, "w": 1.25},
{"matrix": [4, 5], "x": 4.5, "y": 3, "w": 2.75},
{"matrix": [4, 8], "x": 8.25, "y": 3, "w": 2.25},
{"matrix": [4, 9], "x":10.5, "y": 3, "w": 1.25},
{"matrix": [4,11], "x":12.5, "y": 3, "w": 1.25},
{"matrix": [4,12], "x":13.75, "y": 3, "w": 1.25},
{"matrix": [4,13], "x":15, "y": 3},
{"matrix": [4,14], "x":15, "y": 3},
{"matrix": [4,15], "x":15, "y": 3}
]
}
}
}

View File

@ -0,0 +1,21 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
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_BSPC, KC_HOME,
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_END,
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_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
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, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,21 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
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_BSPC, KC_HOME,
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_END,
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_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
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, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

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

View File

@ -0,0 +1,9 @@
// Copyright 2023 Ramon Imbao (@ramonimbao)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef STM32_SPI_USE_SPI2
#define STM32_SPI_USE_SPI2 TRUE

View File

@ -0,0 +1,26 @@
# EQUATOR
![EQUATOR](https://i.imgur.com/0zjj6btl.png)
An ergo 65% keyboard designed in collaboration with ronworks.
* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao)
* Hardware Supported: STM32F072
Make example for this keyboard (after setting up your build environment):
make rmi_kb/equator:default
Flashing example for this keyboard:
make rmi_kb/equator: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**: Press and hold the button below the right alt and right ctrl keys
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

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

97
keyboards/swiss/info.json Normal file
View File

@ -0,0 +1,97 @@
{
"manufacturer": "Bregoli",
"keyboard_name": "swiss",
"maintainer": "Bregoli",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["F7", "F6", "F5", "F4", "F1", "F0", "E6", "B0", "B1", "B4", "B5", "B6", "C6", "C7", "D3"],
"rows": ["D6", "D4", "D5", "B2", "D7"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0420",
"vid": "0x4C43"
},
"community_layouts": ["60_hhkb"],
"layouts": {
"LAYOUT_60_hhkb": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.25, "y": 3},
{"matrix": [3, 3], "x": 4.25, "y": 3},
{"matrix": [3, 4], "x": 5.25, "y": 3},
{"matrix": [3, 5], "x": 6.25, "y": 3},
{"matrix": [3, 6], "x": 7.25, "y": 3},
{"matrix": [3, 7], "x": 8.25, "y": 3},
{"matrix": [3, 8], "x": 9.25, "y": 3},
{"matrix": [3, 9], "x": 10.25, "y": 3},
{"matrix": [3, 10], "x": 11.25, "y": 3},
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 12], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 1.5, "y": 4},
{"matrix": [4, 1], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 12.5, "y": 4}
]
}
}
}

View File

@ -0,0 +1,23 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[0] = LAYOUT_60_hhkb(
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_BSLS, KC_DEL,
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_BSPC,
KC_LCTL, 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, MO(1),
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL
),
/* FN */
[1] = LAYOUT_60_hhkb(
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_INS, KC_DEL,
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCT, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@ -0,0 +1,23 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[0] = LAYOUT_60_hhkb(
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_BSLS, KC_DEL,
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_BSPC,
KC_LCTL, 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, MO(1),
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL
),
/* FN */
[1] = LAYOUT_60_hhkb(
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_INS, KC_DEL,
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCT, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

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

28
keyboards/swiss/readme.md Normal file
View File

@ -0,0 +1,28 @@
# Swiss
![Swiss](https://i.imgur.com/8G6MB5D.png)
An HHKB that looks like... Cheese?
A fun, not so serious, ridiculously cheesy keyboard.
* Keyboard Maintainer: [Bregoli](https://geekhack.org/index.php?topic=119509.0)
* Hardware Supported: Custom HHKB PCB and C3 Unified Daughterboard
Make example for this keyboard (after setting up your build environment):
make swiss:default
Flashing example for this keyboard:
make swiss: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
keyboards/swiss/rules.mk Normal file
View File

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

View File

@ -0,0 +1,7 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Set HSE clock since it differs from F411 default */
#define STM32_HSECLK 16000000

View File

@ -0,0 +1,297 @@
{
"manufacturer": "werk_technica",
"keyboard_name": "one",
"maintainer": "ebastler",
"bootloader": "stm32-dfu",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "A15"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["A6", "A7", "B0", "B1", "B10", "B12", "B13", "B14", "B15", "A8", "A10", "A13", "A5", "A4", "C15"],
"rows": ["A0", "A1", "A2", "A3", "B9", "B8"]
},
"processor": "STM32F411",
"url": "https://werktechnica.com/",
"usb": {
"device_version": "1.0.0",
"pid": "0x0001",
"vid": "0x7774"
},
"layouts": {
"LAYOUT_75_ansi": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
{"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0},
{"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0},
{"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0},
{"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0},
{"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0},
{"label": "PRSC", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "DIAL", "matrix": [3, 13], "x": 15.25, "y": 0},
{"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
{"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25},
{"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25},
{"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25},
{"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25},
{"label": "BKSP", "matrix": [0, 14], "x": 13, "y": 1.25, "w": 2},
{"label": "HOME", "matrix": [1, 14], "x": 15.25, "y": 1.25},
{"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
{"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
{"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
{"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
{"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
{"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
{"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
{"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
{"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
{"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25},
{"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25},
{"label": "\"", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"label": "PG UP", "matrix": [2, 14], "x": 15.25, "y": 2.25},
{"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
{"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
{"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
{"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
{"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
{"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
{"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
{"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25},
{"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25},
{"label": "ENTER", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
{"label": "PG DN", "matrix": [3, 14], "x": 15.25, "y": 3.25},
{"label": "SHIFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
{"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
{"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
{"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
{"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
{"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
{"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
{"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25},
{"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25},
{"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25},
{"label": "SHIFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"label": "UP", "matrix": [4, 13], "x": 14.25, "y": 4.5},
{"label": "CTRL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"label": "SUPER", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"label": "ALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"label": "SPACE", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"label": "ALT", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
{"label": "FUNC", "matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.5},
{"label": "LEFT", "matrix": [5, 12], "x": 13.5, "y": 5.5},
{"label": "DOWN", "matrix": [5, 13], "x": 14.5, "y": 5.5},
{"label": "RIGHT", "matrix": [5, 14], "x": 15.5, "y": 5.5}
]
},
"LAYOUT_75_iso": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
{"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0},
{"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0},
{"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0},
{"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0},
{"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0},
{"label": "PRSC", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "DIAL", "matrix": [3, 13], "x": 15.25, "y": 0},
{"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
{"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25},
{"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25},
{"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25},
{"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25},
{"label": "BKSP", "matrix": [0, 14], "x": 13, "y": 1.25, "w": 2},
{"label": "HOME", "matrix": [1, 14], "x": 15.25, "y": 1.25},
{"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
{"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
{"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
{"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
{"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
{"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
{"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
{"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
{"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
{"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25},
{"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25},
{"label": "ENTER", "matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
{"label": "PG UP", "matrix": [2, 14], "x": 15.25, "y": 2.25},
{"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
{"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
{"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
{"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
{"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
{"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
{"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
{"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25},
{"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25},
{"label": "NUHS", "matrix": [3, 12], "x": 12.75, "y": 3.25},
{"label": "PG DN", "matrix": [3, 14], "x": 15.25, "y": 3.25},
{"label": "SHIFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"label": "NUBS", "matrix": [4, 1], "x": 1.25, "y": 4.25},
{"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
{"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
{"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
{"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
{"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
{"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
{"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
{"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25},
{"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25},
{"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25},
{"label": "SHIFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"label": "UP", "matrix": [4, 13], "x": 14.25, "y": 4.5},
{"label": "CTRL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"label": "SUPER", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"label": "ALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"label": "SPACE", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"label": "ALT", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
{"label": "FUNC", "matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.5},
{"label": "LEFT", "matrix": [5, 12], "x": 13.5, "y": 5.5},
{"label": "DOWN", "matrix": [5, 13], "x": 14.5, "y": 5.5},
{"label": "RIGHT", "matrix": [5, 14], "x": 15.5, "y": 5.5}
]
},
"LAYOUT_all": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
{"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0},
{"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0},
{"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0},
{"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0},
{"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0},
{"label": "PRSC", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "DIAL", "matrix": [3, 13], "x": 15.25, "y": 0},
{"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
{"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25},
{"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25},
{"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25},
{"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25},
{"label": " ", "matrix": [1, 13], "x": 13, "y": 1.25},
{"label": "BKSP", "matrix": [0, 14], "x": 14, "y": 1.25},
{"label": "HOME", "matrix": [1, 14], "x": 15.25, "y": 1.25},
{"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
{"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
{"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
{"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
{"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
{"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
{"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
{"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
{"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
{"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25},
{"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25},
{"label": "\"", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"label": "PG UP", "matrix": [2, 14], "x": 15.25, "y": 2.25},
{"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
{"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
{"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
{"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
{"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
{"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
{"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
{"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25},
{"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25},
{"label": "ENTER", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
{"label": "PG DN", "matrix": [3, 14], "x": 15.25, "y": 3.25},
{"label": "SHIFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"label": "NUBS", "matrix": [4, 1], "x": 1.25, "y": 4.25},
{"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
{"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
{"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
{"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
{"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
{"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
{"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
{"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25},
{"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25},
{"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25},
{"label": "SHIFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"label": "UP", "matrix": [4, 13], "x": 14.25, "y": 4.5},
{"label": "CTRL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"label": "SUPER", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"label": "ALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"label": "SPACE", "matrix": [5, 4], "x": 3.75, "y": 5.25, "w": 2.75},
{"label": "SPACE", "matrix": [5, 6], "x": 6.5, "y": 5.25, "w": 1.25},
{"label": "SPACE", "matrix": [5, 8], "x": 7.75, "y": 5.25, "w": 2.25},
{"label": "ALT", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
{"label": "FUNC", "matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.5},
{"label": "LEFT", "matrix": [5, 12], "x": 13.5, "y": 5.5},
{"label": "DOWN", "matrix": [5, 13], "x": 14.5, "y": 5.5},
{"label": "RIGHT", "matrix": [5, 14], "x": 15.5, "y": 5.5}
]
}
}
}

View File

@ -0,0 +1,55 @@
/* Copyright 2023 Moritz Plattner
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* keymap for layer 0 */
KC_ESC, 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_PSCR, LT(2, KC_MUTE),
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_BSPC, KC_BSPC, KC_DEL,
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_PGUP,
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_PGDN,
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_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, LT(1, KC_APP), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all( /* keymap for layer 1 */
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_MPLY,
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_INS,
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_HOME,
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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_all( /* keymap for layer 2 */
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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, 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
),
};
#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(KC_BRID, KC_BRIU) },
[2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
};
#endif

View File

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

View File

@ -0,0 +1,55 @@
/* Copyright 2023 Moritz Plattner
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* keymap for layer 0 */
KC_ESC, 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_PSCR, LT(2, KC_MUTE),
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_BSPC, KC_BSPC, KC_DEL,
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_PGUP,
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_PGDN,
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_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, LT(1, KC_APP), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all( /* keymap for layer 1 */
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_MPLY,
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_INS,
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_HOME,
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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_all( /* keymap for layer 2 */
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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, 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
),
};
#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(KC_BRID, KC_BRIU) },
[2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
};
#endif

View File

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

View File

@ -0,0 +1,21 @@
/* Copyright 2023 QMK
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include_next <mcuconf.h>
/* Set PLL M divider from 4 (F411 GENERIC default) to 8, because of 16 MHz crystal on board */
#undef STM32_PLLM_VALUE
#define STM32_PLLM_VALUE 8

View File

@ -0,0 +1,26 @@
# werk.technica one
![WT One Moloko](https://i.imgur.com/4Bvywra.png)
From looks to sound and feel, Werk One was designed as a cost is no object flagship product. A modular 75% exploded profile keyboard kit with hybrid gasket mount array and AEK-styled classic side profile curve.
In a world of minimalism, Werk One is our tribute to the sophistication of art deco and 70s futurism.
* Keyboard Maintainer: [ebastler](https://github.com/ebastler)
* Hardware Supported: Rev1 solder and hotswap PCB (both work with `default` and `via` keymaps, but not all keymap positions are available on hotswap PCBs)
* Hardware Availability: [Groupbuy](https://werktechnica.com/)
Make example for this keyboard (after setting up your build environment):
qmk compile -kb werk_technica/one -km default
Flash example for this keyboard (after setting up your build environment):
qmk flash -kb werk_technica/one -km 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 2 ways:
* Bootmagic reset: Hold down the key at (0,0) in the matrix (Escape) and plug in the keyboard
* Physical reset button: Hold for approx. 1 second to enter Bootloader

View File

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

View File

@ -0,0 +1,65 @@
{
"keyboard_name": "ZLABKEEB 6PAD",
"manufacturer": "zlabkeeb",
"maintainer": "zlabkeeb",
"development_board": "promicro",
"features": {
"bootmagic": true,
"extrakey": true,
"encoder": true,
"mousekey": true,
"rgblight": true
},
"build": {
"lto": true
},
"url": "https://github.com/zlabkeeb",
"usb": {
"device_version": "1.0.0",
"vid": "0x4154",
"pid": "0x7A77"
},
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"led_count": 4,
"max_brightness": 180,
"saturation_steps": 8,
"sleep": true
},
"ws2812": {
"pin": "B6"
},
"encoder": {
"rotary": [
{"pin_a": "B4", "pin_b": "B5"}
]
},
"matrix_pins": {
"direct": [
["D1", "D0", "D4"],
["C6", "D7", "E6"]
]
},
"layouts": {
"LAYOUT": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},
{"x": 2, "y": 0, "matrix": [0, 2]},
{"x": 0, "y": 1, "matrix": [1, 0]},
{"x": 1, "y": 1, "matrix": [1, 1]},
{"x": 2, "y": 1, "matrix": [1, 2]}
]
}
}
}

View File

@ -0,0 +1,50 @@
/*
Copyright 2024 zlabkeeb (zlabkeeb@gmail.com)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* 1 layer 1 3
* |
* 4 5 6 |
*
*/
[0] = LAYOUT(
KC_1, TO(1), KC_2,
KC_3, KC_4, KC_5
),
/*
*
* A layer O B
* |
* C D E |
*
*/
[1] = LAYOUT(
KC_A, TO(0), KC_B,
KC_C, KC_D, KC_E
)
};
#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(KC_PGDN, KC_PGUP)}
};
#endif

View File

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

View File

@ -0,0 +1,38 @@
/*
Copyright 2024 zlabkeeb (zlabkeeb@gmail.com)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* 1 2 3
* |
* 4 5 6 |
*
*/
[0] = LAYOUT(
KC_1, KC_2, KC_3,
KC_4, KC_5, KC_6
)
};
#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

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

View File

@ -0,0 +1,26 @@
# 6PAD
![6PAD](https://i.imgur.com/yt3dKCBh.jpeg)
6PAD is a Simple Yet Elegant Macropad, 5 Keys & Single Rotary Encoder, Designed And Manufactured In INDONESIA.
- Support RGB light UnderGlow
- Keyboard Maintainer: [zlabkeeb](https://github.com/zlabkeeb)
- Hardware Supported: 6Pad PCB, Promicro
- Hardware Availability: (INDONESIA Only) Will be available at [Tokopedia](https://www.tokopedia.com/zahranetid)
Make example for this keyboard (after setting up your build environment):
make zlabkeeb/6pad:default
Flashing example for this keyboard:
make zlabkeeb/6pad: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 1 way:
- **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead

View File

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

View File

@ -102,4 +102,5 @@
#define ES_AT ALGR(ES_Q) // @
#define ES_TILD ALGR(ES_PLUS) // ~
#define ES_CIRC ALGR(ES_LCBR) // ^
#define ES_GRV ALGR(KC_NUHS) // `