mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-17 13:12:08 +00:00
commit
30ba4dbb88
3
.github/workflows/stale.yml
vendored
3
.github/workflows/stale.yml
vendored
@ -3,6 +3,7 @@ name: 'Close stale issues and PRs'
|
|||||||
permissions:
|
permissions:
|
||||||
issues: write
|
issues: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
actions: write
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
@ -13,7 +14,7 @@ jobs:
|
|||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v8
|
- uses: actions/stale@main
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
@ -495,10 +495,10 @@ check-size: top-symbols
|
|||||||
top-symbols: build
|
top-symbols: build
|
||||||
echo "###########################################"
|
echo "###########################################"
|
||||||
echo "# Highest flash usage:"
|
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 "###########################################"
|
||||||
echo "# Highest RAM usage:"
|
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 "###########################################"
|
echo "###########################################"
|
||||||
endif
|
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": {"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"},
|
"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"},
|
"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}
|
||||||
}
|
}
|
||||||
|
@ -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:
|
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)`
|
#### `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)`
|
#### `ko_make_with_layers(modifiers, key, replacement, layers)`
|
||||||
Additionally takes a bitmask `layers` that defines on which layers the override is used.
|
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
|
## 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
|
## 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%"/>
|
<img src="https://user-images.githubusercontent.com/2170248/55743725-08ad7a80-5a6e-11e9-83ed-126a2b0209fc.JPG" alt="simple mapped" width="50%"/>
|
||||||
|
|
||||||
```
|
|
||||||
## Clipping Range
|
## 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.
|
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,7 +543,7 @@ In addition to setting the Clipping Range, you can use `RGBLIGHT_LED_MAP` togeth
|
|||||||
#define RGBLED_NUM 8
|
#define RGBLED_NUM 8
|
||||||
#define RGBLIGHT_LED_MAP { 7, 6, 5, 4, 3, 2, 1, 0 }
|
#define RGBLIGHT_LED_MAP { 7, 6, 5, 4, 3, 2, 1, 0 }
|
||||||
|
|
||||||
// some soruce
|
// some source
|
||||||
rgblight_set_clipping_range(3, 4);
|
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%"/>
|
<img src="https://user-images.githubusercontent.com/2170248/55743747-119e4c00-5a6e-11e9-91e5-013203ffae8a.JPG" alt="clip mapped" width="70%"/>
|
||||||
|
@ -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.
|
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
|
```c
|
||||||
#define SERIAL_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the Serial implementation uses the PIO0 peripheral
|
#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
|
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
|
```c
|
||||||
#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral
|
#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
|
||||||
|
|
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
|
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));
|
oled_write_raw(layer_zero, sizeof(layer_zero));
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
oled_write_raw(layer_zero, sizeof(layer_zero));
|
oled_write_raw(layer_one, sizeof(layer_one));
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
oled_write_raw(layer_zero, sizeof(layer_zero));
|
oled_write_raw(layer_two, sizeof(layer_two));
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
oled_write_raw(layer_zero, sizeof(layer_zero));
|
oled_write_raw(layer_three, sizeof(layer_three));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
"url": "https://cannonkeys.com",
|
"url": "https://cannonkeys.com",
|
||||||
"usb": {
|
"usb": {
|
||||||
"device_version": "0.0.1",
|
"device_version": "0.0.1",
|
||||||
"pid": "0xCA04",
|
"pid": "0x0028",
|
||||||
"vid": "0x0028"
|
"vid": "0xCA04"
|
||||||
},
|
},
|
||||||
"community_layouts": ["ortho_1x1"],
|
"community_layouts": ["ortho_1x1"],
|
||||||
"layouts": {
|
"layouts": {
|
||||||
|
@ -1,2 +1 @@
|
|||||||
# Processor frequency
|
# This file intentionally left blank
|
||||||
F_CPU = 16000000
|
|
||||||
|
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
|
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.
|
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.
|
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`:
|
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`
|
`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
|
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 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) {
|
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 = ' ';
|
key_name = ' ';
|
||||||
last_keycode = keycode;
|
last_keycode = keycode;
|
||||||
if (IS_QK_MOD_TAP(keycode)) {
|
if (IS_QK_MOD_TAP(keycode)) {
|
||||||
@ -92,8 +96,6 @@ static void set_keylog(uint16_t keycode, keyrecord_t *record) {
|
|||||||
|
|
||||||
// update keylog
|
// update keylog
|
||||||
key_name = pgm_read_byte(&code_to_name[keycode]);
|
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) {
|
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) {
|
static void oled_render_keylog(void) {
|
||||||
const char *last_row_str = get_u8_str(last_row, ' ');
|
oled_write_char('0' + last_row, false);
|
||||||
oled_write(depad_str(last_row_str, ' '), false);
|
|
||||||
oled_write_P(PSTR("x"), false);
|
oled_write_P(PSTR("x"), false);
|
||||||
const char *last_col_str = get_u8_str(last_col, ' ');
|
oled_write_char('0' + last_col, false);
|
||||||
oled_write(depad_str(last_col_str, ' '), false);
|
|
||||||
oled_write_P(PSTR(", k"), false);
|
oled_write_P(PSTR(", k"), false);
|
||||||
const char *last_keycode_str = get_u16_str(last_keycode, ' ');
|
const char *last_keycode_str = get_u16_str(last_keycode, ' ');
|
||||||
oled_write(depad_str(last_keycode_str, ' '), false);
|
oled_write(depad_str(last_keycode_str, ' '), false);
|
||||||
|
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>
|
274
keyboards/darkproject/kd87a_bfg_edition/info.json
Normal file
274
keyboards/darkproject/kd87a_bfg_edition/info.json
Normal file
@ -0,0 +1,274 @@
|
|||||||
|
{
|
||||||
|
"manufacturer": "Kd87a_bfg_edition",
|
||||||
|
"keyboard_name": "Kd87a_bfg_edition",
|
||||||
|
"maintainer": "Gsky",
|
||||||
|
"bootloader": "wb32-dfu",
|
||||||
|
"bootmagic": {
|
||||||
|
"matrix": [1, 3]
|
||||||
|
},
|
||||||
|
"diode_direction": "COL2ROW",
|
||||||
|
"features": {
|
||||||
|
"bootmagic": 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": [87, 35],
|
||||||
|
"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": 65, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [6, 3], "x": 75, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [7, 1], "x": 85, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [7, 6], "x": 95, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [10, 6], "x": 110, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [10, 7], "x": 120, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [10, 3], "x": 130, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [10, 5], "x": 140, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [9, 7], "x": 155, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [10, 0], "x": 165, "y": 0 },
|
||||||
|
{ "flags": 4, "matrix": [9, 6], "x": 175, "y": 0 },
|
||||||
|
|
||||||
|
{ "flags": 4, "matrix": [1, 6], "x": 0, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [1, 7], "x": 10, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [2, 7], "x": 20, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [3, 7], "x": 30, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [4, 7], "x": 40, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [4, 6], "x": 50, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [5, 6], "x": 60, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [5, 7], "x": 70, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [6, 7], "x": 80, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [7, 7], "x": 90, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [8, 7], "x": 100, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [8, 6], "x": 110, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [6, 6], "x": 120, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [10, 1], "x": 130, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [11, 6], "x": 155, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [0, 2], "x": 165, "y": 15 },
|
||||||
|
{ "flags": 4, "matrix": [1, 5], "x": 175, "y": 15 },
|
||||||
|
|
||||||
|
{ "flags": 4, "matrix": [1, 1], "x": 0, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [1, 0], "x": 15, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [2, 0], "x": 25, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [3, 0], "x": 35, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [4, 0], "x": 45, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [4, 1], "x": 55, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [5, 1], "x": 65, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [5, 0], "x": 75, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [6, 0], "x": 85, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [7, 0], "x": 95, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [8, 0], "x": 105, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [8, 1], "x": 115, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [6, 1], "x": 125, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [10, 2], "x": 135, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [6, 5], "x": 155, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [7, 5], "x": 165, "y": 25 },
|
||||||
|
{ "flags": 4, "matrix": [2, 5], "x": 175, "y": 25 },
|
||||||
|
|
||||||
|
{ "flags": 8, "matrix": [2, 1], "x": 0, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 35 },
|
||||||
|
{ "flags": 4, "matrix": [10, 4], "x": 127.5, "y": 35 },
|
||||||
|
|
||||||
|
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [9, 1], "x": 122.5, "y": 45 },
|
||||||
|
{ "flags": 4, "matrix": [3, 5], "x": 165, "y": 45 },
|
||||||
|
|
||||||
|
{ "flags": 4, "matrix": [0, 6], "x": 0, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [9, 0], "x": 12.5, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [9, 3], "x": 25, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [9, 4], "x": 37.5, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [9, 5], "x": 100, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [9, 2], "x": 112.5, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [8, 4], "x": 125, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [0, 4], "x": 137.5, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [0, 3], "x": 155, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [7, 3], "x": 165, "y": 55 },
|
||||||
|
{ "flags": 4, "matrix": [0, 5], "x": 175, "y": 55 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "",
|
||||||
|
"usb": {
|
||||||
|
"device_version": "0.0.3",
|
||||||
|
"pid": "0xE393",
|
||||||
|
"vid": "0x342D"
|
||||||
|
},
|
||||||
|
"eeprom": {
|
||||||
|
"driver": "wear_leveling"
|
||||||
|
},
|
||||||
|
"community_layouts": ["tkl_ansi"],
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_tkl_ansi": {
|
||||||
|
"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.5, "y": 0 },
|
||||||
|
{ "label": "F6", "matrix": [6, 3], "x": 7.5, "y": 0 },
|
||||||
|
{ "label": "F7", "matrix": [7, 1], "x": 8.5, "y": 0 },
|
||||||
|
{ "label": "F8", "matrix": [7, 6], "x": 9.5, "y": 0 },
|
||||||
|
{ "label": "F9", "matrix": [10, 6], "x": 11, "y": 0 },
|
||||||
|
{ "label": "F10", "matrix": [10, 7], "x": 12, "y": 0 },
|
||||||
|
{ "label": "F11", "matrix": [10, 3], "x": 13, "y": 0 },
|
||||||
|
{ "label": "F12", "matrix": [10, 5], "x": 14, "y": 0 },
|
||||||
|
{ "label": "Printscreen", "matrix": [9, 7], "x": 15.5, "y": 0 },
|
||||||
|
{ "label": "Scroll Lock", "matrix": [10, 0], "x": 16.5, "y": 0 },
|
||||||
|
{ "label": "Pause Break", "matrix": [9, 6], "x": 17.5, "y": 0 },
|
||||||
|
{ "label": "`", "matrix": [1, 6], "x": 0, "y": 1.5 },
|
||||||
|
{ "label": "1", "matrix": [1, 7], "x": 1, "y": 1.5 },
|
||||||
|
{ "label": "2", "matrix": [2, 7], "x": 2, "y": 1.5 },
|
||||||
|
{ "label": "3", "matrix": [3, 7], "x": 3, "y": 1.5 },
|
||||||
|
{ "label": "4", "matrix": [4, 7], "x": 4, "y": 1.5 },
|
||||||
|
{ "label": "5", "matrix": [4, 6], "x": 5, "y": 1.5 },
|
||||||
|
{ "label": "6", "matrix": [5, 6], "x": 6, "y": 1.5 },
|
||||||
|
{ "label": "7", "matrix": [5, 7], "x": 7, "y": 1.5 },
|
||||||
|
{ "label": "8", "matrix": [6, 7], "x": 8, "y": 1.5 },
|
||||||
|
{ "label": "9", "matrix": [7, 7], "x": 9, "y": 1.5 },
|
||||||
|
{ "label": "0", "matrix": [8, 7], "x": 10, "y": 1.5 },
|
||||||
|
{ "label": "-", "matrix": [8, 6], "x": 11, "y": 1.5 },
|
||||||
|
{ "label": "=", "matrix": [6, 6], "x": 12, "y": 1.5 },
|
||||||
|
{ "label": "Backspace", "matrix": [10, 1], "w": 2, "x": 13, "y": 1.5 },
|
||||||
|
{ "label": "INS", "matrix": [11, 6], "x": 15.5, "y": 1.5 },
|
||||||
|
{ "label": "Home", "matrix": [0, 2], "x": 16.5, "y": 1.5 },
|
||||||
|
{ "label": "PgUp", "matrix": [1, 5], "x": 17.5, "y": 1.5 },
|
||||||
|
{ "label": "Tab", "matrix": [1, 1], "w": 1.5, "x": 0, "y": 2.5 },
|
||||||
|
{ "label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2.5 },
|
||||||
|
{ "label": "W", "matrix": [2, 0], "x": 2.5, "y": 2.5 },
|
||||||
|
{ "label": "E", "matrix": [3, 0], "x": 3.5, "y": 2.5 },
|
||||||
|
{ "label": "R", "matrix": [4, 0], "x": 4.5, "y": 2.5 },
|
||||||
|
{ "label": "T", "matrix": [4, 1], "x": 5.5, "y": 2.5 },
|
||||||
|
{ "label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2.5 },
|
||||||
|
{ "label": "U", "matrix": [5, 0], "x": 7.5, "y": 2.5 },
|
||||||
|
{ "label": "I", "matrix": [6, 0], "x": 8.5, "y": 2.5 },
|
||||||
|
{ "label": "O", "matrix": [7, 0], "x": 9.5, "y": 2.5 },
|
||||||
|
{ "label": "P", "matrix": [8, 0], "x": 10.5, "y": 2.5 },
|
||||||
|
{ "label": "[", "matrix": [8, 1], "x": 11.5, "y": 2.5 },
|
||||||
|
{ "label": "]", "matrix": [6, 1], "x": 12.5, "y": 2.5 },
|
||||||
|
{ "label": "\\", "matrix": [10, 2], "w": 1.5, "x": 13.5, "y": 2.5 },
|
||||||
|
{ "label": "Delete", "matrix": [6, 5], "x": 15.5, "y": 2.5 },
|
||||||
|
{ "label": "End", "matrix": [7, 5], "x": 16.5, "y": 2.5 },
|
||||||
|
{ "label": "PgDn", "matrix": [2, 5], "x": 17.5, "y": 2.5 },
|
||||||
|
{ "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 3.5 },
|
||||||
|
{ "label": "A", "matrix": [1, 2], "x": 1.75, "y": 3.5 },
|
||||||
|
{ "label": "S", "matrix": [2, 2], "x": 2.75, "y": 3.5 },
|
||||||
|
{ "label": "D", "matrix": [3, 2], "x": 3.75, "y": 3.5 },
|
||||||
|
{ "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.5 },
|
||||||
|
{ "label": "G", "matrix": [4, 3], "x": 5.75, "y": 3.5 },
|
||||||
|
{ "label": "H", "matrix": [5, 3], "x": 6.75, "y": 3.5 },
|
||||||
|
{ "label": "J", "matrix": [5, 2], "x": 7.75, "y": 3.5 },
|
||||||
|
{ "label": "K", "matrix": [6, 2], "x": 8.75, "y": 3.5 },
|
||||||
|
{ "label": "L", "matrix": [7, 2], "x": 9.75, "y": 3.5 },
|
||||||
|
{ "label": ";", "matrix": [8, 2], "x": 10.75, "y": 3.5 },
|
||||||
|
{ "label": "'", "matrix": [8, 3], "x": 11.75, "y": 3.5 },
|
||||||
|
{ "label": "Enter", "matrix": [10, 4], "w": 2.25, "x": 12.75, "y": 3.5 },
|
||||||
|
{ "label": "Shift", "matrix": [0, 0], "w": 2.25, "x": 0, "y": 4.5 },
|
||||||
|
{ "label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4.5 },
|
||||||
|
{ "label": "X", "matrix": [2, 4], "x": 3.25, "y": 4.5 },
|
||||||
|
{ "label": "C", "matrix": [3, 4], "x": 4.25, "y": 4.5 },
|
||||||
|
{ "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.5 },
|
||||||
|
{ "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.5 },
|
||||||
|
{ "label": "N", "matrix": [5, 5], "x": 7.25, "y": 4.5 },
|
||||||
|
{ "label": "M", "matrix": [5, 4], "x": 8.25, "y": 4.5 },
|
||||||
|
{ "label": ",", "matrix": [6, 4], "x": 9.25, "y": 4.5 },
|
||||||
|
{ "label": ".", "matrix": [7, 4], "x": 10.25, "y": 4.5 },
|
||||||
|
{ "label": "/", "matrix": [8, 5], "x": 11.25, "y": 4.5 },
|
||||||
|
{ "label": "Shift", "matrix": [9, 1], "w": 2.75, "x": 12.25, "y": 4.5 },
|
||||||
|
{ "label": "Up", "matrix": [3, 5], "x": 16.5, "y": 4.5 },
|
||||||
|
{ "label": "Ctrl", "matrix": [0, 6], "w": 1.25, "x": 0, "y": 5.5 },
|
||||||
|
{ "label": "Win", "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 5.5 },
|
||||||
|
{ "label": "Alt", "matrix": [9, 3], "w": 1.25, "x": 2.5, "y": 5.5 },
|
||||||
|
{ "label": "Space", "matrix": [9, 4], "w": 6.25, "x": 3.75, "y": 5.5 },
|
||||||
|
{ "label": "Alt", "matrix": [9, 5], "w": 1.25, "x": 10, "y": 5.5 },
|
||||||
|
{ "label": "FN", "matrix": [9, 2], "w": 1.25, "x": 11.25, "y": 5.5 },
|
||||||
|
{ "label": "APP", "matrix": [8, 4], "w": 1.25, "x": 12.5, "y": 5.5 },
|
||||||
|
{ "label": "Ctrl", "matrix": [0, 4], "w": 1.25, "x": 13.75, "y": 5.5 },
|
||||||
|
{ "label": "Left", "matrix": [0, 3], "x": 15.5, "y": 5.5 },
|
||||||
|
{ "label": "Down", "matrix": [7, 3], "x": 16.5, "y": 5.5 },
|
||||||
|
{ "label": "Right", "matrix": [0, 5], "x": 17.5, "y": 5.5 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
174
keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.c
Normal file
174
keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.c
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
/* 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 "kd87a_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, Esc
|
||||||
|
|
||||||
|
{0, CS1_SW1, CS2_SW1, CS3_SW1}, // 1, Esc
|
||||||
|
{0, CS1_SW2, CS2_SW2, CS3_SW2}, // 2, F1
|
||||||
|
{0, CS1_SW3, CS2_SW3, CS3_SW3}, // 3, F2
|
||||||
|
{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 4, F3
|
||||||
|
{0, CS1_SW5, CS2_SW5, CS3_SW5}, // 5, F4
|
||||||
|
{0, CS1_SW6, CS2_SW6, CS3_SW6}, // 6, F5
|
||||||
|
{0, CS1_SW7, CS2_SW7, CS3_SW7}, // 7, F6
|
||||||
|
{0, CS1_SW8, CS2_SW8, CS3_SW8}, // 8, F7
|
||||||
|
{0, CS1_SW9, CS2_SW9, CS3_SW9}, // 9, F8
|
||||||
|
{0, CS1_SW10, CS2_SW10, CS3_SW10}, // 10, F9
|
||||||
|
{0, CS1_SW11, CS2_SW11, CS3_SW11}, // 11, F10
|
||||||
|
{0, CS1_SW12, CS2_SW12, CS3_SW12}, // 12, F11
|
||||||
|
{1, CS1_SW1, CS2_SW1, CS3_SW1}, // 13, F12
|
||||||
|
{1, CS4_SW2, CS5_SW2, CS6_SW2}, // 14, Printscreen
|
||||||
|
{1, CS1_SW3, CS2_SW3, CS3_SW3}, // 15, Scroll Lock
|
||||||
|
{1, CS1_SW4, CS2_SW4, CS3_SW4}, // 16, Pause Break
|
||||||
|
|
||||||
|
{0, CS4_SW1, CS5_SW1, CS6_SW1}, // 17, `
|
||||||
|
{0, CS4_SW2, CS5_SW2, CS6_SW2}, // 18, 1
|
||||||
|
{0, CS4_SW3, CS5_SW3, CS6_SW3}, // 19, 2
|
||||||
|
{0, CS4_SW4, CS5_SW4, CS6_SW4}, // 20, 3
|
||||||
|
{0, CS4_SW5, CS5_SW5, CS6_SW5}, // 21, 4
|
||||||
|
{0, CS4_SW6, CS5_SW6, CS6_SW6}, // 22, 5
|
||||||
|
{0, CS4_SW7, CS5_SW7, CS6_SW7}, // 23, 6
|
||||||
|
{0, CS4_SW8, CS5_SW8, CS6_SW8}, // 24, 7
|
||||||
|
{0, CS4_SW9, CS5_SW9, CS6_SW9}, // 25, 8
|
||||||
|
{0, CS4_SW10, CS5_SW10, CS6_SW10}, // 26, 9
|
||||||
|
{0, CS4_SW11, CS5_SW11, CS6_SW11}, // 27, 0
|
||||||
|
{0, CS4_SW12, CS5_SW12, CS6_SW12}, // 28, -
|
||||||
|
{1, CS1_SW5, CS2_SW5, CS3_SW5}, // 29, =
|
||||||
|
{1, CS1_SW7, CS2_SW7, CS3_SW7}, // 30, Backspace
|
||||||
|
{1, CS1_SW2, CS2_SW2, CS3_SW2}, // 31, Insert
|
||||||
|
{1, CS4_SW5, CS5_SW5, CS6_SW5}, // 32, Home
|
||||||
|
{1, CS4_SW4, CS5_SW4, CS6_SW4}, // 33, Page Up
|
||||||
|
|
||||||
|
{0, CS7_SW1, CS8_SW1, CS9_SW1}, // 34, Tab
|
||||||
|
{0, CS7_SW2, CS8_SW2, CS9_SW2}, // 35, Q
|
||||||
|
{0, CS7_SW3, CS8_SW3, CS9_SW3}, // 36, W
|
||||||
|
{0, CS7_SW4, CS8_SW4, CS9_SW4}, // 37, E
|
||||||
|
{0, CS7_SW5, CS8_SW5, CS9_SW5}, // 38, R
|
||||||
|
{0, CS7_SW6, CS8_SW6, CS9_SW6}, // 39, T
|
||||||
|
{0, CS7_SW7, CS8_SW7, CS9_SW7}, // 40, Y
|
||||||
|
{0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U
|
||||||
|
{0, CS7_SW9, CS8_SW9, CS9_SW9}, // 42, I
|
||||||
|
{0, CS7_SW10, CS8_SW10, CS9_SW10}, // 43, O
|
||||||
|
{0, CS7_SW11, CS8_SW11, CS9_SW11}, // 44, P
|
||||||
|
{0, CS7_SW12, CS8_SW12, CS9_SW12}, // 45, [
|
||||||
|
{1, CS1_SW8, CS2_SW8, CS3_SW8}, // 46, ]
|
||||||
|
{1, CS1_SW9, CS2_SW9, CS3_SW9}, // 47, "\\"
|
||||||
|
{1, CS4_SW3, CS5_SW3, CS6_SW3}, // 48, Delete
|
||||||
|
{1, CS4_SW6, CS5_SW6, CS6_SW6}, // 49, END
|
||||||
|
{1, CS4_SW7, CS5_SW7, CS6_SW7}, // 50, Page down
|
||||||
|
|
||||||
|
{0, CS10_SW1, CS11_SW1, CS12_SW1}, // 51, Caps Lock
|
||||||
|
{0, CS10_SW2, CS11_SW2, CS12_SW2}, // 52, A
|
||||||
|
{0, CS10_SW3, CS11_SW3, CS12_SW3}, // 53, S
|
||||||
|
{0, CS10_SW4, CS11_SW4, CS12_SW4}, // 54, D
|
||||||
|
{0, CS10_SW5, CS11_SW5, CS12_SW5}, // 55, F
|
||||||
|
{0, CS10_SW6, CS11_SW6, CS12_SW6}, // 56, G
|
||||||
|
{0, CS10_SW7, CS11_SW7, CS12_SW7}, // 57, H
|
||||||
|
{0, CS10_SW8, CS11_SW8, CS12_SW8}, // 58, J
|
||||||
|
{0, CS10_SW9, CS11_SW9, CS12_SW9}, // 59, K
|
||||||
|
{0, CS10_SW10, CS11_SW10, CS12_SW10}, // 60, L
|
||||||
|
{0, CS10_SW11, CS11_SW11, CS12_SW11}, // 61, ;
|
||||||
|
{0, CS10_SW12, CS11_SW12, CS12_SW12}, // 62, '
|
||||||
|
{1, CS1_SW11, CS2_SW11, CS3_SW11}, // 63, Enter
|
||||||
|
|
||||||
|
{0, CS13_SW1, CS14_SW1, CS15_SW1}, // 64, Shift_L
|
||||||
|
{0, CS13_SW2, CS14_SW2, CS15_SW2}, // 65, Z
|
||||||
|
{0, CS13_SW3, CS14_SW3, CS15_SW3}, // 66, X
|
||||||
|
{0, CS13_SW4, CS14_SW4, CS15_SW4}, // 67, C
|
||||||
|
{0, CS13_SW5, CS14_SW5, CS15_SW5}, // 68, V
|
||||||
|
{0, CS13_SW6, CS14_SW6, CS15_SW6}, // 69, B
|
||||||
|
{0, CS13_SW7, CS14_SW7, CS15_SW7}, // 70, N
|
||||||
|
{0, CS13_SW8, CS14_SW8, CS15_SW8}, // 71, M
|
||||||
|
{0, CS13_SW9, CS14_SW9, CS15_SW9}, // 72, ,
|
||||||
|
{0, CS13_SW10, CS14_SW10, CS15_SW10}, // 73, .
|
||||||
|
{0, CS13_SW11, CS14_SW11, CS15_SW11}, // 74, /
|
||||||
|
{1, CS4_SW8, CS5_SW8, CS6_SW8}, // 75, Shift_R
|
||||||
|
{1, CS4_SW9, CS5_SW9, CS6_SW9}, // 76, Up
|
||||||
|
|
||||||
|
{0, CS16_SW1, CS17_SW1, CS18_SW1}, // 77, Ctrl_L
|
||||||
|
{0, CS16_SW2, CS17_SW2, CS18_SW2}, // 78, Win_L
|
||||||
|
{0, CS16_SW3, CS17_SW3, CS18_SW3}, // 79, Alt_L
|
||||||
|
{0, CS16_SW6, CS17_SW6, CS18_SW6}, // 80, Space
|
||||||
|
{0, CS16_SW9, CS17_SW9, CS18_SW9}, // 81, Alt_R
|
||||||
|
{0, CS16_SW10, CS17_SW10, CS18_SW10}, // 82, FN
|
||||||
|
{0, CS16_SW11, CS17_SW11, CS18_SW11}, // 83, APP
|
||||||
|
{0, CS16_SW12, CS17_SW12, CS18_SW12}, // 84, Ctrl_R
|
||||||
|
{1, CS4_SW10, CS5_SW10, CS6_SW10}, // 85, Left
|
||||||
|
{1, CS4_SW11, CS5_SW11, CS6_SW11}, // 86, Down
|
||||||
|
{1, CS10_SW5, CS11_SW5, CS12_SW5}, // 87, Right
|
||||||
|
};
|
||||||
|
|
||||||
|
#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 */
|
||||||
|
}
|
||||||
|
};
|
22
keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.h
Normal file
22
keyboards/darkproject/kd87a_bfg_edition/kd87a_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,69 @@
|
|||||||
|
/* 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_tkl_ansi(
|
||||||
|
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, MO(Winfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
[Mac] = LAYOUT_tkl_ansi(
|
||||||
|
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_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_RALT, MO(Macfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
[Winfn] = LAYOUT_tkl_ansi(
|
||||||
|
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_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_TRNS, RGB_HUI, KC_TRNS,
|
||||||
|
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, 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, 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, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI),
|
||||||
|
|
||||||
|
[Macfn] = LAYOUT_tkl_ansi(
|
||||||
|
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, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, 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, 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, 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, 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),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
writePin(C0, layer_state_cmp(state, 1));
|
||||||
|
return state;
|
||||||
|
};
|
69
keyboards/darkproject/kd87a_bfg_edition/keymaps/via/keymap.c
Normal file
69
keyboards/darkproject/kd87a_bfg_edition/keymaps/via/keymap.c
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/* 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_tkl_ansi(
|
||||||
|
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, MO(Winfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
[Mac] = LAYOUT_tkl_ansi(
|
||||||
|
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_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_RALT, MO(Macfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
[Winfn] = LAYOUT_tkl_ansi(
|
||||||
|
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_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_TRNS, RGB_HUI, KC_TRNS,
|
||||||
|
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, 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, 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, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI),
|
||||||
|
|
||||||
|
[Macfn] = LAYOUT_tkl_ansi(
|
||||||
|
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, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, 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, 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, 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, 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),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
writePin(C0, layer_state_cmp(state, 1));
|
||||||
|
return state;
|
||||||
|
};
|
@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
25
keyboards/darkproject/kd87a_bfg_edition/mcuconf.h
Normal file
25
keyboards/darkproject/kd87a_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
|
24
keyboards/darkproject/kd87a_bfg_edition/readme.md
Normal file
24
keyboards/darkproject/kd87a_bfg_edition/readme.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# KD87A_BFG_Edition
|
||||||
|

|
||||||
|
|
||||||
|
An 87 keys keyboard, Equipped with the WestBerry Q95 microcontroller.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [GSKY](https://github.com/gksygithub)
|
||||||
|
* Hardware Supported: KD87A_BFG_Edition
|
||||||
|
* Hardware Availability: [GSKY GitHub](https://github.com/gksygithub/keyboard1)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make darkproject/kd87a_bfg_edition:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make darkproject/kd87a_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/kd87a_bfg_edition/rules.mk
Normal file
1
keyboards/darkproject/kd87a_bfg_edition/rules.mk
Normal file
@ -0,0 +1 @@
|
|||||||
|
WEAR_LEVELING_DRIVER = spi_flash
|
10
keyboards/dcpedit/redherring/config.h
Executable file
10
keyboards/dcpedit/redherring/config.h
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
// Copyright 2023 Ming-Gih Lam (@dcpedit)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
#define SOLENOID_PIN B5
|
||||||
|
#define OLED_IC OLED_IC_SH1107
|
||||||
|
#define OLED_DISPLAY_64X128
|
139
keyboards/dcpedit/redherring/info.json
Normal file
139
keyboards/dcpedit/redherring/info.json
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
{
|
||||||
|
"manufacturer": "dcpedit",
|
||||||
|
"keyboard_name": "Red Herring",
|
||||||
|
"maintainer": "dcpedit",
|
||||||
|
"bootloader": "usbasploader",
|
||||||
|
"bootmagic": {
|
||||||
|
"matrix": [5, 14]
|
||||||
|
},
|
||||||
|
"diode_direction": "COL2ROW",
|
||||||
|
"encoder": {
|
||||||
|
"rotary": [
|
||||||
|
{"pin_a": "C2", "pin_b": "D7"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"indicators": {
|
||||||
|
"caps_lock": "A0"
|
||||||
|
},
|
||||||
|
"features": {
|
||||||
|
"bootmagic": true,
|
||||||
|
"extrakey": true,
|
||||||
|
"mousekey": true,
|
||||||
|
"encoder": true,
|
||||||
|
"oled": true,
|
||||||
|
"haptic": true
|
||||||
|
},
|
||||||
|
"matrix_pins": {
|
||||||
|
"cols": ["A1", "A2", "A3", "B0", "B1", "B2", "B3", "B4", "D0", "D1", "D5", "D6", "C5", "C4", "C3"],
|
||||||
|
"rows": ["C6", "A6", "A7", "A4", "C7", "A5"]
|
||||||
|
},
|
||||||
|
"processor": "atmega32a",
|
||||||
|
"qmk": {
|
||||||
|
"tap_keycode_delay": 10
|
||||||
|
},
|
||||||
|
"url": "https://github.com/dcpedit/redherring",
|
||||||
|
"usb": {
|
||||||
|
"device_version": "1.0.0",
|
||||||
|
"pid": "0x12ED",
|
||||||
|
"vid": "0xDC9E"
|
||||||
|
},
|
||||||
|
"dynamic_keymap": {
|
||||||
|
"layer_count": 2
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label": "5,14", "matrix": [5, 14], "x": 0.75, "y": 0.25},
|
||||||
|
{"label": "0,0", "matrix": [0, 0], "x": 2.25, "y": 0.25},
|
||||||
|
{"label": "0,1", "matrix": [0, 1], "x": 3.25, "y": 0.25},
|
||||||
|
{"label": "0,2", "matrix": [0, 2], "x": 4.75, "y": 0.25},
|
||||||
|
{"label": "0,3", "matrix": [0, 3], "x": 5.75, "y": 0.13},
|
||||||
|
{"label": "0,4", "matrix": [0, 4], "x": 6.75, "y": 0.25},
|
||||||
|
{"label": "0,5", "matrix": [0, 5], "x": 7.75, "y": 0.38},
|
||||||
|
{"label": "0,6", "matrix": [0, 6], "x": 11.5, "y": 0.38},
|
||||||
|
{"label": "0,7", "matrix": [0, 7], "x": 12.5, "y": 0.25},
|
||||||
|
{"label": "0,8", "matrix": [0, 8], "x": 13.5, "y": 0.13},
|
||||||
|
{"label": "0,9", "matrix": [0, 9], "x": 14.5, "y": 0.25},
|
||||||
|
{"label": "0,10", "matrix": [0, 10], "x": 16, "y": 0.25},
|
||||||
|
{"label": "0,11", "matrix": [0, 11], "x": 17, "y": 0.25},
|
||||||
|
{"label": "0,12", "matrix": [0, 12], "x": 18.13, "y": 0.25},
|
||||||
|
{"label": "0,13", "matrix": [0, 13], "x": 19.13, "y": 0.25},
|
||||||
|
{"label": "0,14", "matrix": [0, 14], "x": 21, "y": 0.25},
|
||||||
|
{"label": "1,0", "matrix": [1, 0], "x": 2, "y": 1.5},
|
||||||
|
{"label": "1,1", "matrix": [1, 1], "x": 3, "y": 1.5},
|
||||||
|
{"label": "1,2", "matrix": [1, 2], "x": 4.75, "y": 1.5},
|
||||||
|
{"label": "1,3", "matrix": [1, 3], "x": 5.75, "y": 1.38},
|
||||||
|
{"label": "1,4", "matrix": [1, 4], "x": 6.75, "y": 1.5},
|
||||||
|
{"label": "1,5", "matrix": [1, 5], "x": 7.75, "y": 1.63},
|
||||||
|
{"label": "1,6", "matrix": [1, 6], "x": 11.5, "y": 1.63},
|
||||||
|
{"label": "1,7", "matrix": [1, 7], "x": 12.5, "y": 1.5},
|
||||||
|
{"label": "1,8", "matrix": [1, 8], "x": 13.5, "y": 1.38},
|
||||||
|
{"label": "1,9", "matrix": [1, 9], "x": 14.5, "y": 1.5},
|
||||||
|
{"label": "1,10", "matrix": [1, 10], "x": 16.25, "y": 1.5},
|
||||||
|
{"label": "1,11", "matrix": [1, 11], "x": 17.25, "y": 1.5},
|
||||||
|
{"label": "1,12", "matrix": [1, 12], "x": 18.25, "y": 1.5},
|
||||||
|
{"label": "1,13", "matrix": [1, 13], "x": 19.25, "y": 1.5},
|
||||||
|
{"label": "1,14", "matrix": [1, 14], "x": 20.25, "y": 1.5},
|
||||||
|
{"label": "2,14", "matrix": [2, 14], "x": 21.75, "y": 1.5},
|
||||||
|
{"label": "2,0", "matrix": [2, 0], "x": 1.25, "y": 2.5, "w": 1.5},
|
||||||
|
{"label": "2,1", "matrix": [2, 1], "x": 2.75, "y": 2.5},
|
||||||
|
{"label": "2,2", "matrix": [2, 2], "x": 4.75, "y": 2.5},
|
||||||
|
{"label": "2,3", "matrix": [2, 3], "x": 5.75, "y": 2.38},
|
||||||
|
{"label": "2,4", "matrix": [2, 4], "x": 6.75, "y": 2.5},
|
||||||
|
{"label": "2,5", "matrix": [2, 5], "x": 7.75, "y": 2.63},
|
||||||
|
{"label": "2,6", "matrix": [2, 6], "x": 11.5, "y": 2.63},
|
||||||
|
{"label": "2,7", "matrix": [2, 7], "x": 12.5, "y": 2.5},
|
||||||
|
{"label": "2,8", "matrix": [2, 8], "x": 13.5, "y": 2.38},
|
||||||
|
{"label": "2,9", "matrix": [2, 9], "x": 14.5, "y": 2.5},
|
||||||
|
{"label": "2,10", "matrix": [2, 10], "x": 16.5, "y": 2.5},
|
||||||
|
{"label": "2,11", "matrix": [2, 11], "x": 17.5, "y": 2.5},
|
||||||
|
{"label": "2,12", "matrix": [2, 12], "x": 18.5, "y": 2.5},
|
||||||
|
{"label": "2,13", "matrix": [2, 13], "x": 19.5, "y": 2.5, "w": 1.5},
|
||||||
|
{"label": "3,13", "matrix": [3, 13], "x": 21.5, "y": 2.5},
|
||||||
|
{"label": "3,0", "matrix": [3, 0], "x": 0.75, "y": 3.5, "w": 1.75},
|
||||||
|
{"label": "3,1", "matrix": [3, 1], "x": 2.5, "y": 3.5},
|
||||||
|
{"label": "3,2", "matrix": [3, 2], "x": 4.75, "y": 3.5},
|
||||||
|
{"label": "3,3", "matrix": [3, 3], "x": 5.75, "y": 3.38},
|
||||||
|
{"label": "3,4", "matrix": [3, 4], "x": 6.75, "y": 3.5},
|
||||||
|
{"label": "3,5", "matrix": [3, 5], "x": 7.75, "y": 3.63},
|
||||||
|
{"label": "3,6", "matrix": [3, 6], "x": 11.5, "y": 3.63},
|
||||||
|
{"label": "3,7", "matrix": [3, 7], "x": 12.5, "y": 3.5},
|
||||||
|
{"label": "3,8", "matrix": [3, 8], "x": 13.5, "y": 3.38},
|
||||||
|
{"label": "3,9", "matrix": [3, 9], "x": 14.5, "y": 3.5},
|
||||||
|
{"label": "3,10", "matrix": [3, 10], "x": 16.75, "y": 3.5},
|
||||||
|
{"label": "3,11", "matrix": [3, 11], "x": 17.75, "y": 3.5},
|
||||||
|
{"label": "3,12", "matrix": [3, 12], "x": 18.75, "y": 3.5, "w": 2.25},
|
||||||
|
{"label": "3,14", "matrix": [3, 14], "x": 21.25, "y": 3.5},
|
||||||
|
{"label": "4,14", "matrix": [4, 14], "x": 0, "y": 4.5, "w": 1.25},
|
||||||
|
{"label": "4,0", "matrix": [4, 0], "x": 1.25, "y": 4.5},
|
||||||
|
{"label": "4,1", "matrix": [4, 1], "x": 2.25, "y": 4.5},
|
||||||
|
{"label": "4,2", "matrix": [4, 2], "x": 4.75, "y": 4.5},
|
||||||
|
{"label": "4,3", "matrix": [4, 3], "x": 5.75, "y": 4.38},
|
||||||
|
{"label": "4,4", "matrix": [4, 4], "x": 6.75, "y": 4.5},
|
||||||
|
{"label": "4,5", "matrix": [4, 5], "x": 7.75, "y": 4.63},
|
||||||
|
{"label": "5,5", "matrix": [5, 5], "x": 8.75, "y": 4.63},
|
||||||
|
{"label": "5,6", "matrix": [5, 6], "x": 10.5, "y": 4.63},
|
||||||
|
{"label": "4,6", "matrix": [4, 6], "x": 11.5, "y": 4.63},
|
||||||
|
{"label": "4,7", "matrix": [4, 7], "x": 12.5, "y": 4.5},
|
||||||
|
{"label": "4,8", "matrix": [4, 8], "x": 13.5, "y": 4.38},
|
||||||
|
{"label": "4,9", "matrix": [4, 9], "x": 14.5, "y": 4.5},
|
||||||
|
{"label": "4,10", "matrix": [4, 10], "x": 17, "y": 4.5},
|
||||||
|
{"label": "4,11", "matrix": [4, 11], "x": 18, "y": 4.5},
|
||||||
|
{"label": "4,12", "matrix": [4, 12], "x": 19, "y": 4.5, "w": 1.25},
|
||||||
|
{"label": "4,13", "matrix": [4, 13], "x": 20.5, "y": 4.75},
|
||||||
|
{"label": "5,0", "matrix": [5, 0], "x": 0.5, "y": 5.5, "w": 1.25},
|
||||||
|
{"label": "5,1", "matrix": [5, 1], "x": 1.75, "y": 5.5, "w": 1.25},
|
||||||
|
{"label": "5,2", "matrix": [5, 2], "x": 5.25, "y": 5.5, "w": 1.25},
|
||||||
|
{"label": "5,3", "matrix": [5, 3], "x": 6.5, "y": 5.5, "w": 1.25},
|
||||||
|
{"label": "5,4", "matrix": [5, 4], "x": 7.75, "y": 5.63, "w": 2},
|
||||||
|
{"label": "5,7", "matrix": [5, 7], "x": 10.5, "y": 5.63, "w": 2.75},
|
||||||
|
{"label": "5,8", "matrix": [5, 8], "x": 13.25, "y": 5.5, "w": 1.25},
|
||||||
|
{"label": "5,9", "matrix": [5, 9], "x": 16.75, "y": 5.5, "w": 1.25},
|
||||||
|
{"label": "5,10", "matrix": [5, 10], "x": 18, "y": 5.5, "w": 1.25},
|
||||||
|
{"label": "5,11", "matrix": [5, 11], "x": 19.5, "y": 5.75},
|
||||||
|
{"label": "5,12", "matrix": [5, 12], "x": 20.5, "y": 5.75},
|
||||||
|
{"label": "5,13", "matrix": [5, 13], "x": 21.5, "y": 5.75}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
29
keyboards/dcpedit/redherring/keymaps/default/keymap.c
Normal file
29
keyboards/dcpedit/redherring/keymaps/default/keymap.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// Copyright 2023 Ming-Gih Lam (@dcpedit)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_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_MUTE,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, 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_PGUP,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_MENU, KC_SPC, KC_SPC, KC_ALGR, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
QK_RBT, 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, HF_TOGG,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
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_PGUP, KC_PGDN) },
|
||||||
|
};
|
||||||
|
#endif
|
1
keyboards/dcpedit/redherring/keymaps/default/rules.mk
Normal file
1
keyboards/dcpedit/redherring/keymaps/default/rules.mk
Normal file
@ -0,0 +1 @@
|
|||||||
|
ENCODER_MAP_ENABLE = yes
|
31
keyboards/dcpedit/redherring/keymaps/via/keymap.c
Normal file
31
keyboards/dcpedit/redherring/keymaps/via/keymap.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright 2023 Ming-Gih Lam (@dcpedit)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
|
||||||
|
KC_ESC, KC_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_MUTE,
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, 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_PGUP,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_MENU, KC_SPC, KC_SPC, KC_ALGR, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
|
||||||
|
|
||||||
|
[1] = LAYOUT(
|
||||||
|
|
||||||
|
QK_RBT, 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, HF_TOGG,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
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_PGUP, KC_PGDN) },
|
||||||
|
};
|
||||||
|
#endif
|
2
keyboards/dcpedit/redherring/keymaps/via/rules.mk
Normal file
2
keyboards/dcpedit/redherring/keymaps/via/rules.mk
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
ENCODER_MAP_ENABLE = yes
|
27
keyboards/dcpedit/redherring/readme.md
Normal file
27
keyboards/dcpedit/redherring/readme.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Red Herring
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Unibody ergonomic orthilinar keyboard with through-hole components. Supports standard keycaps, a 64x128 OLED, large rotary encoder knob, and a solenoid.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [dcpedit](https://github.com/dcpedit)
|
||||||
|
* Hardware Supported: ATMEGA32A
|
||||||
|
* Hardware Availability: https://github.com/dcpedit/redherring
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make dcpedit/redherring:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make dcpedit/redherring: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 ESC key (top-left key) and plug in the keyboard
|
||||||
|
* **Physical reset button**: On the PCB, while holding down the BOOT button, press and release the RESET button
|
||||||
|
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
91
keyboards/dcpedit/redherring/redherring.c
Normal file
91
keyboards/dcpedit/redherring/redherring.c
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
// Copyright 2023 Ming-Gih Lam (@dcpedit)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LOGO_SIZE 1024
|
||||||
|
|
||||||
|
#ifdef OLED_ENABLE
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM oled_logo[LOGO_SIZE] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xc3, 0x06, 0x18, 0xe1, 0x03, 0x0c, 0xb0, 0x60,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x78, 0x00, 0x00, 0x00, 0xe0, 0x1c,
|
||||||
|
0x00, 0x00, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0x00, 0x00, 0x04, 0x78, 0x80, 0x00,
|
||||||
|
0x00, 0x38, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xff, 0x1f, 0x3f, 0xfe, 0x3e, 0x7f, 0xfe, 0x7c, 0x7f, 0x7c,
|
||||||
|
0x3c, 0x20, 0x20, 0xe0, 0x7c, 0x43, 0x40, 0xc0, 0xf8, 0x87, 0x80, 0x80, 0xe0, 0x1e, 0x01, 0x00,
|
||||||
|
0xc0, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x07, 0x78,
|
||||||
|
0x80, 0x80, 0x83, 0xbf, 0xff, 0xff, 0xe3, 0xc1, 0xc1, 0xc1, 0xc1, 0xf7, 0xfe, 0xfe, 0xfc, 0x78,
|
||||||
|
0x00, 0x00, 0x10, 0x90, 0x88, 0x4c, 0x64, 0x22, 0x12, 0x11, 0x08, 0x0c, 0x07, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3c, 0x03, 0x00, 0x80, 0x78, 0x07, 0x00, 0x00, 0xe0, 0x1e, 0x01, 0x01, 0xc1, 0x3d,
|
||||||
|
0x07, 0x02, 0x02, 0xf2, 0x0e, 0x02, 0x02, 0x06, 0x7e, 0xc2, 0x02, 0x03, 0x1f, 0xe1, 0x01, 0x01,
|
||||||
|
0x07, 0x78, 0x80, 0x00, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x03, 0x00, 0x00,
|
||||||
|
0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x20, 0x1e, 0x01, 0x00, 0xc0, 0x7c, 0x07, 0x00,
|
||||||
|
0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x7c, 0xc0, 0x00, 0x01, 0x1e, 0xe0,
|
||||||
|
0x00, 0x00, 0x07, 0x38, 0x00, 0x00, 0x03, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||||
|
0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x38, 0xfe, 0xc7, 0x83, 0xff, 0xff, 0x01, 0x81, 0x03, 0x0f, 0xfe, 0xf0, 0x00, 0xff, 0xff, 0x01,
|
||||||
|
0x01, 0x61, 0xff, 0x9f, 0x01, 0xfe, 0xef, 0x83, 0xff, 0xff, 0x01, 0x01, 0x03, 0x07, 0xfe, 0xf8,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0x19, 0xff, 0xff, 0x3b, 0x79, 0xf8, 0xcf, 0x07, 0x01, 0x00, 0xf1, 0xff, 0x0e,
|
||||||
|
0x0e, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xff, 0x7f,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x30, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0xf0, 0xf0, 0x00, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0xb0, 0xf0,
|
||||||
|
0x70, 0x90, 0xc0, 0xe2, 0xf3, 0xf3, 0x70, 0x30, 0x31, 0x63, 0xe3, 0xc2, 0x00, 0x83, 0xc3, 0xe3,
|
||||||
|
0xf3, 0xf3, 0x73, 0x33, 0x33, 0x60, 0xe0, 0x82, 0x03, 0xf3, 0xf3, 0x13, 0x63, 0xf3, 0xb1, 0xf0,
|
||||||
|
0xe0, 0x00, 0x00, 0x00, 0x10, 0xf0, 0xf0, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x30, 0x30, 0xe0, 0xc0,
|
||||||
|
|
||||||
|
0x00, 0xff, 0xff, 0x30, 0x30, 0x30, 0xff, 0xff, 0x80, 0x1f, 0x7f, 0xe0, 0xc0, 0xc0, 0x9f, 0x1f,
|
||||||
|
0x00, 0x07, 0x1f, 0x38, 0xff, 0xff, 0x60, 0x60, 0x10, 0x80, 0xff, 0xff, 0x00, 0x0f, 0x1f, 0x38,
|
||||||
|
0xff, 0xff, 0x60, 0x60, 0x00, 0x80, 0xff, 0x7f, 0x00, 0xff, 0xff, 0x00, 0x00, 0x01, 0x03, 0xff,
|
||||||
|
0xff, 0x1c, 0x78, 0xe0, 0xc0, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x04, 0xe6, 0xe7, 0x63,
|
||||||
|
0x60, 0x7f, 0x7f, 0x00, 0x02, 0x46, 0x7f, 0x7f, 0x00, 0x7c, 0x7f, 0x63, 0x61, 0x61, 0x60, 0x60,
|
||||||
|
0x60, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x47, 0x07, 0x0f, 0x3f, 0x79, 0x60, 0x40, 0x00, 0x00, 0x00,
|
||||||
|
0x7f, 0x7f, 0x47, 0x07, 0x0f, 0x3f, 0x71, 0x40, 0x00, 0x7f, 0x7f, 0x40, 0x00, 0x00, 0x00, 0x7f,
|
||||||
|
0x7f, 0x40, 0x00, 0x00, 0x47, 0x7f, 0x7f, 0x00, 0x1f, 0x3f, 0x70, 0x60, 0x60, 0x7f, 0x7f, 0x40,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_raw_P(oled_logo, LOGO_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool oled_task_kb(void) {
|
||||||
|
if (!oled_task_user()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
render_logo();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
2
keyboards/dcpedit/redherring/rules.mk
Normal file
2
keyboards/dcpedit/redherring/rules.mk
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
F_CPU = 16000000
|
||||||
|
HAPTIC_DRIVER = solenoid
|
20
keyboards/dnworks/9973/config.h
Normal file
20
keyboards/dnworks/9973/config.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2023 zeix (@itsme-zeix)
|
||||||
|
|
||||||
|
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 RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||||
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
480
keyboards/dnworks/9973/info.json
Normal file
480
keyboards/dnworks/9973/info.json
Normal file
@ -0,0 +1,480 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "DN 997.3",
|
||||||
|
"maintainer": "itsme-zeix",
|
||||||
|
"manufacturer": "dnworks",
|
||||||
|
"processor": "RP2040",
|
||||||
|
"bootloader": "rp2040",
|
||||||
|
"usb": {
|
||||||
|
"vid": "0x4C23",
|
||||||
|
"pid": "0x2936",
|
||||||
|
"device_version": "0.0.1"
|
||||||
|
},
|
||||||
|
"features": {
|
||||||
|
"bootmagic": true,
|
||||||
|
"mousekey": true,
|
||||||
|
"extrakey": true,
|
||||||
|
"nkro": true
|
||||||
|
},
|
||||||
|
"indicators": {
|
||||||
|
"caps_lock": "GP27",
|
||||||
|
"scroll_lock": "GP1",
|
||||||
|
"on_state": 1
|
||||||
|
},
|
||||||
|
"diode_direction": "COL2ROW",
|
||||||
|
"matrix_pins": {
|
||||||
|
"rows": ["GP2", "GP3", "GP4", "GP29", "GP12", "GP13"],
|
||||||
|
"cols": ["GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP6", "GP5", "GP0"]
|
||||||
|
},
|
||||||
|
"community_layouts": ["tkl_ansi_tsangan", "tkl_iso_tsangan"],
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{ "matrix": [0, 0], "x": 0, "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.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 9], "x": 9.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 10], "x": 11, "y": 0 },
|
||||||
|
{ "matrix": [0, 11], "x": 12, "y": 0 },
|
||||||
|
{ "matrix": [0, 12], "x": 13, "y": 0 },
|
||||||
|
{ "matrix": [0, 13], "x": 14, "y": 0 },
|
||||||
|
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||||
|
{ "matrix": [1, 0], "x": 0, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 1], "x": 1, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 2], "x": 2, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 3], "x": 3, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 4], "x": 4, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 5], "x": 5, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 6], "x": 6, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 7], "x": 7, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 8], "x": 8, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 9], "x": 9, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 10], "x": 10, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 11], "x": 11, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 12], "x": 12, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 14], "x": 15.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 15], "x": 16.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 16], "x": 17.25, "y": 1.5 },
|
||||||
|
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 1], "x": 1.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 2], "x": 2.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 3], "x": 3.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 4], "x": 4.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 5], "x": 5.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 6], "x": 6.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 7], "x": 7.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 8], "x": 8.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 9], "x": 9.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 10], "x": 10.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 11], "x": 11.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 12], "x": 12.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 14], "x": 15.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 15], "x": 16.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 16], "x": 17.25, "y": 2.5 },
|
||||||
|
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 1], "x": 1.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 2], "x": 2.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 3], "x": 3.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 4], "x": 4.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 5], "x": 5.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 6], "x": 6.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 7], "x": 7.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 8], "x": 8.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 9], "x": 9.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 10], "x": 10.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 11], "x": 11.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
|
||||||
|
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 1], "x": 1.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 2], "x": 2.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 3], "x": 3.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 4], "x": 4.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 5], "x": 5.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 6], "x": 6.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 7], "x": 7.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 8], "x": 8.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 9], "x": 9.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 10], "x": 10.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 11], "x": 11.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 15], "x": 16.25, "y": 4.5 },
|
||||||
|
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 1], "x": 1.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 11], "x": 12.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 14], "x": 15.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 15], "x": 16.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 16], "x": 17.25, "y": 5.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_tkl_ansi_tsangan": {
|
||||||
|
"layout": [
|
||||||
|
{ "matrix": [0, 0], "x": 0, "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.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 9], "x": 9.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 10], "x": 11, "y": 0 },
|
||||||
|
{ "matrix": [0, 11], "x": 12, "y": 0 },
|
||||||
|
{ "matrix": [0, 12], "x": 13, "y": 0 },
|
||||||
|
{ "matrix": [0, 13], "x": 14, "y": 0 },
|
||||||
|
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||||
|
{ "matrix": [1, 0], "x": 0, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 1], "x": 1, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 2], "x": 2, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 3], "x": 3, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 4], "x": 4, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 5], "x": 5, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 6], "x": 6, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 7], "x": 7, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 8], "x": 8, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 9], "x": 9, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 10], "x": 10, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 11], "x": 11, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 12], "x": 12, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 14], "x": 15.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 15], "x": 16.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 16], "x": 17.25, "y": 1.5 },
|
||||||
|
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 1], "x": 1.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 2], "x": 2.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 3], "x": 3.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 4], "x": 4.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 5], "x": 5.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 6], "x": 6.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 7], "x": 7.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 8], "x": 8.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 9], "x": 9.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 10], "x": 10.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 11], "x": 11.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 12], "x": 12.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 14], "x": 15.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 15], "x": 16.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 16], "x": 17.25, "y": 2.5 },
|
||||||
|
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 1], "x": 1.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 2], "x": 2.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 3], "x": 3.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 4], "x": 4.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 5], "x": 5.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 6], "x": 6.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 7], "x": 7.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 8], "x": 8.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 9], "x": 9.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 10], "x": 10.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 11], "x": 11.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
|
||||||
|
{ "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 2], "x": 2.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 3], "x": 3.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 4], "x": 4.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 5], "x": 5.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 6], "x": 6.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 7], "x": 7.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 8], "x": 8.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 9], "x": 9.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 10], "x": 10.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 11], "x": 11.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 15], "x": 16.25, "y": 4.5 },
|
||||||
|
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 1], "x": 1.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 11], "x": 12.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 14], "x": 15.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 15], "x": 16.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 16], "x": 17.25, "y": 5.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_tkl_ansi_wkl": {
|
||||||
|
"layout": [
|
||||||
|
{ "matrix": [0, 0], "x": 0, "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.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 9], "x": 9.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 10], "x": 11, "y": 0 },
|
||||||
|
{ "matrix": [0, 11], "x": 12, "y": 0 },
|
||||||
|
{ "matrix": [0, 12], "x": 13, "y": 0 },
|
||||||
|
{ "matrix": [0, 13], "x": 14, "y": 0 },
|
||||||
|
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||||
|
{ "matrix": [1, 0], "x": 0, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 1], "x": 1, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 2], "x": 2, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 3], "x": 3, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 4], "x": 4, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 5], "x": 5, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 6], "x": 6, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 7], "x": 7, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 8], "x": 8, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 9], "x": 9, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 10], "x": 10, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 11], "x": 11, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 12], "x": 12, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 14], "x": 15.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 15], "x": 16.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 16], "x": 17.25, "y": 1.5 },
|
||||||
|
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 1], "x": 1.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 2], "x": 2.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 3], "x": 3.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 4], "x": 4.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 5], "x": 5.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 6], "x": 6.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 7], "x": 7.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 8], "x": 8.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 9], "x": 9.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 10], "x": 10.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 11], "x": 11.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 12], "x": 12.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 14], "x": 15.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 15], "x": 16.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 16], "x": 17.25, "y": 2.5 },
|
||||||
|
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 1], "x": 1.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 2], "x": 2.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 3], "x": 3.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 4], "x": 4.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 5], "x": 5.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 6], "x": 6.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 7], "x": 7.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 8], "x": 8.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 9], "x": 9.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 10], "x": 10.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 11], "x": 11.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
|
||||||
|
{ "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 2], "x": 2.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 3], "x": 3.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 4], "x": 4.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 5], "x": 5.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 6], "x": 6.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 7], "x": 7.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 8], "x": 8.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 9], "x": 9.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 10], "x": 10.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 11], "x": 11.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 15], "x": 16.25, "y": 4.5 },
|
||||||
|
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 14], "x": 15.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 15], "x": 16.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 16], "x": 17.25, "y": 5.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_tkl_iso_tsangan": {
|
||||||
|
"layout": [
|
||||||
|
{ "matrix": [0, 0], "x": 0, "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.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 9], "x": 9.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 10], "x": 11, "y": 0 },
|
||||||
|
{ "matrix": [0, 11], "x": 12, "y": 0 },
|
||||||
|
{ "matrix": [0, 12], "x": 13, "y": 0 },
|
||||||
|
{ "matrix": [0, 13], "x": 14, "y": 0 },
|
||||||
|
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||||
|
{ "matrix": [1, 0], "x": 0, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 1], "x": 1, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 2], "x": 2, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 3], "x": 3, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 4], "x": 4, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 5], "x": 5, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 6], "x": 6, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 7], "x": 7, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 8], "x": 8, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 9], "x": 9, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 10], "x": 10, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 11], "x": 11, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 12], "x": 12, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 14], "x": 15.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 15], "x": 16.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 16], "x": 17.25, "y": 1.5 },
|
||||||
|
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 1], "x": 1.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 2], "x": 2.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 3], "x": 3.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 4], "x": 4.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 5], "x": 5.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 6], "x": 6.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 7], "x": 7.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 8], "x": 8.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 9], "x": 9.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 10], "x": 10.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 11], "x": 11.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 12], "x": 12.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 14], "x": 15.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 15], "x": 16.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 16], "x": 17.25, "y": 2.5 },
|
||||||
|
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 1], "x": 1.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 2], "x": 2.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 3], "x": 3.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 4], "x": 4.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 5], "x": 5.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 6], "x": 6.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 7], "x": 7.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 8], "x": 8.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 9], "x": 9.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 10], "x": 10.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 11], "x": 11.75, "y": 3.5 },
|
||||||
|
{ "matrix": [2, 13], "x": 12.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
|
||||||
|
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 1], "x": 1.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 2], "x": 2.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 3], "x": 3.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 4], "x": 4.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 5], "x": 5.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 6], "x": 6.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 7], "x": 7.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 8], "x": 8.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 9], "x": 9.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 10], "x": 10.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 11], "x": 11.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 15], "x": 16.25, "y": 4.5 },
|
||||||
|
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 1], "x": 1.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 11], "x": 12.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 14], "x": 15.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 15], "x": 16.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 16], "x": 17.25, "y": 5.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_tkl_iso_wkl": {
|
||||||
|
"layout": [
|
||||||
|
{ "matrix": [0, 0], "x": 0, "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.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 9], "x": 9.5, "y": 0 },
|
||||||
|
{ "matrix": [0, 10], "x": 11, "y": 0 },
|
||||||
|
{ "matrix": [0, 11], "x": 12, "y": 0 },
|
||||||
|
{ "matrix": [0, 12], "x": 13, "y": 0 },
|
||||||
|
{ "matrix": [0, 13], "x": 14, "y": 0 },
|
||||||
|
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||||
|
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||||
|
{ "matrix": [1, 0], "x": 0, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 1], "x": 1, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 2], "x": 2, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 3], "x": 3, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 4], "x": 4, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 5], "x": 5, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 6], "x": 6, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 7], "x": 7, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 8], "x": 8, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 9], "x": 9, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 10], "x": 10, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 11], "x": 11, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 12], "x": 12, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 14], "x": 15.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 15], "x": 16.25, "y": 1.5 },
|
||||||
|
{ "matrix": [1, 16], "x": 17.25, "y": 1.5 },
|
||||||
|
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 1], "x": 1.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 2], "x": 2.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 3], "x": 3.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 4], "x": 4.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 5], "x": 5.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 6], "x": 6.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 7], "x": 7.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 8], "x": 8.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 9], "x": 9.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 10], "x": 10.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 11], "x": 11.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 12], "x": 12.5, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 14], "x": 15.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 15], "x": 16.25, "y": 2.5 },
|
||||||
|
{ "matrix": [2, 16], "x": 17.25, "y": 2.5 },
|
||||||
|
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 1], "x": 1.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 2], "x": 2.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 3], "x": 3.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 4], "x": 4.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 5], "x": 5.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 6], "x": 6.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 7], "x": 7.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 8], "x": 8.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 9], "x": 9.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 10], "x": 10.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 11], "x": 11.75, "y": 3.5 },
|
||||||
|
{ "matrix": [2, 13], "x": 12.75, "y": 3.5 },
|
||||||
|
{ "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
|
||||||
|
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 1], "x": 1.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 2], "x": 2.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 3], "x": 3.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 4], "x": 4.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 5], "x": 5.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 6], "x": 6.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 7], "x": 7.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 8], "x": 8.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 9], "x": 9.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 10], "x": 10.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 11], "x": 11.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
|
||||||
|
{ "matrix": [4, 15], "x": 16.25, "y": 4.5 },
|
||||||
|
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 14], "x": 15.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 15], "x": 16.25, "y": 5.5 },
|
||||||
|
{ "matrix": [5, 16], "x": 17.25, "y": 5.5 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user