forked from mirror/qmk_firmware
Compare commits
81 Commits
0.22.11
...
user-keyma
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0379d1f59e | ||
|
|
98013e25c6 | ||
|
|
a6521b8521 | ||
|
|
1e4f7aa029 | ||
|
|
adcc4d376c | ||
|
|
d7b44239c2 | ||
|
|
5c22706294 | ||
|
|
ba62db19e7 | ||
|
|
44062b5056 | ||
|
|
50844a8e67 | ||
|
|
56b6b28fe9 | ||
|
|
c2326c05c0 | ||
|
|
0189c485b9 | ||
|
|
935c894f83 | ||
|
|
211fbbd16d | ||
|
|
6876fbe51d | ||
|
|
38d6e9a75a | ||
|
|
aee2a9d696 | ||
|
|
e5b7685e7a | ||
|
|
39d0a14258 | ||
|
|
daabe2d8c5 | ||
|
|
0b7dba156c | ||
|
|
10cdd00751 | ||
|
|
72f93e7fc2 | ||
|
|
64bbeff57d | ||
|
|
80708a91ef | ||
|
|
ebac02a7b2 | ||
|
|
2337cd1186 | ||
|
|
7324650714 | ||
|
|
5b25a8aa32 | ||
|
|
67ff0defe2 | ||
|
|
ace510ffa0 | ||
|
|
837cae95ba | ||
|
|
999008f0eb | ||
|
|
2192098f57 | ||
|
|
cb9705428b | ||
|
|
538b79657e | ||
|
|
46dedfaaa4 | ||
|
|
c133bd1234 | ||
|
|
ca2d2a524f | ||
|
|
1a300d05bd | ||
|
|
18ef3da8e8 | ||
|
|
ae2703b69b | ||
|
|
052cc5df5d | ||
|
|
e82bc5355c | ||
|
|
0ad780f852 | ||
|
|
f5cd30458a | ||
|
|
e0c00c35ce | ||
|
|
d2892685c5 | ||
|
|
ca45416999 | ||
|
|
d2773c6d67 | ||
|
|
96c71b9b4c | ||
|
|
0e6d47e1e4 | ||
|
|
f6c70c40af | ||
|
|
81a3aa025c | ||
|
|
23a8f7f03b | ||
|
|
a46c7abd01 | ||
|
|
62ff02a101 | ||
|
|
032b039d0b | ||
|
|
0477160109 | ||
|
|
e22cb99bc4 | ||
|
|
391c0428c9 | ||
|
|
c67c9f1d98 | ||
|
|
b630df1aa7 | ||
|
|
999e721312 | ||
|
|
b5423b2e83 | ||
|
|
f536646235 | ||
|
|
ad4ecd6eb4 | ||
|
|
fa8940e5a6 | ||
|
|
527790b000 | ||
|
|
db8b74f016 | ||
|
|
81e086b387 | ||
|
|
0650f783b5 | ||
|
|
6dafcac713 | ||
|
|
509a2b40b7 | ||
|
|
77fe1298c7 | ||
|
|
20eb93e05c | ||
|
|
3665ae0441 | ||
|
|
6e6fff866e | ||
|
|
ad14a27cd3 | ||
|
|
e1630edef4 |
3
.github/workflows/stale.yml
vendored
3
.github/workflows/stale.yml
vendored
@@ -3,6 +3,7 @@ name: 'Close stale issues and PRs'
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
actions: write
|
||||
|
||||
on:
|
||||
schedule:
|
||||
@@ -13,7 +14,7 @@ jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
- uses: actions/stale@main
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
||||
@@ -495,10 +495,10 @@ check-size: top-symbols
|
||||
top-symbols: build
|
||||
echo "###########################################"
|
||||
echo "# Highest flash usage:"
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep ' [RrTt] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
echo "###########################################"
|
||||
echo "# Highest RAM usage:"
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep ' [BbCDdGgSs] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
echo "###########################################"
|
||||
endif
|
||||
|
||||
|
||||
@@ -190,4 +190,9 @@
|
||||
"PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"},
|
||||
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"},
|
||||
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"},
|
||||
|
||||
// Items we want flagged in lint
|
||||
"VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true},
|
||||
"VIAL_UNLOCK_COMBO_COLS": {"info_key": "_invalid.vial_unlock_cols", "invalid": true},
|
||||
"VIAL_UNLOCK_COMBO_ROWS": {"info_key": "_invalid.vial_unlock_rows", "invalid": true}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
# Converters
|
||||
|
||||
Since many drop-in replacement controllers now exist, we've done our best to make them easy to use in existing designs.
|
||||
This page documents the automated process for converting keyboards to use drop-in replacement controllers. This process is designed to be easy to use and can be completed in a few simple steps.
|
||||
|
||||
This page documents the handy automated process for converting keyboards.
|
||||
## Supported Converters
|
||||
|
||||
### Supported Converters
|
||||
|
||||
Currently the following converters are available:
|
||||
The following converters are available at this time:
|
||||
|
||||
| From | To |
|
||||
|------------|-------------------|
|
||||
@@ -28,14 +26,10 @@ Currently the following converters are available:
|
||||
| `elite_c` | `helios` |
|
||||
| `elite_c` | `liatris` |
|
||||
|
||||
See below for more in depth information on each converter.
|
||||
|
||||
## Overview
|
||||
|
||||
Each converter category is broken down by its declared `pin compatibility`.
|
||||
This ensures that only valid combinations are attempted.
|
||||
|
||||
You can generate the firmware by appending `-e CONVERT_TO=<target>` to your compile/flash command. For example:
|
||||
Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. You can generate the firmware by appending `-e CONVERT_TO=<target>` to your compile/flash command. For example:
|
||||
|
||||
```sh
|
||||
qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c
|
||||
@@ -59,14 +53,12 @@ Once a converter is enabled, it exposes the `CONVERT_TO_<target_uppercase>` flag
|
||||
|
||||
### Pin Compatibility
|
||||
|
||||
To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`.
|
||||
To ensure compatibility, provide validation, and enable future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. The following pin compatibility interfaces are currently defined:
|
||||
|
||||
Currently the following pin compatibility interfaces are defined:
|
||||
|
||||
| Pinout | Notes |
|
||||
|------------|-----------------------------------|
|
||||
| `promicro` | Includes RX/TX LEDs |
|
||||
| `elite_c` | Includes bottom row pins, no LEDs |
|
||||
| Pin Compatibility | Notes |
|
||||
|-------------------|-----------------------------------|
|
||||
| `promicro` | Includes RX/TX LEDs |
|
||||
| `elite_c` | Includes bottom row pins, no LEDs |
|
||||
|
||||
To declare the base for conversions, add this line to your keyboard's `rules.mk`:
|
||||
|
||||
@@ -140,7 +132,7 @@ The following defaults are based on what has been implemented for [RP2040](platf
|
||||
|
||||
### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi :id=promicro_rp2040
|
||||
|
||||
Currently identical to [Adafruit KB2040](#kb2040).
|
||||
Feature set is identical to [Adafruit KB2040](#kb2040).
|
||||
|
||||
### STeMCell :id=stemcell
|
||||
|
||||
@@ -150,9 +142,7 @@ There are two versions of STeMCell available, with different pinouts:
|
||||
- v2.0.0 (pre-release v1.0.1, v1.0.2)
|
||||
Default official firmware only supports v2.0.0 STeMCell.
|
||||
|
||||
STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips.
|
||||
|
||||
The following additional flags has to be used while compiling, based on the pin used for split communication.
|
||||
STeMCell has support to swap UART and I2C pins to enable single-wire uart communication in STM chips. The following additional flags has to be used while compiling, based on the pin used for split communication:
|
||||
|
||||
| Split Pin | Compile flags |
|
||||
|-----------|---------------|
|
||||
@@ -173,11 +163,8 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro
|
||||
|
||||
### RP2040 Community Edition - Elite-Pi, Helios, and Liatris :id=rp2040_ce
|
||||
|
||||
Feature set currently identical to [Adafruit KB2040](#kb2040).
|
||||
Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enabled by default for superior split keyboard support. For more information, refer to the [Community Edition pinout](platformdev_rp2040.md#rp2040_ce) docs.
|
||||
|
||||
Enables VBUS detection by default for superior split keyboard support.
|
||||
|
||||
For more information, refer to the [RP2040 Community Edition](platformdev_rp2040.md#rp2040_ce) docs.
|
||||
|
||||
## Elite-C
|
||||
|
||||
@@ -202,8 +189,8 @@ Converter summary:
|
||||
|
||||
### STeMCell :id=stemcell_elite
|
||||
|
||||
Currently identical to [STeMCell](#stemcell) with support for the additional bottom row of pins.
|
||||
Identical to [Pro Micro - STeMCell](#stemcell) with support for the additional bottom row of pins.
|
||||
|
||||
### RP2040 Community Edition :id=rp2040_ce_elite
|
||||
|
||||
Currently identical to [RP2040 Community Edition](#rp2040_ce), with support for the additional bottom row of pins.
|
||||
Identical to [Pro Micro - RP2040 Community Edition](#rp2040_ce) with support for the additional bottom row of pins.
|
||||
|
||||
@@ -21,7 +21,7 @@ Then, in your `keymap.c` file, you'll need to define the array `key_overrides`,
|
||||
The `key_override_t` struct has many options that allow you to precisely tune your overrides. The full reference is shown below. Instead of manually creating a `key_override_t` value, it is recommended to use these dedicated initializers:
|
||||
|
||||
#### `ko_make_basic(modifiers, key, replacement)`
|
||||
Returns a `key_override_t`, which sends `replacement` (can be a key-modifer combination), when `key` and `modifiers` are all pressed down. This override still activates if any additional modifiers not specified in `modifiers` are also pressed down. See `ko_make_with_layers_and_negmods` to customize this behavior.
|
||||
Returns a `key_override_t`, which sends `replacement` (can be a key-modifier combination), when `key` and `modifiers` are all pressed down. This override still activates if any additional modifiers not specified in `modifiers` are also pressed down. See `ko_make_with_layers_and_negmods` to customize this behavior.
|
||||
|
||||
#### `ko_make_with_layers(modifiers, key, replacement, layers)`
|
||||
Additionally takes a bitmask `layers` that defines on which layers the override is used.
|
||||
@@ -224,7 +224,7 @@ The duration of the key repeat delay is controlled with the `KEY_OVERRIDE_REPEAT
|
||||
|
||||
## Difference to Combos :id=difference-to-combos
|
||||
|
||||
Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interacton with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable.
|
||||
Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interaction with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable.
|
||||
|
||||
## Solution to the problem of flashing modifiers :id=neutralize-flashing-modifiers
|
||||
|
||||
|
||||
@@ -524,7 +524,6 @@ By defining `RGBLIGHT_LED_MAP` as in the example below, you can specify the LED
|
||||
```
|
||||
<img src="https://user-images.githubusercontent.com/2170248/55743725-08ad7a80-5a6e-11e9-83ed-126a2b0209fc.JPG" alt="simple mapped" width="50%"/>
|
||||
|
||||
```
|
||||
## Clipping Range
|
||||
|
||||
Using the `rgblight_set_clipping_range()` function, you can prepare more buffers than the actual number of LEDs, and output some of the buffers to the LEDs. This is useful if you want the split keyboard to treat left and right LEDs as logically contiguous.
|
||||
@@ -544,8 +543,8 @@ In addition to setting the Clipping Range, you can use `RGBLIGHT_LED_MAP` togeth
|
||||
#define RGBLED_NUM 8
|
||||
#define RGBLIGHT_LED_MAP { 7, 6, 5, 4, 3, 2, 1, 0 }
|
||||
|
||||
// some soruce
|
||||
rgblight_set_clipping_range(3, 4);
|
||||
// some source
|
||||
rgblight_set_clipping_range(3, 4);
|
||||
```
|
||||
<img src="https://user-images.githubusercontent.com/2170248/55743747-119e4c00-5a6e-11e9-91e5-013203ffae8a.JPG" alt="clip mapped" width="70%"/>
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ Eg, if you wanted to set the "Adjust" layer to be layer 5, you'd add this to you
|
||||
| `set_tri_layer_lower_layer(layer)` | Changes the "lower" layer*. |
|
||||
| `set_tri_layer_upper_layer(layer)` | Changes the "upper" layer*. |
|
||||
| `set_tri_layer_adjust_layer(layer)` | Changes the "adjust" layer*. |
|
||||
| `set_tri_layer_layers(lower, upper, adjust)` | Stes the "lower", "upper" and "adjust" layers*. |
|
||||
| `set_tri_layer_layers(lower, upper, adjust)` | Sets the "lower", "upper" and "adjust" layers*. |
|
||||
| `get_tri_layer_lower_layer()` | Gets the current "lower" layer. |
|
||||
| `get_tri_layer_upper_layer()` | Gets the current "upper" layer. |
|
||||
| `get_tri_layer_adjust_layer()` | Gets the current "adjust" layer. |
|
||||
|
||||
@@ -140,7 +140,7 @@ To set the list of enabled input modes, add the `UNICODE_SELECTED_MODES` define
|
||||
```c
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
|
||||
// or
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_MAC, UNICODE_MODE_WINCOMPOSE
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE
|
||||
```
|
||||
|
||||
These modes can then be cycled through using the `UC_NEXT` and `UC_PREV` keycodes. You can also switch to any input mode, even if it is not specified in `UNICODE_SELECTED_MODES`, using their respective keycodes.
|
||||
@@ -151,7 +151,7 @@ If your keyboard has working EEPROM, it will remember the last used input mode a
|
||||
|
||||
### ** macOS **
|
||||
|
||||
**Mode Name:** `UNICODE_MODE_MAC`
|
||||
**Mode Name:** `UNICODE_MODE_MACOS`
|
||||
|
||||
macOS has built-in support for Unicode input as its own input source. It supports all possible code points by way of surrogate pairs for code points above `U+FFFF`.
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||
- standard layouts preferred in these keymaps, if possible
|
||||
- should use [encoder map feature](https://docs.qmk.fm/#/feature_encoders?id=encoder-map), rather than `encoder_update_user()`
|
||||
- default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via`
|
||||
- submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap
|
||||
- submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap
|
||||
- submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board
|
||||
- Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards)
|
||||
- Do not include KLE json files in the PR. These have no use within QMK.
|
||||
|
||||
@@ -235,7 +235,7 @@ Where 'n' matches the peripheral number of your selected USART on the MCU.
|
||||
|
||||
The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU. Because of the flexible nature of the PIO peripherals, **any** GPIO pin can be used as a `TX` or `RX` pin. Half-duplex and Full-duplex operation is fully supported. The Half-duplex operation mode uses the built-in pull-ups and GPIO manipulation on the RP2040 to drive the line high by default. An external pull-up is therefore not necessary.
|
||||
|
||||
Configure the hardware via your config.h:
|
||||
You may optionally switch the PIO peripheral used with the following define in config.h:
|
||||
```c
|
||||
#define SERIAL_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the Serial implementation uses the PIO0 peripheral
|
||||
```
|
||||
|
||||
@@ -170,7 +170,7 @@ To configure it, add this to your rules.mk:
|
||||
WS2812_DRIVER = vendor
|
||||
```
|
||||
|
||||
Configure the hardware via your config.h:
|
||||
You may optionally switch the PIO peripheral used with the following define in config.h:
|
||||
```c
|
||||
#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral
|
||||
```
|
||||
|
||||
20
keyboards/4pplet/waffling60/rev_e_ansi/config.h
Normal file
20
keyboards/4pplet/waffling60/rev_e_ansi/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <mail@4pplet.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/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
|
||||
255
keyboards/4pplet/waffling60/rev_e_ansi/info.json
Normal file
255
keyboards/4pplet/waffling60/rev_e_ansi/info.json
Normal file
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"manufacturer": "4pplet",
|
||||
"keyboard_name": "waffling60 Rev E ANSI HS",
|
||||
"maintainer": "4pplet",
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "A2", "pin_b": "A1", "resolution": 2}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"key_lock": true,
|
||||
"mousekey": false,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B2", "A4", "A3", "A0", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"],
|
||||
"rows": ["B14", "A9", "B6", "B5", "B4"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"rgb_test": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"led_count": 17
|
||||
},
|
||||
"url": "https://github.com/4pplet/waffling60",
|
||||
"usb": {
|
||||
"device_version": "0.0.5",
|
||||
"pid": "0x0015",
|
||||
"vid": "0x4444"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "A8"
|
||||
},
|
||||
"community_layouts": [
|
||||
"60_tsangan_hhkb",
|
||||
"60_hhkb"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [1, 13], "x": 14, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 4], "x":4, "y":4, "w":3},
|
||||
{"label": "Space", "matrix": [4, 6], "x":7, "y":4},
|
||||
{"label": "Space", "matrix": [4, 8], "x":8, "y":4, "w":3},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [1, 13], "x": 14, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [1, 13], "x": 14, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "Bsp", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"label": "Alt", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Win", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w": 7},
|
||||
{"label": "Win", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <mail@4pplet.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] = {
|
||||
// main layer
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_all(
|
||||
QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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) }
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
40
keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c
Normal file
40
keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright 2023 Stefan Sundin "4pplet" <mail@4pplet.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] = {
|
||||
// main layer
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_all(
|
||||
QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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) }
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
24
keyboards/4pplet/waffling60/rev_e_ansi/matrix_diagram.md
Normal file
24
keyboards/4pplet/waffling60/rev_e_ansi/matrix_diagram.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Matrix Diagram for 4pplet Waffling60 Rev E ANSI Hotswap
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │1D │
|
||||
└───────┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │
|
||||
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
|
||||
│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
|
||||
├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴───┤
|
||||
│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB
|
||||
└────┴────┴────┴─────────────────────────────┴────┴────┴────┘
|
||||
┌─────┬───┬─────┬───────────┬───┬───────────┬─────┬───┬─────┐
|
||||
│40 │41 │42 │44 │46 │48 │4B │4C │4D │ 7u split spacebar
|
||||
└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘
|
||||
┌─────┬───┬───────────────────────────────────────┬───┬─────┐
|
||||
│40 │41 │46 │4C │4D │ 10u Spacebar
|
||||
└─────┴───┴───────────────────────────────────────┴───┴─────┘
|
||||
```
|
||||
26
keyboards/4pplet/waffling60/rev_e_ansi/readme.md
Normal file
26
keyboards/4pplet/waffling60/rev_e_ansi/readme.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# waffling60 Rev. E ANSI
|
||||
|
||||
A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. Revision E adds underglow and rotary encoder support.
|
||||
|
||||
More info: https://github.com/4pplet/waffling60
|
||||
|
||||
* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
|
||||
* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 4pplet/waffling60/rev_e_ansi:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make 4pplet/waffling60/rev_e_ansi: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
|
||||
|
||||
How to enter bootloader (DFU):
|
||||
* Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter DFU. When in DFU, it's ready to flash the firmware. If using a APM MCU it will not automatically reset after flash. Simply short the reset-header for a very short time to just reset the PCB, alternatively unplug and repluck the USB-cable to the keyboard.
|
||||
|
||||
Alternative option if the firmware is already pre-flashed:
|
||||
* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
|
||||
2
keyboards/4pplet/waffling60/rev_e_ansi/rules.mk
Normal file
2
keyboards/4pplet/waffling60/rev_e_ansi/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
|
||||
6
keyboards/ai03/duet/config.h
Normal file
6
keyboards/ai03/duet/config.h
Normal file
@@ -0,0 +1,6 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 128
|
||||
139
keyboards/ai03/duet/info.json
Normal file
139
keyboards/ai03/duet/info.json
Normal file
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"manufacturer": "ai03 Design Studio",
|
||||
"keyboard_name": "Duet Switch Tester",
|
||||
"maintainer": "ai03-2725",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": false,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP18", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6"],
|
||||
"rows": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0028",
|
||||
"vid": "0xA103"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 9, "y": 0},
|
||||
{"matrix": [0, 9], "x": 10, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11.25, "y": 0},
|
||||
{"matrix": [0, 11], "x": 12.25, "y": 0},
|
||||
{"matrix": [0, 12], "x": 13.5, "y": 0},
|
||||
{"matrix": [0, 13], "x": 14.5, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.75, "y": 0},
|
||||
{"matrix": [0, 15], "x": 16.75, "y": 0},
|
||||
{"matrix": [0, 16], "x": 18, "y": 0},
|
||||
{"matrix": [0, 17], "x": 19, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.25, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.25, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.75, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.75, "y": 1},
|
||||
{"matrix": [1, 8], "x": 9, "y": 1},
|
||||
{"matrix": [1, 9], "x": 10, "y": 1},
|
||||
{"matrix": [1, 10], "x": 11.25, "y": 1},
|
||||
{"matrix": [1, 11], "x": 12.25, "y": 1},
|
||||
{"matrix": [1, 12], "x": 13.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 14.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 15.75, "y": 1},
|
||||
{"matrix": [1, 15], "x": 16.75, "y": 1},
|
||||
{"matrix": [1, 16], "x": 18, "y": 1},
|
||||
{"matrix": [1, 17], "x": 19, "y": 1},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 9, "y": 2},
|
||||
{"matrix": [2, 9], "x": 10, "y": 2},
|
||||
{"matrix": [2, 10], "x": 11.25, "y": 2},
|
||||
{"matrix": [2, 11], "x": 12.25, "y": 2},
|
||||
{"matrix": [2, 12], "x": 13.5, "y": 2},
|
||||
{"matrix": [2, 13], "x": 14.5, "y": 2},
|
||||
{"matrix": [2, 14], "x": 15.75, "y": 2},
|
||||
{"matrix": [2, 15], "x": 16.75, "y": 2},
|
||||
{"matrix": [2, 16], "x": 18, "y": 2},
|
||||
{"matrix": [2, 17], "x": 19, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.5, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.5, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 12.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 13.5, "y": 3},
|
||||
{"matrix": [3, 13], "x": 14.5, "y": 3},
|
||||
{"matrix": [3, 14], "x": 15.75, "y": 3},
|
||||
{"matrix": [3, 15], "x": 16.75, "y": 3},
|
||||
{"matrix": [3, 16], "x": 18, "y": 3},
|
||||
{"matrix": [3, 17], "x": 19, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4},
|
||||
{"matrix": [4, 4], "x": 4.5, "y": 4},
|
||||
{"matrix": [4, 5], "x": 5.5, "y": 4},
|
||||
{"matrix": [4, 6], "x": 6.75, "y": 4},
|
||||
{"matrix": [4, 7], "x": 7.75, "y": 4},
|
||||
{"matrix": [4, 8], "x": 9, "y": 4},
|
||||
{"matrix": [4, 9], "x": 10, "y": 4},
|
||||
{"matrix": [4, 10], "x": 11.25, "y": 4},
|
||||
{"matrix": [4, 11], "x": 12.25, "y": 4},
|
||||
{"matrix": [4, 12], "x": 13.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14.5, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15.75, "y": 4},
|
||||
{"matrix": [4, 15], "x": 16.75, "y": 4},
|
||||
{"matrix": [4, 16], "x": 18, "y": 4},
|
||||
{"matrix": [4, 17], "x": 19, "y": 4},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5},
|
||||
{"matrix": [5, 1], "x": 1, "y": 5},
|
||||
{"matrix": [5, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [5, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [5, 4], "x": 4.5, "y": 5},
|
||||
{"matrix": [5, 5], "x": 5.5, "y": 5},
|
||||
{"matrix": [5, 6], "x": 6.75, "y": 5},
|
||||
{"matrix": [5, 7], "x": 7.75, "y": 5},
|
||||
{"matrix": [5, 8], "x": 9, "y": 5},
|
||||
{"matrix": [5, 9], "x": 10, "y": 5},
|
||||
{"matrix": [5, 10], "x": 11.25, "y": 5},
|
||||
{"matrix": [5, 11], "x": 12.25, "y": 5},
|
||||
{"matrix": [5, 12], "x": 13.5, "y": 5},
|
||||
{"matrix": [5, 13], "x": 14.5, "y": 5},
|
||||
{"matrix": [5, 14], "x": 15.75, "y": 5},
|
||||
{"matrix": [5, 15], "x": 16.75, "y": 5},
|
||||
{"matrix": [5, 16], "x": 18, "y": 5},
|
||||
{"matrix": [5, 17], "x": 19, "y": 5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
34
keyboards/ai03/duet/keymaps/coordinate/keymap.c
Normal file
34
keyboards/ai03/duet/keymaps/coordinate/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
/* Coordinate keymap - designed to send a string in the format [a-r][0-5] corresponding to the matrix position, where a0 is the top left and r5 is bottom right */
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
/* String generation */
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
if (record->event.pressed) {
|
||||
char col = record->event.key.col + 'a';
|
||||
char row = record->event.key.row + '0';
|
||||
char result[2] = {col, row};
|
||||
send_string(result);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
4
keyboards/ai03/duet/keymaps/coordinate/readme.md
Normal file
4
keyboards/ai03/duet/keymaps/coordinate/readme.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# The coordinate keymap for Duet
|
||||
|
||||
An example keymap which sends a string `[a-r][0-5]` corresponding to the column-row position of the pressed switch.
|
||||
Possibly useful for pairing to a kiosk device provided the display application can parse and handle this format.
|
||||
14
keyboards/ai03/duet/keymaps/default/keymap.c
Normal file
14
keyboards/ai03/duet/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,14 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
|
||||
KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0
|
||||
),
|
||||
};
|
||||
4
keyboards/ai03/duet/keymaps/default/readme.md
Normal file
4
keyboards/ai03/duet/keymaps/default/readme.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# The default keymap for Duet
|
||||
|
||||
Since this is a very irregular keyboard with unique use cases, the keymap should be customized to meet one's needs and to match the requirements of the corresponding display software (if any).
|
||||
By default, all keys send `KC_0` to simply notify the host that an arbitrary key has been pressed.
|
||||
28
keyboards/ai03/duet/readme.md
Normal file
28
keyboards/ai03/duet/readme.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Duet Switch Tester
|
||||
|
||||

|
||||
|
||||
A switch tester intended for event/storefront use
|
||||
|
||||
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
|
||||
* Hardware Supported: The [Duet PCB](https://github.com/ai03-2725/duet-switch-tester/tree/main/Duet-MainPCB), powered by the RP2040
|
||||
* Hardware Availability: [Open-source](https://github.com/ai03-2725/duet-switch-tester)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ai03/duet:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ai03/duet: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 the reset button on the back of the PCB while holding the Bootmode switch
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
1
keyboards/ai03/duet/rules.mk
Normal file
1
keyboards/ai03/duet/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
||||
190
keyboards/akko/5087/5087.c
Normal file
190
keyboards/akko/5087/5087.c
Normal file
@@ -0,0 +1,190 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* 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 "quantum.h"
|
||||
// clang-format off
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
/*row0*/
|
||||
{1, A_1, B_1, C_1},
|
||||
{1, A_2, B_2, C_2},
|
||||
{1, A_3, B_3, C_3},
|
||||
{1, A_4, B_4, C_4},
|
||||
{1, A_5, B_5, C_5},
|
||||
{1, A_6, B_6, C_6},
|
||||
{1, A_7, B_7, C_7},
|
||||
{1, A_8, B_8, C_8},
|
||||
{1, A_9, B_9, C_9},
|
||||
{1, A_10, B_10, C_10},
|
||||
{1, A_11, B_11, C_11},
|
||||
{1, A_12, B_12, C_12},
|
||||
{1, A_13, B_13, C_13},
|
||||
{1, A_14, B_14, C_14},
|
||||
{1, A_15, B_15, C_15},
|
||||
{1, A_16, B_16, C_16},
|
||||
|
||||
/*row1*/
|
||||
{0, A_1, B_1, C_1},
|
||||
{0, A_2, B_2, C_2},
|
||||
{0, A_3, B_3, C_3},
|
||||
{0, A_4, B_4, C_4},
|
||||
{0, A_5, B_5, C_5},
|
||||
{0, A_6, B_6, C_6},
|
||||
{0, A_7, B_7, C_7},
|
||||
{0, A_8, B_8, C_8},
|
||||
{0, A_9, B_9, C_9},
|
||||
{0, A_10, B_10, C_10},
|
||||
{0, A_11, B_11, C_11},
|
||||
{0, A_12, B_12, C_12},
|
||||
{0, A_13, B_13, C_13},
|
||||
{0, A_14, B_14, C_14},
|
||||
{1, D_1, E_1, F_1},
|
||||
{1, D_2, E_2, F_2},
|
||||
{1, D_3, E_3, F_3},
|
||||
|
||||
/*row2*/
|
||||
{0, D_1, E_1, F_1},
|
||||
{0, D_2, E_2, F_2},
|
||||
{0, D_3, E_3, F_3},
|
||||
{0, D_4, E_4, F_4},
|
||||
{0, D_5, E_5, F_5},
|
||||
{0, D_6, E_6, F_6},
|
||||
{0, D_7, E_7, F_7},
|
||||
{0, D_8, E_8, F_8},
|
||||
{0, D_9, E_9, F_9},
|
||||
{0, D_10, E_10, F_10},
|
||||
{0, D_11, E_11, F_11},
|
||||
{0, D_12, E_12, F_12},
|
||||
{0, D_13, E_13, F_13},
|
||||
{0, D_14, E_14, F_14},
|
||||
{1, G_1, H_1, I_1},
|
||||
{1, G_2, H_2, I_2},
|
||||
{1, G_3, H_3, I_3},
|
||||
|
||||
/*row3*/
|
||||
{0, G_1, H_1, I_1},
|
||||
{0, G_2, H_2, I_2},
|
||||
{0, G_3, H_3, I_3},
|
||||
{0, G_4, H_4, I_4},
|
||||
{0, G_5, H_5, I_5},
|
||||
{0, G_6, H_6, I_6},
|
||||
{0, G_7, H_7, I_7},
|
||||
{0, G_8, H_8, I_8},
|
||||
{0, G_9, H_9, I_9},
|
||||
{0, G_10, H_10, I_10},
|
||||
{0, G_11, H_11, I_11},
|
||||
{0, G_12, H_12, I_12},
|
||||
{0, G_13, H_13, I_13},
|
||||
|
||||
/*row4*/
|
||||
{0, J_1, K_1, L_1},
|
||||
{0, J_2, K_2, L_2},
|
||||
{0, J_3, K_3, L_3},
|
||||
{0, J_4, K_4, L_4},
|
||||
{0, J_5, K_5, L_5},
|
||||
{0, J_6, K_6, L_6},
|
||||
{0, J_7, K_7, L_7},
|
||||
{0, J_8, K_8, L_8},
|
||||
{0, J_9, K_9, L_9},
|
||||
{0, J_10, K_10, L_10},
|
||||
{0, J_11, K_11, L_11},
|
||||
{0, J_12, K_12, L_12},
|
||||
{1, J_4, K_4, L_4},
|
||||
|
||||
/*row5*/
|
||||
{0, J_13, K_13, L_13},
|
||||
{0, J_14, K_14, L_14},
|
||||
{0, J_15, K_15, L_15},
|
||||
{0, J_16, K_16, L_16},
|
||||
{0, G_14, H_14, I_14},
|
||||
{0, G_15, H_15, I_15},
|
||||
{0, G_16, H_16, I_16},
|
||||
{0, D_15, E_15, F_15},
|
||||
{1, J_1, K_1, L_1},
|
||||
{1, J_2, K_2, L_2},
|
||||
{1, J_3, K_3, L_3},
|
||||
};
|
||||
#endif // RGB_MATRIX_ENABLE
|
||||
|
||||
enum __layers {
|
||||
WIN_B,
|
||||
WIN_W,
|
||||
WIN_FN,
|
||||
MAC_B,
|
||||
MAC_W,
|
||||
MAC_FN,
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
setPinOutput(LED_MAC_OS_PIN); // LDE2 MAC\WIN
|
||||
writePinLow(LED_MAC_OS_PIN);
|
||||
setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock
|
||||
writePinLow(LED_WIN_LOCK_PIN);
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void housekeeping_task_kb(void){
|
||||
writePin(LED_MAC_OS_PIN, (get_highest_layer(default_layer_state) == 3));
|
||||
writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui);
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
|
||||
if (!process_record_user(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
switch (keycode) {
|
||||
case DF(WIN_B):
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(WIN_B);
|
||||
}
|
||||
return false;
|
||||
case DF(MAC_B):
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(MAC_B);
|
||||
keymap_config.no_gui = 0;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
}
|
||||
return false;
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
} break;
|
||||
default: {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
if (!rgb_matrix_is_enabled()) {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
rgb_matrix_enable();
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
52
keyboards/akko/5087/config.h
Normal file
52
keyboards/akko/5087/config.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* 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
|
||||
|
||||
|
||||
/* LED Indicators */
|
||||
#define LED_MAC_OS_PIN C10
|
||||
#define LED_WIN_LOCK_PIN C11
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* SPI Config for spi flash*/
|
||||
#define SPI_DRIVER SPIDQ
|
||||
#define SPI_SCK_PIN B3
|
||||
#define SPI_MOSI_PIN B5
|
||||
#define SPI_MISO_PIN B4
|
||||
#define SPI_MOSI_PAL_MODE 5
|
||||
|
||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
|
||||
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
||||
|
||||
/* I2C Config for LED Driver */
|
||||
#define DRIVER_COUNT 2
|
||||
#define DRIVER_ADDR_1 0b1110100
|
||||
#define DRIVER_ADDR_2 0b1110111
|
||||
#define I2C1_OPMODE OPMODE_I2C
|
||||
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 87
|
||||
|
||||
#define RGB_TRIGGER_ON_KEYDOWN
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
|
||||
23
keyboards/akko/5087/halconf.h
Normal file
23
keyboards/akko/5087/halconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* 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 HAL_USE_I2C TRUE
|
||||
#define HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
||||
253
keyboards/akko/5087/info.json
Normal file
253
keyboards/akko/5087/info.json
Normal file
@@ -0,0 +1,253 @@
|
||||
{
|
||||
"keyboard_name": "5087",
|
||||
"manufacturer": "Akko",
|
||||
"url":"https://www.akkogear.com",
|
||||
"maintainer": "jonylee@hfd",
|
||||
"usb": {
|
||||
"vid": "0xFFFE",
|
||||
"pid": "0x000C",
|
||||
"device_version": "1.0.4",
|
||||
"suspend_wakeup_delay": 400,
|
||||
"force_nkro": true
|
||||
},
|
||||
"processor": "WB32FQ95",
|
||||
"bootloader": "wb32-dfu",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": false,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"command": false,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 6
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10"],
|
||||
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"indicators": {
|
||||
"caps_lock": "A15"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ckled2001",
|
||||
"max_brightness": 180,
|
||||
"animations": {
|
||||
"breathing": 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,
|
||||
"raindrops": true,
|
||||
"typing_heatmap": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"multisplash": true
|
||||
},
|
||||
"layout":[
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 24, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 38, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 52, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 66, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 82, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 96, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 7], "x":110, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 8], "x":124, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 9], "x":140, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 10], "x":154, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 11], "x":168, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 12], "x":182, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 14], "x":196, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 15], "x":210, "y": 0},
|
||||
{ "flags": 4, "matrix": [0, 16], "x":224, "y": 0},
|
||||
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 0, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 13, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 26, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 39, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 52, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 65, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 79, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 92, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 8], "x":105, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 9], "x":118, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 10], "x":131, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 11], "x":144, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 12], "x":158, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 13], "x":171, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 14], "x":184, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 15], "x":197, "y": 12},
|
||||
{ "flags": 4, "matrix": [1, 16], "x":210, "y": 12},
|
||||
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 0, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 14, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 28, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 42, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 56, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 70, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 84, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 98, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 8], "x":112, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 9], "x":126, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 10], "x":140, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 11], "x":154, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 12], "x":168, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 13], "x":182, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 14], "x":196, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 15], "x":210, "y": 26},
|
||||
{ "flags": 4, "matrix": [2, 16], "x":224, "y": 26},
|
||||
|
||||
{ "flags": 4, "matrix": [3, 0], "x": 0, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 14, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 28, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 42, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 56, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 70, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 84, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 98, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 8], "x":112, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 9], "x":126, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 10], "x":140, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 11], "x":154, "y": 38},
|
||||
{ "flags": 4, "matrix": [3, 13], "x":182, "y": 38},
|
||||
|
||||
{ "flags": 4, "matrix": [4, 0], "x": 0, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 1], "x": 14, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 2], "x": 28, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 3], "x": 42, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 4], "x": 56, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 70, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 6], "x": 84, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 7], "x": 98, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 8], "x":112, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 9], "x":126, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 10], "x":140, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 13], "x":154, "y": 51},
|
||||
{ "flags": 4, "matrix": [4, 15], "x":182, "y": 51},
|
||||
|
||||
{ "flags": 4, "matrix": [5, 0], "x": 0, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 1], "x": 14, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 2], "x": 28, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 5], "x": 70, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 9], "x":126, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 10], "x":140, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 11], "x":154, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 13], "x":182, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 14], "x":196, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 15], "x":210, "y": 64},
|
||||
{ "flags": 4, "matrix": [5, 16], "x":224, "y": 64}
|
||||
|
||||
]
|
||||
},
|
||||
"community_layouts": ["tkl_ansi"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{ "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 },
|
||||
{ "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 },
|
||||
{ "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 },
|
||||
{ "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 },
|
||||
{ "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 },
|
||||
{ "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 },
|
||||
{ "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 },
|
||||
{ "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 },
|
||||
{ "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 },
|
||||
{ "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 },
|
||||
{ "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 },
|
||||
{ "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 },
|
||||
{ "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||
|
||||
{ "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 },
|
||||
{ "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 },
|
||||
{ "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 },
|
||||
{ "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 },
|
||||
{ "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 },
|
||||
{ "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 },
|
||||
{ "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 },
|
||||
{ "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 },
|
||||
{ "label": ")", "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": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 },
|
||||
{ "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "label": "PgUp", "matrix": [1, 16], "x": 17.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": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 },
|
||||
|
||||
{ "label": "Caps Lock", "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, 13], "x": 12.75, "y": 3.25, "w": 2.25 },
|
||||
|
||||
{ "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 },
|
||||
{ "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 },
|
||||
{ "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 },
|
||||
{ "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 },
|
||||
{ "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 },
|
||||
{ "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 },
|
||||
{ "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 },
|
||||
{ "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 },
|
||||
{ "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 },
|
||||
{ "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 },
|
||||
{ "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 },
|
||||
{ "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
|
||||
{ "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Win", "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, 5], "x": 3.75, "y": 5.25, "w": 6.25 },
|
||||
{ "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
79
keyboards/akko/5087/keymaps/default/keymap.c
Normal file
79
keyboards/akko/5087/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,79 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* 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
|
||||
|
||||
enum __layers {
|
||||
WIN_B,
|
||||
WIN_W,
|
||||
WIN_FN,
|
||||
MAC_B,
|
||||
MAC_W,
|
||||
MAC_FN
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[WIN_B] = LAYOUT_tkl_ansi( /* Base */
|
||||
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, KC_SCRL, KC_PAUS,
|
||||
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_INS, KC_HOME, KC_PGUP,
|
||||
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_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_W] = LAYOUT_tkl_ansi( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
|
||||
|
||||
|
||||
[WIN_FN] = LAYOUT_tkl_ansi( /* FN */
|
||||
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
|
||||
|
||||
[MAC_B] = LAYOUT_tkl_ansi( /* Base */
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
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_INS, KC_HOME, KC_PGUP,
|
||||
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_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_W] = LAYOUT_tkl_ansi( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
|
||||
[MAC_FN] = LAYOUT_tkl_ansi( /* FN */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
|
||||
};
|
||||
// clang-format on
|
||||
79
keyboards/akko/5087/keymaps/via/keymap.c
Normal file
79
keyboards/akko/5087/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,79 @@
|
||||
/* Copyright (C) 2023 jonylee@hfd
|
||||
*
|
||||
* 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
|
||||
|
||||
enum __layers {
|
||||
WIN_B,
|
||||
WIN_W,
|
||||
WIN_FN,
|
||||
MAC_B,
|
||||
MAC_W,
|
||||
MAC_FN,
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[WIN_B] = LAYOUT_tkl_ansi( /* Base */
|
||||
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, KC_SCRL, KC_PAUS,
|
||||
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_INS, KC_HOME, KC_PGUP,
|
||||
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_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_W] = LAYOUT_tkl_ansi( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
|
||||
|
||||
|
||||
[WIN_FN] = LAYOUT_tkl_ansi( /* FN */
|
||||
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
|
||||
|
||||
[MAC_B] = LAYOUT_tkl_ansi( /* Base */
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
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_INS, KC_HOME, KC_PGUP,
|
||||
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_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_W] = LAYOUT_tkl_ansi( /* Base */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
|
||||
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
|
||||
[MAC_FN] = LAYOUT_tkl_ansi( /* FN */
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
|
||||
_______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
|
||||
};
|
||||
// clang-format on
|
||||
1
keyboards/akko/5087/keymaps/via/rules.mk
Normal file
1
keyboards/akko/5087/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
24
keyboards/akko/5087/mcuconf.h
Normal file
24
keyboards/akko/5087/mcuconf.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/* Copyright (C) 2022 jonylee@hfd
|
||||
*
|
||||
* 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 WB32_SPI_USE_QSPI
|
||||
#define WB32_SPI_USE_QSPI TRUE
|
||||
|
||||
#undef WB32_I2C_USE_I2C1
|
||||
#define WB32_I2C_USE_I2C1 TRUE
|
||||
19
keyboards/akko/5087/readme.md
Normal file
19
keyboards/akko/5087/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# 5087
|
||||
|
||||
A customizable 80% keyboard.
|
||||
|
||||
* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986)
|
||||
* Hardware Supported:Akko 5087
|
||||
* Hardware Availability: [akko](https://www.akkogear.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make akko/5087:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make akko/5087:default:flash
|
||||
|
||||
**Reset Key**: Hold down the key located at *K000*, which programmed as *Esc* while plugging in the keyboard.
|
||||
|
||||
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).
|
||||
3
keyboards/akko/5087/rules.mk
Normal file
3
keyboards/akko/5087/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = spi_flash
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
@@ -211,7 +211,7 @@
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
@@ -282,7 +282,7 @@
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
@@ -354,7 +354,7 @@
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
@@ -424,7 +424,7 @@
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
@@ -496,7 +496,7 @@
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
Most of these are "best-guess." I was using photos I found on ZFrontier as a
|
||||
reference and I don't have the PCB on-hand.
|
||||
- @noroadsleft
|
||||
2023-01-20
|
||||
|
||||
\- @noroadsleft, 2023-11-21
|
||||
|
||||
```
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0E │ 2u Backspace
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0D │ 2u Backspace
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤
|
||||
│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
|
||||
|
||||
210
keyboards/alpaca/wfeclipse/info.json
Normal file
210
keyboards/alpaca/wfeclipse/info.json
Normal file
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"manufacturer": "Alpaca",
|
||||
"keyboard_name": "WFEclipse",
|
||||
"bootloader": "stm32duino",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C11", "C10", "A15", "A10", "A9", "A8", "C9", "C8", "C7", "C6", "B1", "B0", "C5", "C4", "A7", "A6"],
|
||||
"rows": ["A0", "A1", "A2", "A3", "A4"]
|
||||
},
|
||||
"processor": "STM32F103",
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"band_sat": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"band_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"gradient_left_right": true,
|
||||
"gradient_up_down": true,
|
||||
"hue_wave": true,
|
||||
"pixel_fractal": true,
|
||||
"solid_color": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_splash": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [4, 15], "x": 198, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 14], "x": 186, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 13], "x": 174, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 12], "x": 150, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 11], "x": 138, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 10], "x": 126, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 6], "x": 51, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 2], "x": 36, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 1], "x": 21, "y": 54, "flags": 1},
|
||||
{"matrix": [4, 0], "x": 6, "y": 54, "flags": 1},
|
||||
{"matrix": [3, 15], "x": 198, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 14], "x": 186, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 13], "x": 153, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 11], "x": 141, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 10], "x": 129, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 9], "x": 117, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 8], "x": 105, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 7], "x": 93, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 6], "x": 81, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 5], "x": 69, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 4], "x": 57, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 3], "x": 45, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 2], "x": 33, "y": 42, "flags": 1},
|
||||
{"matrix": [3, 0], "x": 6, "y": 42, "flags": 1},
|
||||
{"matrix": [2, 15], "x": 198, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 14], "x": 186, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 13], "x": 159, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 11], "x": 147, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 10], "x": 135, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 9], "x": 123, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 8], "x": 111, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 7], "x": 99, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 6], "x": 87, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 5], "x": 75, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 4], "x": 63, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 3], "x": 51, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 2], "x": 39, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 1], "x": 27, "y": 30, "flags": 1},
|
||||
{"matrix": [2, 0], "x": 6, "y": 30, "flags": 1},
|
||||
{"matrix": [1, 15], "x": 198, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 14], "x": 186, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 13], "x": 168, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 12], "x": 156, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 11], "x": 144, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 10], "x": 132, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 9], "x": 120, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 8], "x": 108, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 7], "x": 96, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 6], "x": 84, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 5], "x": 72, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 4], "x": 60, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 3], "x": 48, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 2], "x": 36, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 1], "x": 24, "y": 18, "flags": 1},
|
||||
{"matrix": [1, 0], "x": 6, "y": 18, "flags": 1},
|
||||
{"matrix": [0, 15], "x": 198, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 14], "x": 186, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 13], "x": 162, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 12], "x": 150, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 11], "x": 138, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 10], "x": 126, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 9], "x": 114, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 8], "x": 102, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 7], "x": 90, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 6], "x": 78, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 5], "x": 66, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 4], "x": 54, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 3], "x": 42, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 2], "x": 30, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 1], "x": 18, "y": 6, "flags": 1},
|
||||
{"matrix": [0, 0], "x": 6, "y": 6, "flags": 1},
|
||||
{"x": 125, "y": 1, "flags": 4},
|
||||
{"x": 125, "y": 2, "flags": 4},
|
||||
{"x": 125, "y": 3, "flags": 4},
|
||||
{"x": 125, "y": 4, "flags": 4},
|
||||
{"x": 125, "y": 5, "flags": 4},
|
||||
{"x": 125, "y": 6, "flags": 4},
|
||||
{"x": 125, "y": 7, "flags": 4},
|
||||
{"x": 125, "y": 8, "flags": 4},
|
||||
{"x": 125, "y": 9, "flags": 4},
|
||||
{"x": 125, "y": 10, "flags": 4},
|
||||
{"x": 125, "y": 11, "flags": 4},
|
||||
{"x": 125, "y": 12, "flags": 4}
|
||||
],
|
||||
"max_brightness": 50
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "1.0.4",
|
||||
"pid": "0x0038",
|
||||
"vid": "0x308F"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B8"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "MINS", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "EQL", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "BSPC", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "DEL", "matrix": [0, 14], "x": 15, "y": 0},
|
||||
{"label": "INS", "matrix": [0, 15], "x": 16, "y": 0},
|
||||
{"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "LBRC", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "RBRC", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "BSLS", "matrix": [1, 13], "x": 13.5, "y": 1},
|
||||
{"label": "HOME", "matrix": [1, 14], "x": 15, "y": 1},
|
||||
{"label": "PGUP", "matrix": [1, 15], "x": 16, "y": 1},
|
||||
{"label": "CAPS", "matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": "SCLN", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "QUOT", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "ENT", "matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"label": "END", "matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"label": "PGDN", "matrix": [2, 15], "x": 16, "y": 2},
|
||||
{"label": "LSFT", "matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "COMM", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": "DOT", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "SLSH", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "RSFT", "matrix": [3, 13], "x": 12.25, "y": 3},
|
||||
{"label": "UP", "matrix": [3, 14], "x": 15, "y": 3},
|
||||
{"label": "MO(1)", "matrix": [3, 15], "x": 16, "y": 3},
|
||||
{"label": "LCTL", "matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"label": "LGUI", "matrix": [4, 1], "x": 1.25, "y": 4},
|
||||
{"label": "LALT", "matrix": [4, 2], "x": 2.5, "y": 4},
|
||||
{"label": "SPC", "matrix": [4, 6], "x": 3.75, "y": 4},
|
||||
{"label": "RALT", "matrix": [4, 10], "x": 10, "y": 4},
|
||||
{"label": "RGUI", "matrix": [4, 11], "x": 11, "y": 4},
|
||||
{"label": "RCTL", "matrix": [4, 12], "x": 12, "y": 4},
|
||||
{"label": "LEFT", "matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"label": "DOWN", "matrix": [4, 14], "x": 15, "y": 4},
|
||||
{"label": "RGHT", "matrix": [4, 15], "x": 16, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
39
keyboards/alpaca/wfeclipse/keymaps/default/keymap.c
Normal file
39
keyboards/alpaca/wfeclipse/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2023 temp4gh
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layer_names {
|
||||
WIN_BASE,
|
||||
WIN_FN,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[WIN_BASE] =LAYOUT(
|
||||
QK_GESC, 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_DEL, KC_INS,
|
||||
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_HOME, 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_END , KC_PGDN,
|
||||
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, MO(WIN_FN),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[WIN_FN] =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_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ,KC_MPRV, 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_MPLY, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
39
keyboards/alpaca/wfeclipse/keymaps/via/keymap.c
Normal file
39
keyboards/alpaca/wfeclipse/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2023 temp4gh
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layer_names {
|
||||
WIN_BASE,
|
||||
WIN_FN,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[WIN_BASE] =LAYOUT(
|
||||
QK_GESC, 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_DEL, KC_INS,
|
||||
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_HOME, 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_END , KC_PGDN,
|
||||
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, MO(WIN_FN),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[WIN_FN] =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_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ,KC_MPRV, 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_MPLY, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
1
keyboards/alpaca/wfeclipse/keymaps/via/rules.mk
Normal file
1
keyboards/alpaca/wfeclipse/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
26
keyboards/alpaca/wfeclipse/readme.md
Normal file
26
keyboards/alpaca/wfeclipse/readme.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Alpaca Keyboards whitefox-eclipse
|
||||
|
||||

|
||||
|
||||
A customizable 68% keyboard.
|
||||
|
||||
- Keyboard Maintainer: [temp4gh](https://github.com/temp4gh)
|
||||
- Hardware Supported: whitefox-eclipse PCB
|
||||
- Hardware Availability: https://kono.store/collections/all-products-list/products/whitefox-eclipse?variant=43224249991367
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make alpaca/wfeclipse:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make alpaca/wfeclipse: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 2 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
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
1
keyboards/alpaca/wfeclipse/rules.mk
Normal file
1
keyboards/alpaca/wfeclipse/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
||||
17
keyboards/beekeeb/piantor_pro/config.h
Normal file
17
keyboards/beekeeb/piantor_pro/config.h
Normal file
@@ -0,0 +1,17 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
|
||||
|
||||
#define SERIAL_USART_FULL_DUPLEX
|
||||
#define SERIAL_USART_TX_PIN GP0
|
||||
#define SERIAL_USART_RX_PIN GP1
|
||||
#define SERIAL_USART_PIN_SWAP
|
||||
|
||||
#define USB_VBUS_PIN GP19
|
||||
|
||||
#define SPLIT_HAND_PIN GP17
|
||||
#define SPLIT_HAND_PIN_LOW_IS_LEFT
|
||||
78
keyboards/beekeeb/piantor_pro/info.json
Normal file
78
keyboards/beekeeb/piantor_pro/info.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"manufacturer": "beekeeb",
|
||||
"keyboard_name": "piantor_pro",
|
||||
"maintainer": "beekeeb",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP16"],
|
||||
"rows": ["GP7", "GP8", "GP9", "GP10"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0002",
|
||||
"vid": "0xBEEB"
|
||||
},
|
||||
"split": {
|
||||
"enabled": true
|
||||
},
|
||||
"community_layouts": [ "split_3x6_3" ],
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x6_3": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.25},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.25},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.125},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.125},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0.25},
|
||||
{"matrix": [4, 5], "x": 8, "y": 0.25},
|
||||
{"matrix": [4, 4], "x": 9, "y": 0.125},
|
||||
{"matrix": [4, 3], "x": 10, "y": 0},
|
||||
{"matrix": [4, 2], "x": 11, "y": 0.125},
|
||||
{"matrix": [4, 1], "x": 12, "y": 0.25},
|
||||
{"matrix": [4, 0], "x": 13, "y": 0.25},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.125},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.125},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [5, 5], "x": 8, "y": 1.25},
|
||||
{"matrix": [5, 4], "x": 9, "y": 1.125},
|
||||
{"matrix": [5, 3], "x": 10, "y": 1},
|
||||
{"matrix": [5, 2], "x": 11, "y": 1.125},
|
||||
{"matrix": [5, 1], "x": 12, "y": 1.25},
|
||||
{"matrix": [5, 0], "x": 13, "y": 1.25},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.25},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.25},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.125},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.125},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2.25},
|
||||
{"matrix": [6, 5], "x": 8, "y": 2.25},
|
||||
{"matrix": [6, 4], "x": 9, "y": 2.125},
|
||||
{"matrix": [6, 3], "x": 10, "y": 2},
|
||||
{"matrix": [6, 2], "x": 11, "y": 2.125},
|
||||
{"matrix": [6, 1], "x": 12, "y": 2.25},
|
||||
{"matrix": [6, 0], "x": 13, "y": 2.25},
|
||||
{"matrix": [3, 3], "x": 3.5, "y": 3.25},
|
||||
{"matrix": [3, 4], "x": 4.5, "y": 3.5},
|
||||
{"matrix": [3, 5], "x": 5.5, "y": 3.75},
|
||||
{"matrix": [7, 5], "x": 7.5, "y": 3.75},
|
||||
{"matrix": [7, 4], "x": 8.5, "y": 3.5},
|
||||
{"matrix": [7, 3], "x": 9.5, "y": 3.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
55
keyboards/beekeeb/piantor_pro/keymaps/default/keymap.c
Normal file
55
keyboards/beekeeb/piantor_pro/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,55 @@
|
||||
// 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_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
|
||||
),
|
||||
|
||||
[1] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, KC_SPC, KC_ENT, MO(3), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[2] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[3] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
)
|
||||
};
|
||||
20
keyboards/beekeeb/piantor_pro/readme.md
Normal file
20
keyboards/beekeeb/piantor_pro/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Piantor Pro
|
||||
|
||||

|
||||
|
||||
A 42 key hotswappable keyboard with RP2040.
|
||||
|
||||
* Keyboard Maintainer: [beekeeb](https://github.com/beekeeb)
|
||||
* Hardware Availability: [beekeeb.shop](https://beekeeb.shop)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make beekeeb/piantor_pro: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).
|
||||
|
||||
## Flashing
|
||||
|
||||
To enter the bootloader mode, disconnect the keyboard from the computer. While holding the BOOT button, connect the keyboard to the computer.
|
||||
|
||||
Run `make beekeeb/piantor_pro:default:flash` or copy the compiled uf2 firmware to the USB mass storage device.
|
||||
1
keyboards/beekeeb/piantor_pro/rules.mk
Normal file
1
keyboards/beekeeb/piantor_pro/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
SERIAL_DRIVER = vendor
|
||||
@@ -11,8 +11,9 @@
|
||||
"development_board": "promicro",
|
||||
"diode_direction": "ROW2COL",
|
||||
"matrix_pins": {
|
||||
"cols": ["B3", "B2", "B6"],
|
||||
"rows": ["B5"]
|
||||
"direct": [
|
||||
["B3", "B2", "B6"]
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
|
||||
@@ -19,8 +19,6 @@ Here are some included keymaps and their modes to get you started:
|
||||
* vc_i: the same as default but using `i` instead of `a`
|
||||
* vim_ai: vim clutch only, selectable between `a` and `i`
|
||||
|
||||
Also includes a mode for single-keypress in case of "push to talk clutch"
|
||||
|
||||
Make example for this keyboard after setting up your development environment:
|
||||
|
||||
make blu/vimclutch:default
|
||||
@@ -34,3 +32,7 @@ Flashing example for this keyboard:
|
||||
Reset button on the reverse side of the enclosure for initializing flashing.
|
||||
|
||||
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).
|
||||
|
||||
## Hardware Revision Compatibility
|
||||
This keyboard as-it-is in the QMK repository at the is only designed to work with Revision B (and possibly beyond!)
|
||||
|
||||
|
||||
23
keyboards/boardsource/equals/48/config.h
Normal file
23
keyboards/boardsource/equals/48/config.h
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 58
|
||||
|
||||
#define AUDIO_PIN GP29
|
||||
#define AUDIO_PWM_DRIVER PWMD6
|
||||
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B
|
||||
|
||||
#define AUDIO_INIT_DELAY
|
||||
|
||||
// SPI Configuration
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN GP26
|
||||
#define SPI_MOSI_PIN GP27
|
||||
|
||||
// Display Configuration
|
||||
#define OLED_CS_PIN GP25
|
||||
#define OLED_DC_PIN GP20
|
||||
#define OLED_RST_PIN GP28
|
||||
9
keyboards/boardsource/equals/48/halconf.h
Normal file
9
keyboards/boardsource/equals/48/halconf.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
180
keyboards/boardsource/equals/48/info.json
Normal file
180
keyboards/boardsource/equals/48/info.json
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"keyboard_name": "Equals 48",
|
||||
"bootloader": "rp2040",
|
||||
"processor": "RP2040",
|
||||
"features": {
|
||||
"audio":true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11"],
|
||||
"rows": ["GP12", "GP13", "GP16", "GP17"]
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP21"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812",
|
||||
"max_brightness": 150,
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_sat": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"band_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"cycle_up_down": true,
|
||||
"digital_rain": true,
|
||||
"dual_beacon": true,
|
||||
"gradient_left_right": true,
|
||||
"gradient_up_down": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"jellybean_raindrops": true,
|
||||
"multisplash": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"solid_multisplash": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"typing_heatmap": true
|
||||
},
|
||||
"layout": [
|
||||
{ "flags": 2, "x": 220, "y": 17 },
|
||||
{ "flags": 2, "x": 172, "y": 17 },
|
||||
{ "flags": 2, "x": 112, "y": 17 },
|
||||
{ "flags": 2, "x": 50, "y": 17 },
|
||||
{ "flags": 2, "x": 4, "y": 17 },
|
||||
{ "flags": 2, "x": 4, "y": 56 },
|
||||
{ "flags": 2, "x": 50, "y": 56 },
|
||||
{ "flags": 2, "x": 112, "y": 56 },
|
||||
{ "flags": 2, "x": 172, "y": 56 },
|
||||
{ "flags": 2, "x": 220, "y": 56 },
|
||||
{ "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 },
|
||||
{ "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 40, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 61, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 81, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 101, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 },
|
||||
{ "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 },
|
||||
{ "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 },
|
||||
{ "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 },
|
||||
{ "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 1], "x": 20, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 2], "x": 40, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 3], "x": 61, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 4], "x": 81, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 6], "x": 122, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 7], "x": 142, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 8], "x": 162, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 9], "x": 183, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 10], "x": 203, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 }
|
||||
]
|
||||
},
|
||||
"community_layouts": ["ortho_4x12"],
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"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": [1, 0], "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11, "y": 2 },
|
||||
{ "matrix": [3, 0], "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 4, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 5, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 6, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 7, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 8, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 9, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 10, "y": 3 },
|
||||
{ "matrix": [3, 11], "x": 11, "y": 3 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
33
keyboards/boardsource/equals/48/keymaps/default/keymap.c
Normal file
33
keyboards/boardsource/equals/48/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,33 @@
|
||||
// Copyright 2022 @boardsource
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_MAIN,
|
||||
_RAISE,
|
||||
_LOWER
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MAIN] = LAYOUT_ortho_4x12(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RAISE] = LAYOUT_ortho_4x12(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LOWER] = LAYOUT_ortho_4x12(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
)
|
||||
};
|
||||
34
keyboards/boardsource/equals/48/keymaps/via/keymap.c
Normal file
34
keyboards/boardsource/equals/48/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
// Copyright 2022 @boardsource
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_MAIN,
|
||||
_RAISE,
|
||||
_LOWER
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MAIN] = LAYOUT_ortho_4x12(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RAISE] = LAYOUT_ortho_4x12(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LOWER] = LAYOUT_ortho_4x12(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
|
||||
|
||||
};
|
||||
1
keyboards/boardsource/equals/48/keymaps/via/rules.mk
Normal file
1
keyboards/boardsource/equals/48/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
11
keyboards/boardsource/equals/48/mcuconf.h
Normal file
11
keyboards/boardsource/equals/48/mcuconf.h
Normal file
@@ -0,0 +1,11 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_PWM_USE_PWM6
|
||||
#define RP_PWM_USE_PWM6 TRUE
|
||||
|
||||
#undef RP_SPI_USE_SPI1
|
||||
#define RP_SPI_USE_SPI1 TRUE
|
||||
3
keyboards/boardsource/equals/48/rules.mk
Normal file
3
keyboards/boardsource/equals/48/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
AUDIO_DRIVER = pwm_hardware
|
||||
QUANTUM_PAINTER_ENABLE = yes
|
||||
QUANTUM_PAINTER_DRIVERS += st7735_spi
|
||||
23
keyboards/boardsource/equals/60/config.h
Normal file
23
keyboards/boardsource/equals/60/config.h
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 70
|
||||
|
||||
#define AUDIO_PIN GP29
|
||||
#define AUDIO_PWM_DRIVER PWMD6
|
||||
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B
|
||||
|
||||
#define AUDIO_INIT_DELAY
|
||||
|
||||
// SPI Configuration
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN GP26
|
||||
#define SPI_MOSI_PIN GP27
|
||||
|
||||
// Display Configuration
|
||||
#define OLED_CS_PIN GP25
|
||||
#define OLED_DC_PIN GP20
|
||||
#define OLED_RST_PIN GP28
|
||||
9
keyboards/boardsource/equals/60/halconf.h
Normal file
9
keyboards/boardsource/equals/60/halconf.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
203
keyboards/boardsource/equals/60/info.json
Normal file
203
keyboards/boardsource/equals/60/info.json
Normal file
@@ -0,0 +1,203 @@
|
||||
{
|
||||
"keyboard_name": "Equals 60",
|
||||
"bootloader": "rp2040",
|
||||
"processor": "RP2040",
|
||||
"features": {
|
||||
"audio":true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11"],
|
||||
"rows": ["GP12", "GP13", "GP16", "GP17", "GP18"]
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP21"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812",
|
||||
"max_brightness": 150,
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_sat": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"band_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"cycle_up_down": true,
|
||||
"digital_rain": true,
|
||||
"dual_beacon": true,
|
||||
"gradient_left_right": true,
|
||||
"gradient_up_down": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"jellybean_raindrops": true,
|
||||
"multisplash": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"solid_multisplash": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"typing_heatmap": true
|
||||
},
|
||||
"layout": [
|
||||
{ "flags": 2, "x": 220, "y": 17 },
|
||||
{ "flags": 2, "x": 172, "y": 17 },
|
||||
{ "flags": 2, "x": 112, "y": 17 },
|
||||
{ "flags": 2, "x": 50, "y": 17 },
|
||||
{ "flags": 2, "x": 4, "y": 17 },
|
||||
{ "flags": 2, "x": 4, "y": 56 },
|
||||
{ "flags": 2, "x": 50, "y": 56 },
|
||||
{ "flags": 2, "x": 112, "y": 56 },
|
||||
{ "flags": 2, "x": 172, "y": 56 },
|
||||
{ "flags": 2, "x": 220, "y": 56 },
|
||||
{ "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 },
|
||||
{ "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 40, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 61, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 81, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 101, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 },
|
||||
{ "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 },
|
||||
{ "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 },
|
||||
{ "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 },
|
||||
{ "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 20, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 40, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 61, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 81, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 122, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 142, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 8], "x": 162, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 9], "x": 183, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 10], "x": 203, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 },
|
||||
{ "flags": 1, "matrix": [4, 0], "x": 0, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 1], "x": 20, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 2], "x": 40, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 3], "x": 61, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 4], "x": 81, "y": 86 },
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 111, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 7], "x": 142, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 8], "x": 162, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 9], "x": 183, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 10], "x": 203, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 11], "x": 224, "y": 86 }
|
||||
]
|
||||
},
|
||||
"community_layouts": ["ortho_5x12"],
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x12": {
|
||||
"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": [1, 0], "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11, "y": 2 },
|
||||
{ "matrix": [3, 0], "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 4, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 5, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 6, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 7, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 8, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 9, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 10, "y": 3 },
|
||||
{ "matrix": [3, 11], "x": 11, "y": 3 },
|
||||
{ "matrix": [4, 0], "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "x": 1, "y": 4 },
|
||||
{ "matrix": [4, 2], "x": 2, "y": 4 },
|
||||
{ "matrix": [4, 3], "x": 3, "y": 4 },
|
||||
{ "matrix": [4, 4], "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 5], "x": 5, "y": 4 },
|
||||
{ "matrix": [4, 6], "x": 6, "y": 4 },
|
||||
{ "matrix": [4, 7], "x": 7, "y": 4 },
|
||||
{ "matrix": [4, 8], "x": 8, "y": 4 },
|
||||
{ "matrix": [4, 9], "x": 9, "y": 4 },
|
||||
{ "matrix": [4, 10], "x": 10, "y": 4 },
|
||||
{ "matrix": [4, 11], "x": 11, "y": 4 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
36
keyboards/boardsource/equals/60/keymaps/default/keymap.c
Normal file
36
keyboards/boardsource/equals/60/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_MAIN,
|
||||
_RAISE,
|
||||
_LOWER
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MAIN] = LAYOUT_ortho_5x12(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RGB_MOD, RGB_TOG
|
||||
),
|
||||
[_RAISE] = LAYOUT_ortho_5x12(
|
||||
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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
_______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
|
||||
KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LOWER] = LAYOUT_ortho_5x12(
|
||||
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_UP, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
)
|
||||
};
|
||||
36
keyboards/boardsource/equals/60/keymaps/via/keymap.c
Normal file
36
keyboards/boardsource/equals/60/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_MAIN,
|
||||
_RAISE,
|
||||
_LOWER
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MAIN] = LAYOUT_ortho_5x12(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RAISE] = LAYOUT_ortho_5x12(
|
||||
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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
_______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
|
||||
KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LOWER] = LAYOUT_ortho_5x12(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
_______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
)
|
||||
};
|
||||
1
keyboards/boardsource/equals/60/keymaps/via/rules.mk
Normal file
1
keyboards/boardsource/equals/60/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
11
keyboards/boardsource/equals/60/mcuconf.h
Normal file
11
keyboards/boardsource/equals/60/mcuconf.h
Normal file
@@ -0,0 +1,11 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_PWM_USE_PWM6
|
||||
#define RP_PWM_USE_PWM6 TRUE
|
||||
|
||||
#undef RP_SPI_USE_SPI1
|
||||
#define RP_SPI_USE_SPI1 TRUE
|
||||
3
keyboards/boardsource/equals/60/rules.mk
Normal file
3
keyboards/boardsource/equals/60/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
AUDIO_DRIVER = pwm_hardware
|
||||
QUANTUM_PAINTER_ENABLE = yes
|
||||
QUANTUM_PAINTER_DRIVERS += st7735_spi
|
||||
4
keyboards/boardsource/equals/avr/config.h
Normal file
4
keyboards/boardsource/equals/avr/config.h
Normal file
@@ -0,0 +1,4 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
#define RGB_MATRIX_LED_COUNT 70
|
||||
202
keyboards/boardsource/equals/avr/info.json
Normal file
202
keyboards/boardsource/equals/avr/info.json
Normal file
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"keyboard_name": "Equals kit",
|
||||
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"development_board": "promicro",
|
||||
"matrix_pins": {
|
||||
"cols": ["F4","F5","F6","F7","B1","B3","B2","B6","B5","B4","E6","D7"],
|
||||
"rows": ["D3","D2","D1","D0","D4"]
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "C6"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812",
|
||||
"max_brightness": 150,
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_sat": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"band_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"cycle_up_down": true,
|
||||
"digital_rain": true,
|
||||
"dual_beacon": true,
|
||||
"gradient_left_right": true,
|
||||
"gradient_up_down": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"jellybean_raindrops": true,
|
||||
"multisplash": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"solid_multisplash": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"typing_heatmap": true
|
||||
},
|
||||
"layout": [
|
||||
{ "flags": 2, "x": 220, "y": 17 },
|
||||
{ "flags": 2, "x": 172, "y": 17 },
|
||||
{ "flags": 2, "x": 112, "y": 17 },
|
||||
{ "flags": 2, "x": 50, "y": 17 },
|
||||
{ "flags": 2, "x": 4, "y": 17 },
|
||||
{ "flags": 2, "x": 4, "y": 56 },
|
||||
{ "flags": 2, "x": 50, "y": 56 },
|
||||
{ "flags": 2, "x": 112, "y": 56 },
|
||||
{ "flags": 2, "x": 172, "y": 56 },
|
||||
{ "flags": 2, "x": 220, "y": 56 },
|
||||
{ "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 },
|
||||
{ "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 40, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 61, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 81, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 101, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 },
|
||||
{ "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 },
|
||||
{ "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 },
|
||||
{ "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 },
|
||||
{ "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 },
|
||||
{ "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 20, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 40, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 61, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 81, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 122, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 142, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 8], "x": 162, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 9], "x": 183, "y": 64 },
|
||||
{ "flags": 4, "matrix": [3, 10], "x": 203, "y": 64 },
|
||||
{ "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 },
|
||||
{ "flags": 1, "matrix": [4, 0], "x": 0, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 1], "x": 20, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 2], "x": 40, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 3], "x": 61, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 4], "x": 81, "y": 86 },
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 111, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 7], "x": 142, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 8], "x": 162, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 9], "x": 183, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 10], "x": 203, "y": 86 },
|
||||
{ "flags": 1, "matrix": [4, 11], "x": 224, "y": 86 }
|
||||
]
|
||||
},
|
||||
"community_layouts": ["ortho_5x12"],
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x12": {
|
||||
"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": [1, 0], "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11, "y": 2 },
|
||||
{ "matrix": [3, 0], "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 4, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 5, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 6, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 7, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 8, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 9, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 10, "y": 3 },
|
||||
{ "matrix": [3, 11], "x": 11, "y": 3 },
|
||||
{ "matrix": [4, 0], "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "x": 1, "y": 4 },
|
||||
{ "matrix": [4, 2], "x": 2, "y": 4 },
|
||||
{ "matrix": [4, 3], "x": 3, "y": 4 },
|
||||
{ "matrix": [4, 4], "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 5], "x": 5, "y": 4 },
|
||||
{ "matrix": [4, 6], "x": 6, "y": 4 },
|
||||
{ "matrix": [4, 7], "x": 7, "y": 4 },
|
||||
{ "matrix": [4, 8], "x": 8, "y": 4 },
|
||||
{ "matrix": [4, 9], "x": 9, "y": 4 },
|
||||
{ "matrix": [4, 10], "x": 10, "y": 4 },
|
||||
{ "matrix": [4, 11], "x": 11, "y": 4 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
36
keyboards/boardsource/equals/avr/keymaps/default/keymap.c
Normal file
36
keyboards/boardsource/equals/avr/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_MAIN,
|
||||
_RAISE,
|
||||
_LOWER
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MAIN] = LAYOUT_ortho_5x12(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RGB_MOD, RGB_TOG
|
||||
),
|
||||
[_RAISE] = LAYOUT_ortho_5x12(
|
||||
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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
_______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
|
||||
KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LOWER] = LAYOUT_ortho_5x12(
|
||||
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_UP, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
)
|
||||
};
|
||||
36
keyboards/boardsource/equals/avr/keymaps/via/keymap.c
Normal file
36
keyboards/boardsource/equals/avr/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_MAIN,
|
||||
_RAISE,
|
||||
_LOWER
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MAIN] = LAYOUT_ortho_5x12(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RAISE] = LAYOUT_ortho_5x12(
|
||||
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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
_______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
|
||||
KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LOWER] = LAYOUT_ortho_5x12(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
_______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
)
|
||||
};
|
||||
1
keyboards/boardsource/equals/avr/keymaps/via/rules.mk
Normal file
1
keyboards/boardsource/equals/avr/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
18
keyboards/boardsource/equals/equals.c
Normal file
18
keyboards/boardsource/equals/equals.c
Normal file
@@ -0,0 +1,18 @@
|
||||
// Copyright 2023 @boardsource
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include "quantum.h"
|
||||
__attribute__((weak)) void ui_init(void) {};
|
||||
__attribute__((weak)) void ui_task(void) {};
|
||||
|
||||
#ifdef QUANTUM_PAINTER_ENABLE
|
||||
void keyboard_post_init_kb(void) {
|
||||
// Init the display
|
||||
ui_init();
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
||||
void housekeeping_task_kb(void) {
|
||||
// Draw the display
|
||||
ui_task();
|
||||
}
|
||||
#endif //QUANTUM_PAINTER_ENABLE
|
||||
69
keyboards/boardsource/equals/graphics/thintel15.qff.c
Normal file
69
keyboards/boardsource/equals/graphics/thintel15.qff.c
Normal file
@@ -0,0 +1,69 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include <qp.h>
|
||||
|
||||
// clang-format off
|
||||
const uint8_t font_thintel15[966] = {
|
||||
0x00, 0xFF, 0x14, 0x00, 0x00, 0x51, 0x46, 0x46, 0x01, 0xC6, 0x03, 0x00, 0x00, 0x39, 0xFC, 0xFF,
|
||||
0xFF, 0x0B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFE, 0x1D, 0x01, 0x00, 0x02, 0x00,
|
||||
0x00, 0xC2, 0x00, 0x00, 0x84, 0x01, 0x00, 0x06, 0x03, 0x00, 0x46, 0x05, 0x00, 0x88, 0x07, 0x00,
|
||||
0x46, 0x0A, 0x00, 0x82, 0x0C, 0x00, 0x43, 0x0D, 0x00, 0x83, 0x0E, 0x00, 0xC4, 0x0F, 0x00, 0x46,
|
||||
0x11, 0x00, 0x83, 0x13, 0x00, 0xC5, 0x14, 0x00, 0x82, 0x16, 0x00, 0x44, 0x17, 0x00, 0xC5, 0x18,
|
||||
0x00, 0x84, 0x1A, 0x00, 0x05, 0x1C, 0x00, 0xC5, 0x1D, 0x00, 0x85, 0x1F, 0x00, 0x45, 0x21, 0x00,
|
||||
0x05, 0x23, 0x00, 0xC5, 0x24, 0x00, 0x85, 0x26, 0x00, 0x45, 0x28, 0x00, 0x02, 0x2A, 0x00, 0xC3,
|
||||
0x2A, 0x00, 0x05, 0x2C, 0x00, 0xC5, 0x2D, 0x00, 0x85, 0x2F, 0x00, 0x45, 0x31, 0x00, 0x08, 0x33,
|
||||
0x00, 0xC5, 0x35, 0x00, 0x85, 0x37, 0x00, 0x45, 0x39, 0x00, 0x05, 0x3B, 0x00, 0xC4, 0x3C, 0x00,
|
||||
0x44, 0x3E, 0x00, 0xC5, 0x3F, 0x00, 0x85, 0x41, 0x00, 0x44, 0x43, 0x00, 0xC5, 0x44, 0x00, 0x85,
|
||||
0x46, 0x00, 0x44, 0x48, 0x00, 0xC6, 0x49, 0x00, 0x06, 0x4C, 0x00, 0x45, 0x4E, 0x00, 0x05, 0x50,
|
||||
0x00, 0xC5, 0x51, 0x00, 0x85, 0x53, 0x00, 0x45, 0x55, 0x00, 0x06, 0x57, 0x00, 0x45, 0x59, 0x00,
|
||||
0x06, 0x5B, 0x00, 0x46, 0x5D, 0x00, 0x86, 0x5F, 0x00, 0xC6, 0x61, 0x00, 0x06, 0x64, 0x00, 0x44,
|
||||
0x66, 0x00, 0xC4, 0x67, 0x00, 0x44, 0x69, 0x00, 0xC6, 0x6A, 0x00, 0x05, 0x6D, 0x00, 0xC3, 0x6E,
|
||||
0x00, 0x05, 0x70, 0x00, 0xC5, 0x71, 0x00, 0x84, 0x73, 0x00, 0x05, 0x75, 0x00, 0xC5, 0x76, 0x00,
|
||||
0x84, 0x78, 0x00, 0x05, 0x7A, 0x00, 0xC5, 0x7B, 0x00, 0x82, 0x7D, 0x00, 0x43, 0x7E, 0x00, 0x85,
|
||||
0x7F, 0x00, 0x42, 0x81, 0x00, 0x06, 0x82, 0x00, 0x45, 0x84, 0x00, 0x05, 0x86, 0x00, 0xC5, 0x87,
|
||||
0x00, 0x85, 0x89, 0x00, 0x44, 0x8B, 0x00, 0xC5, 0x8C, 0x00, 0x83, 0x8E, 0x00, 0xC5, 0x8F, 0x00,
|
||||
0x86, 0x91, 0x00, 0xC6, 0x93, 0x00, 0x06, 0x96, 0x00, 0x45, 0x98, 0x00, 0x04, 0x9A, 0x00, 0x85,
|
||||
0x9B, 0x00, 0x42, 0x9D, 0x00, 0x05, 0x9E, 0x00, 0xC5, 0x9F, 0x00, 0x04, 0xFB, 0x86, 0x02, 0x00,
|
||||
0x00, 0x00, 0x00, 0x54, 0x45, 0x00, 0x50, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xFD, 0xD2,
|
||||
0xAF, 0x28, 0x00, 0x00, 0x00, 0x84, 0x53, 0x15, 0x0E, 0x55, 0x39, 0x04, 0x00, 0x00, 0x00, 0x00,
|
||||
0x12, 0x15, 0x0A, 0x28, 0x54, 0x24, 0x00, 0x00, 0x00, 0x80, 0x50, 0x14, 0x52, 0x95, 0x58, 0x00,
|
||||
0x00, 0x00, 0x14, 0x00, 0x00, 0x4A, 0x92, 0x24, 0x02, 0x00, 0x91, 0x24, 0x49, 0x01, 0x00, 0x20,
|
||||
0x27, 0x05, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x1F, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x60, 0x0A, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x24, 0x22,
|
||||
0x11, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00, 0x20, 0x23, 0x22, 0x72, 0x00, 0x00,
|
||||
0xC0, 0x24, 0x44, 0x44, 0x78, 0x00, 0x00, 0xC0, 0x24, 0x44, 0x50, 0x32, 0x00, 0x00, 0x80, 0x29,
|
||||
0x95, 0x1E, 0x42, 0x00, 0x00, 0xE0, 0x85, 0x83, 0x50, 0x32, 0x00, 0x00, 0xC0, 0xA4, 0x70, 0x52,
|
||||
0x32, 0x00, 0x00, 0xE0, 0x21, 0x42, 0x84, 0x10, 0x00, 0x00, 0xC0, 0xA4, 0x64, 0x52, 0x32, 0x00,
|
||||
0x00, 0xC0, 0xA4, 0xE4, 0x50, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x30, 0x60, 0x0A, 0x00,
|
||||
0x00, 0x11, 0x11, 0x04, 0x41, 0x00, 0x00, 0x00, 0x80, 0x07, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x08,
|
||||
0x82, 0x88, 0x08, 0x00, 0x00, 0xC0, 0x24, 0x64, 0x04, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x59,
|
||||
0x55, 0x2D, 0x02, 0x1C, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0xE0, 0xA4,
|
||||
0x74, 0x52, 0x3A, 0x00, 0x00, 0xC0, 0xA4, 0x10, 0x42, 0x32, 0x00, 0x00, 0xE0, 0xA4, 0x94, 0x52,
|
||||
0x3A, 0x00, 0x00, 0x70, 0x11, 0x17, 0x71, 0x00, 0x00, 0x70, 0x11, 0x17, 0x11, 0x00, 0x00, 0xC0,
|
||||
0xA4, 0xD0, 0x52, 0x32, 0x00, 0x00, 0x20, 0xA5, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0x70, 0x22, 0x22,
|
||||
0x72, 0x00, 0x00, 0xC0, 0x21, 0x84, 0x50, 0x32, 0x00, 0x00, 0x20, 0xA5, 0x32, 0x4A, 0x4A, 0x00,
|
||||
0x00, 0x10, 0x11, 0x11, 0x71, 0x00, 0x00, 0x40, 0xB4, 0x55, 0x51, 0x14, 0x45, 0x00, 0x00, 0x00,
|
||||
0x40, 0x34, 0x55, 0x59, 0x14, 0x45, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00,
|
||||
0xE0, 0xA4, 0x74, 0x42, 0x08, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x51, 0x00, 0x00, 0xE0, 0xA4,
|
||||
0x74, 0x52, 0x4A, 0x00, 0x00, 0xC0, 0xA4, 0x60, 0x50, 0x32, 0x00, 0x00, 0xC0, 0x47, 0x10, 0x04,
|
||||
0x41, 0x10, 0x00, 0x00, 0x00, 0x20, 0xA5, 0x94, 0x52, 0x32, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51,
|
||||
0xA4, 0x10, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51, 0xB5, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14,
|
||||
0x29, 0x84, 0x12, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x0E, 0x41, 0x10, 0x00, 0x00, 0x00,
|
||||
0xC0, 0x07, 0x21, 0x84, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x17, 0x11, 0x11, 0x11, 0x07, 0x00, 0x10,
|
||||
0x21, 0x22, 0x44, 0x00, 0x00, 0x47, 0x44, 0x44, 0x44, 0x07, 0x00, 0x84, 0x12, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x93, 0x5C, 0x72, 0x00, 0x00, 0x20, 0x84, 0x93, 0x52, 0x3A, 0x00, 0x00, 0x00, 0x60,
|
||||
0x11, 0x61, 0x00, 0x00, 0x00, 0x21, 0x97, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x93, 0x5E, 0x70,
|
||||
0x00, 0x00, 0x60, 0x11, 0x13, 0x11, 0x00, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x28, 0x19, 0x20,
|
||||
0x84, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x10, 0x55, 0x00, 0x80, 0x20, 0x49, 0x0A, 0x00, 0x20, 0x84,
|
||||
0x94, 0x4E, 0x4A, 0x00, 0x00, 0x54, 0x55, 0x00, 0x00, 0x00, 0x2C, 0x55, 0x55, 0x55, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x93, 0x52, 0x32, 0x00, 0x00, 0x00,
|
||||
0x80, 0x93, 0x52, 0x3A, 0x21, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x08, 0x01, 0x00, 0x50, 0x13,
|
||||
0x11, 0x00, 0x00, 0x00, 0x00, 0x17, 0x0C, 0x3A, 0x00, 0x00, 0x48, 0x96, 0x44, 0x00, 0x00, 0x00,
|
||||
0x80, 0x94, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x44, 0x51, 0xA4, 0x10, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x44, 0x51, 0x54, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x0A, 0xA1, 0x44, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x94, 0x52, 0x72, 0x28, 0x19, 0x00, 0x70, 0x24, 0x71, 0x00, 0x00, 0x4C, 0x08,
|
||||
0x11, 0x84, 0x10, 0x0C, 0x00, 0x55, 0x55, 0x01, 0x83, 0x10, 0x82, 0x08, 0x21, 0x03, 0x00, 0x00,
|
||||
0x00, 0xB0, 0x1A, 0x00, 0x00, 0x00,
|
||||
};
|
||||
// clang-format on
|
||||
21
keyboards/boardsource/equals/info.json
Normal file
21
keyboards/boardsource/equals/info.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"manufacturer": "Boardsource",
|
||||
"maintainer": "Boardsource",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x7688",
|
||||
"vid": "0x4273"
|
||||
}
|
||||
|
||||
}
|
||||
33
keyboards/boardsource/equals/readme.md
Normal file
33
keyboards/boardsource/equals/readme.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# equals
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: [Cole Smith](https://github.com/boardsource)
|
||||
* Hardware Supported: Equals PCB w/ RP2040
|
||||
* Hardware Availability: [boardsource](https://boardsource.xyz)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make boardsource/equals/48:default
|
||||
make boardsource/equals/60:default
|
||||
make boardsource/equals/avr:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make boardsource/equals/48:default:flash
|
||||
make boardsource/equals/60:default:flash
|
||||
make boardsource/equals/avr:default:flash
|
||||
|
||||
Compile `avr` firmware if your PCB uses a drop-in microcontroller like Pro Micro.
|
||||
|
||||
|
||||
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
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
40
keyboards/boardsource/equals/ui.c
Normal file
40
keyboards/boardsource/equals/ui.c
Normal file
@@ -0,0 +1,40 @@
|
||||
// Copyright 2023 Cole Smith (@boardsource)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include <stdio.h>
|
||||
#include "qp.h"
|
||||
#include "qp_st7735.h"
|
||||
#include "graphics/thintel15.qff.c"
|
||||
|
||||
static painter_device_t oled;
|
||||
static painter_font_handle_t font;
|
||||
|
||||
__attribute__((weak)) void ui_init(void) {
|
||||
oled = qp_st7735_make_spi_device(128, 160, OLED_CS_PIN, OLED_DC_PIN, OLED_RST_PIN, 8, 0);
|
||||
font = qp_load_font_mem(font_thintel15);
|
||||
qp_init(oled, QP_ROTATION_0);
|
||||
qp_rect(oled, 0, 0, 130, 162, 0, 0, 0, true);
|
||||
qp_rect(oled, 20, 20, 108, 60, 55, 55, 55, true);
|
||||
qp_rect(oled, 20, 80, 108, 120, 55, 55, 55, true);
|
||||
qp_flush(oled);
|
||||
}
|
||||
|
||||
__attribute__((weak)) void ui_task(void) {
|
||||
static const char *text = "Layer:";
|
||||
int16_t width = qp_textwidth(font, text);
|
||||
qp_drawtext(oled, 20, 140, font, text);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
qp_drawtext(oled, (20 + width), 140, font, "QWERTY");
|
||||
break;
|
||||
case 1:
|
||||
qp_drawtext(oled, (20 + width), 140, font, "SYMBOL");
|
||||
break;
|
||||
case 2:
|
||||
qp_drawtext(oled, (20 + width), 140, font, "NUMBER");
|
||||
break;
|
||||
default:
|
||||
qp_drawtext(oled, (20 + width), 140, font, "_PANIC_");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -20,13 +20,13 @@ bool oled_task_kb(void) {
|
||||
oled_write_raw(layer_zero, sizeof(layer_zero));
|
||||
break;
|
||||
case 1:
|
||||
oled_write_raw(layer_zero, sizeof(layer_zero));
|
||||
oled_write_raw(layer_one, sizeof(layer_one));
|
||||
break;
|
||||
case 2:
|
||||
oled_write_raw(layer_zero, sizeof(layer_zero));
|
||||
oled_write_raw(layer_two, sizeof(layer_two));
|
||||
break;
|
||||
case 3:
|
||||
oled_write_raw(layer_zero, sizeof(layer_zero));
|
||||
oled_write_raw(layer_three, sizeof(layer_three));
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
"url": "https://cannonkeys.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0xCA04",
|
||||
"vid": "0x0028"
|
||||
"pid": "0x0028",
|
||||
"vid": "0xCA04"
|
||||
},
|
||||
"community_layouts": ["ortho_1x1"],
|
||||
"layouts": {
|
||||
@@ -29,4 +29,4 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
# Processor frequency
|
||||
F_CPU = 16000000
|
||||
# This file intentionally left blank
|
||||
|
||||
3
keyboards/converter/usb_usb/leonardo/info.json
Normal file
3
keyboards/converter/usb_usb/leonardo/info.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"bootloader": "caterina"
|
||||
}
|
||||
1
keyboards/converter/usb_usb/leonardo/rules.mk
Normal file
1
keyboards/converter/usb_usb/leonardo/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
||||
@@ -11,6 +11,10 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make converter/usb_usb:default
|
||||
|
||||
If you use Arduino Leonardo with a USB Host Shield:
|
||||
|
||||
make converter/usb_usb/leonardo:default
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||
|
||||
Note that you have to choose the right hardware variant as your subproject, otherwise you will probably have issues.
|
||||
@@ -23,8 +27,6 @@ If you are sure you have this correct, try changeing the default in `usb_usb/rul
|
||||
|
||||
The Pro Micro variant uses a 3.3V Pro Micro and thus runs at 8MHz, hence the following line in `usb_usb/pro_micro/rules.mk`:
|
||||
`F_CPU = 8000000`
|
||||
The converter sold by Hasu runs at 16MHz and so the corresponding line in `usb_usb/hasu/rules.mk` is:
|
||||
`F_CPU = 16000000`
|
||||
|
||||
Getting the Hardware
|
||||
--------------------
|
||||
|
||||
@@ -71,6 +71,10 @@ uint8_t last_col;
|
||||
static const char PROGMEM code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
|
||||
|
||||
static void set_keylog(uint16_t keycode, keyrecord_t *record) {
|
||||
// save the row and column (useful even if we can't find a keycode to show)
|
||||
last_row = record->event.key.row;
|
||||
last_col = record->event.key.col;
|
||||
|
||||
key_name = ' ';
|
||||
last_keycode = keycode;
|
||||
if (IS_QK_MOD_TAP(keycode)) {
|
||||
@@ -92,8 +96,6 @@ static void set_keylog(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
// update keylog
|
||||
key_name = pgm_read_byte(&code_to_name[keycode]);
|
||||
last_row = record->event.key.row;
|
||||
last_col = record->event.key.col;
|
||||
}
|
||||
|
||||
static const char *depad_str(const char *depad_str, char depad_char) {
|
||||
@@ -103,11 +105,9 @@ static const char *depad_str(const char *depad_str, char depad_char) {
|
||||
}
|
||||
|
||||
static void oled_render_keylog(void) {
|
||||
const char *last_row_str = get_u8_str(last_row, ' ');
|
||||
oled_write(depad_str(last_row_str, ' '), false);
|
||||
oled_write_char('0' + last_row, false);
|
||||
oled_write_P(PSTR("x"), false);
|
||||
const char *last_col_str = get_u8_str(last_col, ' ');
|
||||
oled_write(depad_str(last_col_str, ' '), false);
|
||||
oled_write_char('0' + last_col, false);
|
||||
oled_write_P(PSTR(", k"), false);
|
||||
const char *last_keycode_str = get_u16_str(last_keycode, ' ');
|
||||
oled_write(depad_str(last_keycode_str, ' '), false);
|
||||
|
||||
44
keyboards/darkproject/kd83a_bfg_edition/config.h
Normal file
44
keyboards/darkproject/kd83a_bfg_edition/config.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2022 GSKY <gskyGit@gsky.com.tw>
|
||||
|
||||
* 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
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
|
||||
/* External spi flash */
|
||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
|
||||
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
||||
|
||||
/* SPI Config for LED Driver */
|
||||
#define SPI_DRIVER SPIDQ
|
||||
#define SPI_SCK_PIN A5
|
||||
#define SPI_MOSI_PIN A7
|
||||
#define SPI_MISO_PIN A6
|
||||
|
||||
#define DRIVER_1_CS A15
|
||||
#define DRIVER_2_CS B15
|
||||
#define DRIVER_1_EN C13
|
||||
#define DRIVER_2_EN C13
|
||||
|
||||
#define DRIVER_COUNT 2
|
||||
#define DRIVER_1_LED_TOTAL 66
|
||||
#define DRIVER_2_LED_TOTAL 19
|
||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
23
keyboards/darkproject/kd83a_bfg_edition/halconf.h
Normal file
23
keyboards/darkproject/kd83a_bfg_edition/halconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd
|
||||
*
|
||||
* 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 HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
||||
270
keyboards/darkproject/kd83a_bfg_edition/info.json
Normal file
270
keyboards/darkproject/kd83a_bfg_edition/info.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"manufacturer": "Gsky",
|
||||
"keyboard_name": "KD83A_BFG_Edition",
|
||||
"maintainer": "Gsky",
|
||||
"bootloader": "wb32-dfu",
|
||||
"bootmagic": {
|
||||
"matrix": [1, 3]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "C2", "pin_b": "C3"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "C14"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
|
||||
"rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B12"]
|
||||
},
|
||||
"processor": "WB32FQ95",
|
||||
"qmk": {
|
||||
"tap_keycode_delay": 10
|
||||
},
|
||||
"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,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"rainbow_moving_chevron": 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_fractal": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_rain": true,
|
||||
"typing_heatmap": true,
|
||||
"digital_rain": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true
|
||||
},
|
||||
"center_point": [76, 25],
|
||||
"driver": "aw20216",
|
||||
"layout": [
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 20, "y": 0 },
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 30, "y": 0 },
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 40, "y": 0 },
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 50, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x": 60, "y": 0 },
|
||||
{ "flags": 4, "matrix": [6, 3], "x": 70, "y": 0 },
|
||||
{ "flags": 4, "matrix": [7, 1], "x": 80, "y": 0 },
|
||||
{ "flags": 4, "matrix": [7, 6], "x": 90, "y": 0 },
|
||||
{ "flags": 4, "matrix": [10, 6], "x": 100, "y": 0 },
|
||||
{ "flags": 4, "matrix": [10, 7], "x": 110, "y": 0 },
|
||||
{ "flags": 4, "matrix": [10, 3], "x": 120, "y": 0 },
|
||||
{ "flags": 4, "matrix": [10, 5], "x": 130, "y": 0 },
|
||||
{ "flags": 4, "matrix": [9, 7], "x": 140, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 150, "y": 0 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 0, "y": 10 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 10, "y": 10 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 20, "y": 10 },
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 30, "y": 10 },
|
||||
{ "flags": 4, "matrix": [4, 7], "x": 40, "y": 10 },
|
||||
{ "flags": 4, "matrix": [4, 6], "x": 50, "y": 10 },
|
||||
{ "flags": 4, "matrix": [5, 6], "x": 60, "y": 10 },
|
||||
{ "flags": 4, "matrix": [5, 7], "x": 70, "y": 10 },
|
||||
{ "flags": 4, "matrix": [6, 7], "x": 80, "y": 10 },
|
||||
{ "flags": 4, "matrix": [7, 7], "x": 90, "y": 10 },
|
||||
{ "flags": 4, "matrix": [8, 7], "x": 100, "y": 10 },
|
||||
{ "flags": 4, "matrix": [8, 6], "x": 110, "y": 10 },
|
||||
{ "flags": 4, "matrix": [6, 6], "x": 120, "y": 10 },
|
||||
{ "flags": 4, "matrix": [10, 1], "x": 130, "y": 10 },
|
||||
{ "flags": 4, "matrix": [11, 6], "x": 150, "y": 10 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 0, "y": 20 },
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 15, "y": 20 },
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 25, "y": 20 },
|
||||
{ "flags": 4, "matrix": [3, 0], "x": 35, "y": 20 },
|
||||
{ "flags": 4, "matrix": [4, 0], "x": 45, "y": 20 },
|
||||
{ "flags": 4, "matrix": [4, 1], "x": 55, "y": 20 },
|
||||
{ "flags": 4, "matrix": [5, 1], "x": 65, "y": 20 },
|
||||
{ "flags": 4, "matrix": [5, 0], "x": 75, "y": 20 },
|
||||
{ "flags": 4, "matrix": [6, 0], "x": 85, "y": 20 },
|
||||
{ "flags": 4, "matrix": [7, 0], "x": 95, "y": 20 },
|
||||
{ "flags": 4, "matrix": [8, 0], "x": 105, "y": 20 },
|
||||
{ "flags": 4, "matrix": [8, 1], "x": 115, "y": 20 },
|
||||
{ "flags": 4, "matrix": [6, 1], "x": 125, "y": 20 },
|
||||
{ "flags": 4, "matrix": [10, 2], "x": 135, "y": 20 },
|
||||
{ "flags": 4, "matrix": [6, 5], "x": 150, "y": 20 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 0, "y": 30 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 17, "y": 30 },
|
||||
{ "flags": 8, "matrix": [2, 2], "x": 27, "y": 30 },
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 37, "y": 30 },
|
||||
{ "flags": 4, "matrix": [4, 2], "x": 47, "y": 30 },
|
||||
{ "flags": 4, "matrix": [4, 3], "x": 57, "y": 30 },
|
||||
{ "flags": 4, "matrix": [5, 3], "x": 67, "y": 30 },
|
||||
{ "flags": 4, "matrix": [5, 2], "x": 77, "y": 30 },
|
||||
{ "flags": 4, "matrix": [6, 2], "x": 87, "y": 30 },
|
||||
{ "flags": 4, "matrix": [7, 2], "x": 97, "y": 30 },
|
||||
{ "flags": 4, "matrix": [8, 2], "x": 107, "y": 30 },
|
||||
{ "flags": 4, "matrix": [8, 3], "x": 117, "y": 30 },
|
||||
{ "flags": 4, "matrix": [10, 4], "x": 127, "y": 30 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 150, "y": 30 },
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 40 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 22, "y": 40 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 32, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 42, "y": 40 },
|
||||
{ "flags": 4, "matrix": [4, 4], "x": 52, "y": 40 },
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 62, "y": 40 },
|
||||
{ "flags": 4, "matrix": [5, 5], "x": 72, "y": 40 },
|
||||
{ "flags": 4, "matrix": [5, 4], "x": 82, "y": 40 },
|
||||
{ "flags": 4, "matrix": [6, 4], "x": 92, "y": 40 },
|
||||
{ "flags": 4, "matrix": [7, 4], "x": 102, "y": 40 },
|
||||
{ "flags": 4, "matrix": [8, 5], "x": 112, "y": 40 },
|
||||
{ "flags": 4, "matrix": [9, 1], "x": 122, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 140, "y": 40 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 150, "y": 40 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 0, "y": 50 },
|
||||
{ "flags": 4, "matrix": [9, 0], "x": 12, "y": 50 },
|
||||
{ "flags": 4, "matrix": [9, 3], "x": 25, "y": 50 },
|
||||
{ "flags": 4, "matrix": [9, 4], "x": 37, "y": 50 },
|
||||
{ "flags": 4, "matrix": [9, 5], "x": 100, "y": 50 },
|
||||
{ "flags": 4, "matrix": [9, 2], "x": 110, "y": 50 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 120, "y": 50 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 130, "y": 50 },
|
||||
{ "flags": 4, "matrix": [7, 3], "x": 140, "y": 50 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 150, "y": 50 },
|
||||
{ "flags": 4, "matrix": [11, 0], "x": 0, "y": 1 },
|
||||
{ "flags": 4, "matrix": [11, 1], "x": 0, "y": 2 }
|
||||
]
|
||||
},
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "0.0.3",
|
||||
"pid": "0xE392",
|
||||
"vid": "0x342D"
|
||||
},
|
||||
"eeprom": {
|
||||
"driver": "wear_leveling"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "ESC", "matrix": [1, 3], "x": 0, "y": 0 },
|
||||
{ "label": "F1", "matrix": [2, 6], "x": 2, "y": 0 },
|
||||
{ "label": "F2", "matrix": [3, 6], "x": 3, "y": 0 },
|
||||
{ "label": "F3", "matrix": [3, 1], "x": 4, "y": 0 },
|
||||
{ "label": "F4", "matrix": [3, 3], "x": 5, "y": 0 },
|
||||
{ "label": "F5", "matrix": [0, 7], "x": 6, "y": 0 },
|
||||
{ "label": "F6", "matrix": [6, 3], "x": 7, "y": 0 },
|
||||
{ "label": "F7", "matrix": [7, 1], "x": 8, "y": 0 },
|
||||
{ "label": "F8", "matrix": [7, 6], "x": 9, "y": 0 },
|
||||
{ "label": "F9", "matrix": [10, 6], "x": 10, "y": 0 },
|
||||
{ "label": "F10", "matrix": [10, 7], "x": 11, "y": 0 },
|
||||
{ "label": "F11", "matrix": [10, 3], "x": 12, "y": 0 },
|
||||
{ "label": "F12", "matrix": [10, 5], "x": 13, "y": 0 },
|
||||
{ "label": "Printscreen", "matrix": [9, 7], "x": 14, "y": 0 },
|
||||
{ "label": "Del", "matrix": [0, 2], "x": 15, "y": 0 },
|
||||
{ "label": "`", "matrix": [1, 6], "x": 0, "y": 1 },
|
||||
{ "label": "1", "matrix": [1, 7], "x": 1, "y": 1 },
|
||||
{ "label": "2", "matrix": [2, 7], "x": 2, "y": 1 },
|
||||
{ "label": "3", "matrix": [3, 7], "x": 3, "y": 1 },
|
||||
{ "label": "4", "matrix": [4, 7], "x": 4, "y": 1 },
|
||||
{ "label": "5", "matrix": [4, 6], "x": 5, "y": 1 },
|
||||
{ "label": "6", "matrix": [5, 6], "x": 6, "y": 1 },
|
||||
{ "label": "7", "matrix": [5, 7], "x": 7, "y": 1 },
|
||||
{ "label": "8", "matrix": [6, 7], "x": 8, "y": 1 },
|
||||
{ "label": "9", "matrix": [7, 7], "x": 9, "y": 1 },
|
||||
{ "label": "0", "matrix": [8, 7], "x": 10, "y": 1 },
|
||||
{ "label": "-", "matrix": [8, 6], "x": 11, "y": 1 },
|
||||
{ "label": "=", "matrix": [6, 6], "x": 12, "y": 1 },
|
||||
{ "label": "Backspace", "matrix": [10, 1], "w": 2, "x": 13, "y": 1 },
|
||||
{ "label": "Home", "matrix": [11, 6], "x": 15, "y": 1 },
|
||||
{ "label": "Tab", "matrix": [1, 1], "w": 1.5, "x": 0, "y": 2 },
|
||||
{ "label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2 },
|
||||
{ "label": "W", "matrix": [2, 0], "x": 2.5, "y": 2 },
|
||||
{ "label": "E", "matrix": [3, 0], "x": 3.5, "y": 2 },
|
||||
{ "label": "R", "matrix": [4, 0], "x": 4.5, "y": 2 },
|
||||
{ "label": "T", "matrix": [4, 1], "x": 5.5, "y": 2 },
|
||||
{ "label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2 },
|
||||
{ "label": "U", "matrix": [5, 0], "x": 7.5, "y": 2 },
|
||||
{ "label": "I", "matrix": [6, 0], "x": 8.5, "y": 2 },
|
||||
{ "label": "O", "matrix": [7, 0], "x": 9.5, "y": 2 },
|
||||
{ "label": "P", "matrix": [8, 0], "x": 10.5, "y": 2 },
|
||||
{ "label": "[", "matrix": [8, 1], "x": 11.5, "y": 2 },
|
||||
{ "label": "]", "matrix": [6, 1], "x": 12.5, "y": 2 },
|
||||
{ "label": "\\", "matrix": [10, 2], "w": 1.5, "x": 13.5, "y": 2 },
|
||||
{ "label": "End", "matrix": [6, 5], "x": 15, "y": 2 },
|
||||
{ "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 3 },
|
||||
{ "label": "A", "matrix": [1, 2], "x": 1.75, "y": 3 },
|
||||
{ "label": "S", "matrix": [2, 2], "x": 2.75, "y": 3 },
|
||||
{ "label": "D", "matrix": [3, 2], "x": 3.75, "y": 3 },
|
||||
{ "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3 },
|
||||
{ "label": "G", "matrix": [4, 3], "x": 5.75, "y": 3 },
|
||||
{ "label": "H", "matrix": [5, 3], "x": 6.75, "y": 3 },
|
||||
{ "label": "J", "matrix": [5, 2], "x": 7.75, "y": 3 },
|
||||
{ "label": "K", "matrix": [6, 2], "x": 8.75, "y": 3 },
|
||||
{ "label": "L", "matrix": [7, 2], "x": 9.75, "y": 3 },
|
||||
{ "label": ";", "matrix": [8, 2], "x": 10.75, "y": 3 },
|
||||
{ "label": "'", "matrix": [8, 3], "x": 11.75, "y": 3 },
|
||||
{ "label": "Enter", "matrix": [10, 4], "w": 2.25, "x": 12.75, "y": 3 },
|
||||
{ "label": "PgUp", "matrix": [1, 5], "x": 15, "y": 3 },
|
||||
{ "label": "Shift", "matrix": [0, 0], "w": 2.25, "x": 0, "y": 4 },
|
||||
{ "label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4 },
|
||||
{ "label": "X", "matrix": [2, 4], "x": 3.25, "y": 4 },
|
||||
{ "label": "C", "matrix": [3, 4], "x": 4.25, "y": 4 },
|
||||
{ "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4 },
|
||||
{ "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4 },
|
||||
{ "label": "N", "matrix": [5, 5], "x": 7.25, "y": 4 },
|
||||
{ "label": "M", "matrix": [5, 4], "x": 8.25, "y": 4 },
|
||||
{ "label": ",", "matrix": [6, 4], "x": 9.25, "y": 4 },
|
||||
{ "label": ".", "matrix": [7, 4], "x": 10.25, "y": 4 },
|
||||
{ "label": "/", "matrix": [8, 5], "x": 11.25, "y": 4 },
|
||||
{ "label": "Shift", "matrix": [9, 1], "w": 1.75, "x": 12.25, "y": 4 },
|
||||
{ "label": "Up", "matrix": [3, 5], "x": 14, "y": 4 },
|
||||
{ "label": "PgDn", "matrix": [2, 5], "x": 15, "y": 4 },
|
||||
{ "label": "Ctrl", "matrix": [0, 6], "w": 1.25, "x": 0, "y": 5 },
|
||||
{ "label": "Win", "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 5 },
|
||||
{ "label": "Alt", "matrix": [9, 3], "w": 1.25, "x": 2.5, "y": 5 },
|
||||
{ "label": "Space", "matrix": [9, 4], "w": 6.25, "x": 3.75, "y": 5 },
|
||||
{ "label": "Alt", "matrix": [9, 5], "x": 10, "y": 5 },
|
||||
{ "label": "FN", "matrix": [9, 2], "x": 11, "y": 5 },
|
||||
{ "label": "Ctrl", "matrix": [0, 4], "x": 12, "y": 5 },
|
||||
{ "label": "Left", "matrix": [0, 3], "x": 13, "y": 5 },
|
||||
{ "label": "Down", "matrix": [7, 3], "x": 14, "y": 5 },
|
||||
{ "label": "Right", "matrix": [0, 5], "x": 15, "y": 5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
188
keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c
Normal file
188
keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c
Normal file
@@ -0,0 +1,188 @@
|
||||
/* Copyright 2022 GSKY <gskyGit@gsky.com.tw>
|
||||
*
|
||||
* 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 "kd83a_bfg_edition.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
//{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 0, k00, Esc
|
||||
|
||||
{0, CS1_SW1, CS2_SW1, CS3_SW1}, // 1, k13, Esc
|
||||
{0, CS1_SW2, CS2_SW2, CS3_SW2}, // 2, k26, F1
|
||||
{0, CS1_SW3, CS2_SW3, CS3_SW3}, // 3, k36, F2
|
||||
{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 4, k31, F3
|
||||
{0, CS1_SW5, CS2_SW5, CS3_SW5}, // 5, k33, F4
|
||||
{0, CS1_SW6, CS2_SW6, CS3_SW6}, // 6, k07, F5
|
||||
{0, CS1_SW7, CS2_SW7, CS3_SW7}, // 7, k63, F6
|
||||
{0, CS1_SW8, CS2_SW8, CS3_SW8}, // 8, k71, F7
|
||||
{0, CS1_SW9, CS2_SW9, CS3_SW9}, // 9, k76, F8
|
||||
{0, CS1_SW10, CS2_SW10, CS3_SW10}, // 10, ka6, F9
|
||||
{0, CS1_SW11, CS2_SW11, CS3_SW11}, // 11, ka7, F10
|
||||
{0, CS1_SW12, CS2_SW12, CS3_SW12}, // 12, ka3, F11
|
||||
{1, CS1_SW1, CS2_SW1, CS3_SW1}, // 13, ka5, F12
|
||||
{1, CS4_SW2, CS5_SW2, CS6_SW2}, // 14, k97, Printscreen
|
||||
{1, CS4_SW5, CS5_SW5, CS6_SW5}, // 15, k02, Del
|
||||
|
||||
{0, CS4_SW1, CS5_SW1, CS6_SW1}, // 16, k16, `
|
||||
{0, CS4_SW2, CS5_SW2, CS6_SW2}, // 17, k17, 1
|
||||
{0, CS4_SW3, CS5_SW3, CS6_SW3}, // 18, k27, 2
|
||||
{0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, k37, 3
|
||||
{0, CS4_SW5, CS5_SW5, CS6_SW5}, // 20, k47, 4
|
||||
{0, CS4_SW6, CS5_SW6, CS6_SW6}, // 21, k46, 5
|
||||
{0, CS4_SW7, CS5_SW7, CS6_SW7}, // 22, k56, 6
|
||||
{0, CS4_SW8, CS5_SW8, CS6_SW8}, // 23, k57, 7
|
||||
{0, CS4_SW9, CS5_SW9, CS6_SW9}, // 24, k67, 8
|
||||
{0, CS4_SW10, CS5_SW10, CS6_SW10}, // 25, k77, 9
|
||||
{0, CS4_SW11, CS5_SW11, CS6_SW11}, // 26, k87, 0
|
||||
{0, CS4_SW12, CS5_SW12, CS6_SW12}, // 27, k86, -
|
||||
{1, CS1_SW5, CS2_SW5, CS3_SW5}, // 28, k66, =
|
||||
{1, CS1_SW7, CS2_SW7, CS3_SW7}, // 29, ka1, Backspace
|
||||
{1, CS1_SW2, CS2_SW2, CS3_SW2}, // 30, kc6, Home
|
||||
|
||||
{0, CS7_SW1, CS8_SW1, CS9_SW1}, // 31, k11, Tab
|
||||
{0, CS7_SW2, CS8_SW2, CS9_SW2}, // 32, k10, Q
|
||||
{0, CS7_SW3, CS8_SW3, CS9_SW3}, // 33, k20, W
|
||||
{0, CS7_SW4, CS8_SW4, CS9_SW4}, // 34, k30, E
|
||||
{0, CS7_SW5, CS8_SW5, CS9_SW5}, // 35, k40, R
|
||||
{0, CS7_SW6, CS8_SW6, CS9_SW6}, // 36, k41, T
|
||||
{0, CS7_SW7, CS8_SW7, CS9_SW7}, // 37, k51, Y
|
||||
{0, CS7_SW8, CS8_SW8, CS9_SW8}, // 38, k50, U
|
||||
{0, CS7_SW9, CS8_SW9, CS9_SW9}, // 39, k60, I
|
||||
{0, CS7_SW10, CS8_SW10, CS9_SW10}, // 40, k70, O
|
||||
{0, CS7_SW11, CS8_SW11, CS9_SW11}, // 41, k80, P
|
||||
{0, CS7_SW12, CS8_SW12, CS9_SW12}, // 42, k81, [
|
||||
{1, CS1_SW8, CS2_SW8, CS3_SW8}, // 43, k61, ]
|
||||
{1, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, ka2, "\\"
|
||||
{1, CS4_SW3, CS5_SW3, CS6_SW3}, // 45, k65, End
|
||||
|
||||
{0, CS10_SW1, CS11_SW1, CS12_SW1}, // 46, k21, Caps Lock
|
||||
{0, CS10_SW2, CS11_SW2, CS12_SW2}, // 47, k12, A
|
||||
{0, CS10_SW3, CS11_SW3, CS12_SW3}, // 48, k22, S
|
||||
{0, CS10_SW4, CS11_SW4, CS12_SW4}, // 49, k32, D
|
||||
{0, CS10_SW5, CS11_SW5, CS12_SW5}, // 50, k42, F
|
||||
{0, CS10_SW6, CS11_SW6, CS12_SW6}, // 51, k43, G
|
||||
{0, CS10_SW7, CS11_SW7, CS12_SW7}, // 52, k53, H
|
||||
{0, CS10_SW8, CS11_SW8, CS12_SW8}, // 53, k52, J
|
||||
{0, CS10_SW9, CS11_SW9, CS12_SW9}, // 54, k62, K
|
||||
{0, CS10_SW10, CS11_SW10, CS12_SW10}, // 55, k72, L
|
||||
{0, CS10_SW11, CS11_SW11, CS12_SW11}, // 56, k82, ;
|
||||
{0, CS10_SW12, CS11_SW12, CS12_SW12}, // 57, k83, '
|
||||
{1, CS1_SW11, CS2_SW11, CS3_SW11}, // 58, ka4, Enter
|
||||
{1, CS4_SW4, CS5_SW4, CS6_SW4}, // 59, k15, PgUp
|
||||
|
||||
{0, CS13_SW1, CS14_SW1, CS15_SW1}, // 60, k00, Shift_L
|
||||
{0, CS13_SW2, CS14_SW2, CS15_SW2}, // 61, k14, Z
|
||||
{0, CS13_SW3, CS14_SW3, CS15_SW3}, // 62, k24, X
|
||||
{0, CS13_SW4, CS14_SW4, CS15_SW4}, // 63, k34, C
|
||||
{0, CS13_SW5, CS14_SW5, CS15_SW5}, // 64, k44, V
|
||||
{0, CS13_SW6, CS14_SW6, CS15_SW6}, // 65, k45, B
|
||||
{0, CS13_SW7, CS14_SW7, CS15_SW7}, // 66, k55, N
|
||||
{0, CS13_SW8, CS14_SW8, CS15_SW8}, // 67, k54, M
|
||||
{0, CS13_SW9, CS14_SW9, CS15_SW9}, // 68, k64, ,
|
||||
{0, CS13_SW10, CS14_SW10, CS15_SW10}, // 69, k74, .
|
||||
{0, CS13_SW11, CS14_SW11, CS15_SW11}, // 70, k85, /
|
||||
{1, CS4_SW8, CS5_SW8, CS6_SW8}, // 71, k91, Shift_R
|
||||
{1, CS4_SW9, CS5_SW9, CS6_SW9}, // 72, k35, Up
|
||||
{1, CS4_SW7, CS5_SW7, CS6_SW7}, // 73, k25, PgDn
|
||||
|
||||
{0, CS16_SW1, CS17_SW1, CS18_SW1}, // 74, k06, Ctrl_L
|
||||
{0, CS16_SW2, CS17_SW2, CS18_SW2}, // 75, k90, Win_L
|
||||
{0, CS16_SW3, CS17_SW3, CS18_SW3}, // 76, k93, Alt_L
|
||||
{0, CS16_SW6, CS17_SW6, CS18_SW6}, // 77, k94, Space
|
||||
{0, CS16_SW9, CS17_SW9, CS18_SW9}, // 78, k95, Alt_R
|
||||
{0, CS16_SW10, CS17_SW10, CS18_SW10}, // 79, k92, FN
|
||||
{0, CS16_SW12, CS17_SW12, CS18_SW12}, // 80, k04, Ctrl_R
|
||||
{1, CS4_SW10, CS5_SW10, CS6_SW10}, // 81, k03, Left
|
||||
{1, CS4_SW11, CS5_SW11, CS6_SW11}, // 82, k73, Down
|
||||
{1, CS10_SW5, CS11_SW5, CS12_SW5}, // 83, k05, Right
|
||||
|
||||
{1, CS10_SW10, CS11_SW10, CS12_SW10}, // 84, kb0, Z1
|
||||
{1, CS10_SW11, CS11_SW11, CS12_SW11}, // 85, kb1, Z2
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef EEPROM_ENABLE
|
||||
|
||||
#include "spi_master.h"
|
||||
|
||||
void spi_init(void) {
|
||||
static bool is_initialised = false;
|
||||
if (!is_initialised) {
|
||||
is_initialised = true;
|
||||
|
||||
// Try releasing special pins for a short time
|
||||
setPinInput(SPI_SCK_PIN);
|
||||
setPinInput(SPI_MOSI_PIN);
|
||||
setPinInput(SPI_MISO_PIN);
|
||||
|
||||
chThdSleepMilliseconds(10);
|
||||
|
||||
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3);
|
||||
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST);
|
||||
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void keyboard_pre_init_kb(void) {
|
||||
setPinOutput(C0);
|
||||
setPinOutput(C15);
|
||||
keyboard_pre_init_user();
|
||||
};
|
||||
void housekeeping_task_kb(void) {
|
||||
writePin(C15, keymap_config.no_gui);
|
||||
};
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_user(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
switch (keycode) {
|
||||
|
||||
case KC_SIRI:
|
||||
if (record->event.pressed) {
|
||||
host_consumer_send(0xCF);
|
||||
} else {
|
||||
host_consumer_send(0);
|
||||
}
|
||||
return false; /* Skip all further processing of this key */
|
||||
default:
|
||||
return true; /* Process all other keycodes normally */
|
||||
}
|
||||
};
|
||||
|
||||
#if defined(ENCODER_ENABLE)
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
#endif
|
||||
22
keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.h
Normal file
22
keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2022 GSKY <gskyGit@gsky.com.tw>
|
||||
*
|
||||
* 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 "quantum.h"
|
||||
|
||||
enum keyboard_keycodes {
|
||||
KC_SIRI = QK_KB_0
|
||||
};
|
||||
@@ -0,0 +1,78 @@
|
||||
/* Copyright 2022 GSKY <gskyGit@gsky.com.tw>
|
||||
*
|
||||
* 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
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
|
||||
enum custom_layers {
|
||||
Win,
|
||||
Mac,
|
||||
Winfn,
|
||||
Macfn,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: Base Layer (Default Layer)
|
||||
*/
|
||||
[Win] = LAYOUT(
|
||||
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, KC_DEL,
|
||||
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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[Mac] = LAYOUT(
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_DEL,
|
||||
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_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_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[Winfn] = LAYOUT(
|
||||
QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI,
|
||||
KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS,
|
||||
KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI),
|
||||
|
||||
[Macfn] = LAYOUT(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI,
|
||||
KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI),
|
||||
|
||||
};
|
||||
|
||||
#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_VOLD, KC_VOLU) },
|
||||
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
|
||||
};
|
||||
#endif
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
writePin(C0, layer_state_cmp(state, 1));
|
||||
return state;
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
78
keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c
Normal file
78
keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,78 @@
|
||||
/* Copyright 2022 GSKY <gskyGit@gsky.com.tw>
|
||||
*
|
||||
* 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
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
|
||||
enum custom_layers {
|
||||
Win,
|
||||
Mac,
|
||||
Winfn,
|
||||
Macfn,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: Base Layer (Default Layer)
|
||||
*/
|
||||
[Win] = LAYOUT(
|
||||
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, KC_DEL,
|
||||
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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[Mac] = LAYOUT(
|
||||
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_DEL,
|
||||
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_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_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[Winfn] = LAYOUT(
|
||||
QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI,
|
||||
KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS,
|
||||
KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI),
|
||||
|
||||
[Macfn] = LAYOUT(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI,
|
||||
KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI),
|
||||
|
||||
};
|
||||
|
||||
#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_VOLD, KC_VOLU) },
|
||||
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
|
||||
};
|
||||
#endif
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
writePin(C0, layer_state_cmp(state, 1));
|
||||
return state;
|
||||
};
|
||||
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
25
keyboards/darkproject/kd83a_bfg_edition/mcuconf.h
Normal file
25
keyboards/darkproject/kd83a_bfg_edition/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd
|
||||
*
|
||||
* 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 WB32_SPI_USE_QSPI
|
||||
#define WB32_SPI_USE_QSPI TRUE
|
||||
|
||||
#undef WB32_SPI_USE_SPIM2
|
||||
#define WB32_SPI_USE_SPIM2 TRUE
|
||||
25
keyboards/darkproject/kd83a_bfg_edition/readme.md
Normal file
25
keyboards/darkproject/kd83a_bfg_edition/readme.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# kd83a_bfg_edition
|
||||

|
||||

|
||||
|
||||
An 83 keys keyboard, Equipped with the WestBerry Q95 microcontroller.
|
||||
|
||||
* Keyboard Maintainer: [GSKY](https://github.com/gksygithub)
|
||||
* Hardware Supported: KD83A_BFG_Edition
|
||||
* Hardware Availability: [GSKY GitHub](https://github.com/gksygithub/keyboard)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make darkproject/kd83a_bfg_edition:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make darkproject/kd83a_bfg_edition:default:flash
|
||||
|
||||
To reset the board into bootloader mode, do one of the following:
|
||||
|
||||
* Hold the Reset switch mounted on the surface of the PCB back side after the USB cable is connected
|
||||
* Hold the Escape key while connecting the USB cable (also erases persistent settings)
|
||||
* Fn+ESC will reset the board to bootloader mode
|
||||
|
||||
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).
|
||||
1
keyboards/darkproject/kd83a_bfg_edition/rules.mk
Normal file
1
keyboards/darkproject/kd83a_bfg_edition/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
WEAR_LEVELING_DRIVER = spi_flash
|
||||
44
keyboards/darkproject/kd87a_bfg_edition/config.h
Normal file
44
keyboards/darkproject/kd87a_bfg_edition/config.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2022 GSKY <gskyGit@gsky.com.tw>
|
||||
*
|
||||
* 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
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
|
||||
/* External spi flash */
|
||||
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
|
||||
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
|
||||
|
||||
/* SPI Config for LED Driver */
|
||||
#define SPI_DRIVER SPIDQ
|
||||
#define SPI_SCK_PIN A5
|
||||
#define SPI_MOSI_PIN A7
|
||||
#define SPI_MISO_PIN A6
|
||||
|
||||
#define DRIVER_1_CS A15
|
||||
#define DRIVER_2_CS B15
|
||||
#define DRIVER_1_EN C13
|
||||
#define DRIVER_2_EN C13
|
||||
|
||||
#define DRIVER_COUNT 2
|
||||
#define DRIVER_1_LED_TOTAL 68
|
||||
#define DRIVER_2_LED_TOTAL 54
|
||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
23
keyboards/darkproject/kd87a_bfg_edition/halconf.h
Normal file
23
keyboards/darkproject/kd87a_bfg_edition/halconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd
|
||||
*
|
||||
* 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 HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user