Compare commits
59 Commits
0.25.15
...
zvecr-patch-2
| Author | SHA1 | Date | |
|---|---|---|---|
| ec7a9896db | |||
| 072947e573 | |||
| fe50774cb4 | |||
| 39324e642f | |||
| b07a68230d | |||
| dccada95aa | |||
| 380e0c9cad | |||
| 158aaef78c | |||
| 5acc3b2b7b | |||
| 78900720fd | |||
| c67c3d375b | |||
| 75402109e9 | |||
| fa657fef70 | |||
| eb78ca1c1a | |||
| d28a50e176 | |||
| c7662e4f36 | |||
| 73cb6fd89f | |||
| d538451adb | |||
| cf84ea7662 | |||
| 8c35011d0a | |||
| 8c5acdea12 | |||
| 60c5ad821c | |||
| 622dc56250 | |||
| d079372580 | |||
| af70e3759a | |||
| 4bcc80ad46 | |||
| d09c11dc78 | |||
| 82f9019cc9 | |||
| 4e2effc538 | |||
| 8d5517fa63 | |||
| ee1505971f | |||
| b6e1a20950 | |||
| f2c789bb4a | |||
| fab50be817 | |||
| f04fd13dff | |||
| eb60235cd5 | |||
| 2fb9816c77 | |||
| 6fbe91aecd | |||
| a6857872f2 | |||
| 56323f75c6 | |||
| 11031adc1b | |||
| d79f46e408 | |||
| 2ddfd60be7 | |||
| 63ef6516d3 | |||
| 522bf1daf2 | |||
| a763dd5bbd | |||
| c70c99367a | |||
| b5b06f1094 | |||
| caa7599b83 | |||
| c2dbbc060a | |||
| 875eb43a28 | |||
| 2908f0b846 | |||
| a3d938d822 | |||
| 6dfd7ed46f | |||
| 7b5d7907df | |||
| 79ad561b67 | |||
| 5a5f68038e | |||
| 4d4d7b76b0 | |||
| c58c5fa8fa |
@@ -1,7 +1,7 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: QMK Discord
|
||||
url: https://discord.gg/Uq7gcHh
|
||||
url: https://discord.gg/qmk
|
||||
about: Ask questions, discuss issues and features. Chill.
|
||||
- name: OLKB Subreddit
|
||||
url: https://www.reddit.com/r/olkb
|
||||
|
||||
+46
-36
@@ -1,46 +1,56 @@
|
||||
core:
|
||||
- quantum/**/*
|
||||
- tmk_core/**/*
|
||||
- drivers/**/*
|
||||
- tests/**/*
|
||||
- util/**/*
|
||||
- platforms/**/*
|
||||
- builddefs/**/*
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- quantum/**
|
||||
- tmk_core/**
|
||||
- drivers/**
|
||||
- tests/**
|
||||
- util/**
|
||||
- platforms/**
|
||||
- builddefs/*.mk
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
dependencies:
|
||||
- any:
|
||||
- 'lib/**/*'
|
||||
- '!lib/python/**/*'
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: lib/**
|
||||
- all-globs-to-all-files: '!lib/python/**'
|
||||
keyboard:
|
||||
- any:
|
||||
- 'keyboards/**/*'
|
||||
- '!keyboards/**/keymaps/**/*'
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: keyboards/**
|
||||
- all-globs-to-all-files: '!keyboards/**/keymaps/**'
|
||||
keymap:
|
||||
- users/**/*
|
||||
- layouts/**/*
|
||||
- keyboards/**/keymaps/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- users/**
|
||||
- layouts/**
|
||||
- keyboards/**/keymaps/**
|
||||
via:
|
||||
- keyboards/**/keymaps/via/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- keyboards/**/keymaps/via/*
|
||||
cli:
|
||||
- requirements.txt
|
||||
- lib/python/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- requirements.txt
|
||||
- lib/python/**
|
||||
python:
|
||||
- '**/*.py'
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/*.py'
|
||||
documentation:
|
||||
- docs/**/*
|
||||
translation:
|
||||
- docs/fr-fr/**/*
|
||||
- docs/es/**/*
|
||||
- docs/ja/**/*
|
||||
- docs/he-il/**/*
|
||||
- docs/pt-br/**/*
|
||||
- docs/zh-cn/**/*
|
||||
- docs/de/**/*
|
||||
- docs/ru-ru/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/**
|
||||
- builddefs/docsgen/**
|
||||
CI:
|
||||
- .github/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- .github/**
|
||||
dd:
|
||||
- data/constants/**/*
|
||||
- data/mappings/**/*
|
||||
- data/schemas/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- data/constants/**
|
||||
- data/mappings/**
|
||||
- data/schemas/**
|
||||
|
||||
@@ -13,8 +13,8 @@ jobs:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: mheap/automatic-approve-action@v1
|
||||
- uses: zvecr/automatic-approve-action@safe_files
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
workflows: "format.yml,lint.yml,unit_test.yml"
|
||||
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
|
||||
workflows: "labeler.yml,lint.yml,docs.yml"
|
||||
safe_files: "keyboards/,docs/"
|
||||
|
||||
@@ -172,10 +172,10 @@ jobs:
|
||||
targets-${{ inputs.keymap }}
|
||||
|
||||
- name: 'CI Discord Notification'
|
||||
if: always()
|
||||
if: always() && !cancelled()
|
||||
working-directory: util/ci/
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
|
||||
run: |
|
||||
python3 -m pip install -r requirements.txt
|
||||
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --sha $(git rev-parse HEAD) --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
name: "Pull Request Labeler"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened, ready_for_review, locked]
|
||||
- pull_request_target
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
configuration-path: '.github/labeler.yml'
|
||||
- uses: actions/labeler@v5
|
||||
|
||||
@@ -34,10 +34,13 @@ ifeq ($(strip $(DUMP_CI_METADATA)),yes)
|
||||
endif
|
||||
|
||||
# Force expansion
|
||||
TARGET := $(TARGET)
|
||||
override TARGET := $(TARGET)
|
||||
|
||||
ifneq ($(FORCE_LAYOUT),)
|
||||
TARGET := $(TARGET)_$(FORCE_LAYOUT)
|
||||
override TARGET := $(TARGET)_$(FORCE_LAYOUT)
|
||||
endif
|
||||
ifneq ($(CONVERT_TO),)
|
||||
override TARGET := $(TARGET)_$(CONVERT_TO)
|
||||
endif
|
||||
|
||||
# Object files and generated keymap directory
|
||||
@@ -58,9 +61,6 @@ ifdef SKIP_GIT
|
||||
VERSION_H_FLAGS += --skip-git
|
||||
endif
|
||||
|
||||
# Generate the board's version.h file.
|
||||
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
|
||||
|
||||
# Determine which subfolders exist.
|
||||
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
|
||||
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
|
||||
@@ -218,6 +218,9 @@ endif
|
||||
|
||||
include $(BUILDDEFS_PATH)/converters.mk
|
||||
|
||||
# Generate the board's version.h file.
|
||||
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
|
||||
|
||||
MCU_ORIG := $(MCU)
|
||||
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
|
||||
|
||||
|
||||
@@ -32,9 +32,6 @@ ifneq ($(CONVERT_TO),)
|
||||
|
||||
PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2)
|
||||
|
||||
# force setting as value can be from environment
|
||||
override TARGET := $(TARGET)_$(CONVERT_TO)
|
||||
|
||||
# Configure any defaults
|
||||
OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')
|
||||
OPT_DEFS += -DCONVERTER_TARGET=\"$(CONVERT_TO)\"
|
||||
|
||||
@@ -16,12 +16,6 @@
|
||||
"type": "object",
|
||||
"additionalProperties": {"type": "boolean"}
|
||||
},
|
||||
"build_target": {
|
||||
"oneOf": [
|
||||
{"$ref": "#/keyboard_keymap_tuple"},
|
||||
{"$ref": "#/json_file_path"}
|
||||
]
|
||||
},
|
||||
"filename": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
@@ -53,6 +47,19 @@
|
||||
{"$ref": "#/keyboard"},
|
||||
{"$ref": "#/filename"}
|
||||
],
|
||||
"minItems": 2,
|
||||
"maxItems": 2,
|
||||
"unevaluatedItems": false
|
||||
},
|
||||
"keyboard_keymap_env": {
|
||||
"type": "array",
|
||||
"prefixItems": [
|
||||
{"$ref": "#/keyboard"},
|
||||
{"$ref": "#/filename"},
|
||||
{"$ref": "#/kvp_object"}
|
||||
],
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"unevaluatedItems": false
|
||||
},
|
||||
"keycode": {
|
||||
@@ -87,6 +94,10 @@
|
||||
"maxLength": 7,
|
||||
"pattern": "^[A-Z][A-Zs_0-9]*$"
|
||||
},
|
||||
"kvp_object": {
|
||||
"type": "object",
|
||||
"additionalProperties": {"type": "string"}
|
||||
},
|
||||
"layout_macro": {
|
||||
"oneOf": [
|
||||
{
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
"$id": "qmk.user_repo.v1",
|
||||
"title": "User Repository Information",
|
||||
"type": "object",
|
||||
"definitions": {
|
||||
"build_target": {
|
||||
"oneOf": [
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
|
||||
{"$ref": "qmk.definitions.v1#/json_file_path"}
|
||||
]
|
||||
},
|
||||
},
|
||||
"required": [
|
||||
"userspace_version",
|
||||
"build_targets"
|
||||
@@ -15,7 +23,7 @@
|
||||
"build_targets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "qmk.definitions.v1#/build_target"
|
||||
"$ref": "#/definitions/build_target"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema#",
|
||||
"$id": "qmk.user_repo.v1_1",
|
||||
"title": "User Repository Information",
|
||||
"type": "object",
|
||||
"definitions": {
|
||||
"build_target": {
|
||||
"oneOf": [
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_env"},
|
||||
{"$ref": "qmk.definitions.v1#/json_file_path"}
|
||||
]
|
||||
},
|
||||
},
|
||||
"required": [
|
||||
"userspace_version",
|
||||
"build_targets"
|
||||
],
|
||||
"properties": {
|
||||
"userspace_version": {
|
||||
"type": "string",
|
||||
"enum": ["1.1"]
|
||||
},
|
||||
"build_targets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/build_target"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,4 +31,4 @@ Commenting on your pull request and being responsive to questions, comments, and
|
||||
|
||||
### Ask for Help
|
||||
|
||||
Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/Uq7gcHh).
|
||||
Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/qmk).
|
||||
|
||||
@@ -11,7 +11,7 @@ Third-party contributions help us grow and improve QMK. We want to make the pull
|
||||
|
||||
## I Don't Want to Read This Whole Thing! I Just Have a Question!
|
||||
|
||||
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Discord](https://discord.gg/Uq7gcHh).
|
||||
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Discord](https://discord.gg/qmk).
|
||||
|
||||
Please keep these things in mind:
|
||||
|
||||
@@ -29,7 +29,7 @@ QMK is largely written in C, with specific features and parts written in C++. It
|
||||
|
||||
# Where Can I Go for Help?
|
||||
|
||||
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on Discord](https://discord.gg/Uq7gcHh).
|
||||
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on Discord](https://discord.gg/qmk).
|
||||
|
||||
# How Do I Make a Contribution?
|
||||
|
||||
@@ -128,7 +128,7 @@ We also ask that you follow these guidelines:
|
||||
|
||||
Before you put a lot of work into building your new feature you should make sure you are implementing it in the best way. You can get a basic understanding of QMK by reading [Understanding QMK](understanding_qmk), which will take you on a tour of the QMK program flow. From here you should talk to us to get a sense of the best way to implement your idea. There are two main ways to do this:
|
||||
|
||||
* [Chat on Discord](https://discord.gg/Uq7gcHh)
|
||||
* [Chat on Discord](https://discord.gg/qmk)
|
||||
* [Open an Issue](https://github.com/qmk/qmk_firmware/issues/new)
|
||||
|
||||
Feature and Bug Fix PRs affect all keyboards. We are also in the process of restructuring QMK. For this reason it is especially important for significant changes to be discussed before implementation has happened. If you open a PR without talking to us first please be prepared to do some significant rework if your choices do not mesh well with our planned direction.
|
||||
|
||||
@@ -184,7 +184,7 @@ Whenever possible you should customize your keyboard by using `process_record_*(
|
||||
|
||||
### Example `matrix_scan_*` Implementation
|
||||
|
||||
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/Uq7gcHh).
|
||||
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/qmk).
|
||||
|
||||
### `matrix_scan_*` Function Documentation
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 'serial' Driver
|
||||
|
||||
The Serial driver powers the [Split Keyboard](../features/split_keyboard) feature. Several implementations are available that cater to the platform and capabilites of MCU in use. Note that none of the drivers support split keyboards with more than two halves.
|
||||
The Serial driver powers the [Split Keyboard](../features/split_keyboard) feature. Several implementations are available that cater to the platform and capabilities of MCU in use. Note that none of the drivers support split keyboards with more than two halves.
|
||||
|
||||
| Driver | AVR | ARM | Connection between halves |
|
||||
| --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- |
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ That's amazing! We would love to assist you with that!
|
||||
|
||||
In fact, we have a [whole page](https://qmk.fm/powered/) dedicated to adding QMK Branding to your page and keyboard. This covers pretty much everything you need (knowledge and images) to officially support QMK.
|
||||
|
||||
If you have any questions about this, open an issue or head to [Discord](https://discord.gg/Uq7gcHh).
|
||||
If you have any questions about this, open an issue or head to [Discord](https://discord.gg/qmk).
|
||||
|
||||
## What Differences Are There Between QMK and TMK?
|
||||
|
||||
|
||||
+1
-1
@@ -231,7 +231,7 @@ Once you have confirmed that the keyboard is working, if you have used a seperat
|
||||
|
||||
If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/)
|
||||
|
||||
There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/Uq7gcHh) for help!
|
||||
There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help!
|
||||
|
||||
## Links to Other Guides
|
||||
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ There are a lot of ways you can contribute to the QMK Community. The easiest way
|
||||
|
||||
* Help people out on our forums and chat rooms:
|
||||
* [/r/olkb](https://www.reddit.com/r/olkb/)
|
||||
* [Discord Server](https://discord.gg/Uq7gcHh)
|
||||
* [Discord Server](https://discord.gg/qmk)
|
||||
* Contribute to our documentation by clicking "Edit This Page" at the bottom
|
||||
* [Report a bug](https://github.com/qmk/qmk_firmware/issues/new/choose)
|
||||
* [Open a Pull Request](contributing)
|
||||
|
||||
@@ -15,7 +15,7 @@ Different keyboards have different ways to enter this special mode. If your PCB
|
||||
* Press the physical `RESET` button, usually located on the underside of the PCB
|
||||
* Locate header pins on the PCB labeled `RESET` and `GND`, and short them together while plugging your PCB in
|
||||
|
||||
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
|
||||
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/qmk) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
|
||||
|
||||
Otherwise, you should see a message in yellow, similar to this in QMK Toolbox:
|
||||
|
||||
@@ -129,4 +129,4 @@ Congrats! Your custom firmware has been programmed to your keyboard and you're r
|
||||
With a little bit of luck everything will work perfectly, but if not there are steps that will help you figure out what's wrong.
|
||||
Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK.
|
||||
|
||||
Still not working? Browse the FAQ topics for more information, or [chat with us on Discord](https://discord.gg/Uq7gcHh).
|
||||
Still not working? Browse the FAQ topics for more information, or [chat with us on Discord](https://discord.gg/qmk).
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
This is a non-exhaustive checklist of what the QMK Collaborators will be checking when reviewing submitted PRs.
|
||||
|
||||
If there are any inconsistencies with these recommendations, you're best off [creating an issue](https://github.com/qmk/qmk_firmware/issues/new) against this document, or getting in touch with a QMK Collaborator on [Discord](https://discord.gg/Uq7gcHh).
|
||||
If there are any inconsistencies with these recommendations, you're best off [creating an issue](https://github.com/qmk/qmk_firmware/issues/new) against this document, or getting in touch with a QMK Collaborator on [Discord](https://discord.gg/qmk).
|
||||
|
||||
## Requirements for all PRs
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ Please read our [Code of Conduct](https://qmk.fm/coc/) before participating in a
|
||||
|
||||
## Realtime Chat
|
||||
|
||||
If you need help with something, the best place to get quick support is going to be on our [Discord Server](https://discord.gg/Uq7gcHh). There is usually somebody online, and there are a bunch of very helpful people there.
|
||||
If you need help with something, the best place to get quick support is going to be on our [Discord Server](https://discord.gg/qmk). There is usually somebody online, and there are a bunch of very helpful people there.
|
||||
|
||||
## OLKB Subreddit
|
||||
|
||||
|
||||
@@ -120,7 +120,6 @@
|
||||
"matrix": [4, 7]
|
||||
},
|
||||
"enabled": true,
|
||||
"main": "matrix_grid",
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP7", "GP8", "GP9", "GP11", "GP12", "GP13", "GP14", "GP15"],
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
"features": {
|
||||
"backlight": true,
|
||||
"bootmagic": false,
|
||||
"command": true,
|
||||
"console": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": false,
|
||||
"nkro": true,
|
||||
@@ -45,7 +45,6 @@
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
{
|
||||
"manufacturer": "archerkeyboard",
|
||||
"keyboard_name": "desire65",
|
||||
"maintainer": "akyp",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP18"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP21", "GP29", "GP1", "GP0", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP2", "GP5", "GP4", "GP3"],
|
||||
"rows": ["GP24", "GP25", "GP19", "GP16", "GP17"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"default": {
|
||||
"animation": "rainbow_mood",
|
||||
"val": 128
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"led_count": 17,
|
||||
"sleep": true
|
||||
},
|
||||
"url": "https://archerkeyboard.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0002",
|
||||
"vid": "0x0361"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP26"
|
||||
},
|
||||
"community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"],
|
||||
"layouts": {
|
||||
"LAYOUT_65_ansi_blocker_tsangan": {
|
||||
"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": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
|
||||
{"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, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
|
||||
"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},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
|
||||
{"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, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
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_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
|
||||
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1,24 @@
|
||||
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
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_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
|
||||
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
@@ -0,0 +1,27 @@
|
||||
# desire65
|
||||
|
||||

|
||||
|
||||
A desirable 65% keyboard
|
||||
|
||||
* Keyboard Maintainer: [ArcherKeyboard](https://github.com/akyp)
|
||||
* Hardware Supported: Desire65 PCB
|
||||
* Hardware Availability: [Open source on GitHub](https://github.com/akyp/desire65-pcb)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make archerkeyboard/desire65:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make archerkeyboard/desire65: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**: Hold the "USB_BOOT" button on the back of the PCB (the one closest to the MCU) and briefly press the "RESET" button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
@@ -16,36 +16,6 @@
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
led_config_t g_led_config = { {
|
||||
// Key Matrix to LED Index
|
||||
{ 12, 11, 10, 9, 8, 7, 6, 5, 4, NO_LED, 3, 2, 1, 0 }, // 13 keys
|
||||
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13 }, // 15 keys
|
||||
{ 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28 }, // 15 keys
|
||||
{ 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED, 43 }, // 14 keys
|
||||
{ 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, NO_LED, 58, 57 }, // 14 keys
|
||||
{ 79, 78, 77, NO_LED, NO_LED, NO_LED, 76, NO_LED, NO_LED, NO_LED, 75, 74, 73, 72, 71 } // 9 keys
|
||||
}, {
|
||||
// LED Index to Physical Positon
|
||||
{ 240, 0 }, { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 32, 0 },
|
||||
{ 240, 13 }, { 224, 13 }, { 208, 13 }, { 192 , 13 }, { 176, 13 }, { 160, 13 }, { 144, 13 }, { 128, 13 }, { 112, 13 }, { 96, 13 }, { 80, 13 }, { 64, 13}, { 48, 13 }, { 32, 13 }, { 16, 13 },
|
||||
{ 240, 26 }, { 224, 26 }, { 208, 26 }, { 192 , 26 }, { 176, 26 }, { 160, 26 }, { 144, 26 }, { 128, 26 }, { 112, 26 }, { 96, 26 }, { 80, 26 }, { 64, 26}, { 48, 26 }, { 32, 26 }, { 16, 26 },
|
||||
{ 240, 39 }, { 216, 39 }, { 192 , 39 }, { 176, 39 }, { 160, 39 }, { 144, 39 }, { 128, 39 }, { 112, 39 }, { 96, 39 }, { 80, 39 }, { 64, 39}, { 48, 39 }, { 32, 39 }, { 16, 39 },
|
||||
{ 240, 52 }, { 224, 52 }, { 208, 52 }, { 192 , 52 }, { 176, 52 }, { 160, 52 }, { 144, 52 }, { 128, 52 }, { 112, 52 }, { 96, 52 }, { 80, 52 }, { 64, 52}, { 48, 52 }, { 24, 52 },
|
||||
{ 240, 64 }, { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 112, 64 }, { 48, 64 }, { 32, 64 }, { 16, 64 },
|
||||
{ 0, 26 }, { 0, 46 }, { 0, 64 }, { 48, 64 }, { 72, 64 }, { 104, 64 }, { 136, 64 }, { 168, 64 }, { 208, 64 }, { 232, 58 }, { 232, 45 }, { 232, 32 }, { 232, 20 }, { 232, 7 }, { 176, 0 }, { 112, 0 }
|
||||
}, {
|
||||
// LED Index to Flag
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
|
||||
} };
|
||||
#endif
|
||||
|
||||
#if defined(ENCODER_ENABLE) && !defined(ENCODER_MAP_ENABLE)
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
|
||||
@@ -58,7 +58,123 @@
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"max_brightness": 130,
|
||||
"sleep": true
|
||||
"sleep": true,
|
||||
"layout": [
|
||||
{"matrix": [0, 13], "x": 193, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 10], "x": 152, "y": 0, "flags": 4},
|
||||
|
||||
{"matrix": [0, 8], "x": 131, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 7], "x": 117, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 6], "x": 103, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 90, "y": 0, "flags": 4},
|
||||
|
||||
{"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 55, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 41, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 28, "y": 0, "flags": 4},
|
||||
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
|
||||
|
||||
{"matrix": [1, 14], "x": 224, "y": 12, "flags": 1},
|
||||
|
||||
{"matrix": [1, 13], "x": 186, "y": 12, "flags": 1},
|
||||
{"matrix": [1, 12], "x": 165, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 11], "x": 152, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 10], "x": 138, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 9], "x": 124, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 8], "x": 110, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 7], "x": 96, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 83, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 69, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 55, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 41, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
|
||||
|
||||
{"matrix": [2, 14], "x": 224, "y": 24, "flags": 1},
|
||||
|
||||
{"matrix": [2, 13], "x": 190, "y": 24, "flags": 1},
|
||||
{"matrix": [2, 12], "x": 172, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 11], "x": 159, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 10], "x": 145, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 9], "x": 131, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 8], "x": 117, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 7], "x": 103, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 90, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 76, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 62, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 48, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 34, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 21, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 3, "y": 24, "flags": 1},
|
||||
|
||||
{"matrix": [3, 14], "x": 224, "y": 37, "flags": 1},
|
||||
|
||||
{"matrix": [3, 12], "x": 184, "y": 37, "flags": 1},
|
||||
{"matrix": [3, 11], "x": 162, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 10], "x": 148, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 9], "x": 134, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 8], "x": 121, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 7], "x": 107, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 93, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 79, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 65, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 52, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 38, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 1], "x": 24, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 0], "x": 5, "y": 37, "flags": 1},
|
||||
|
||||
{"matrix": [4, 14], "x": 224, "y": 49, "flags": 1},
|
||||
|
||||
{"matrix": [4, 13], "x": 196, "y": 52, "flags": 4},
|
||||
|
||||
{"matrix": [4, 11], "x": 174, "y": 49, "flags": 1},
|
||||
{"matrix": [4, 10], "x": 155, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 9], "x": 141, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 128, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 7], "x": 114, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 100, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 86, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 72, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 59, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 45, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 31, "y": 49, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
|
||||
|
||||
{"matrix": [5, 14], "x": 210, "y": 64, "flags": 4},
|
||||
{"matrix": [5, 13], "x": 196, "y": 64, "flags": 4},
|
||||
{"matrix": [5, 12], "x": 183, "y": 64, "flags": 4},
|
||||
|
||||
{"matrix": [5, 11], "x": 157, "y": 61, "flags": 1},
|
||||
{"matrix": [5, 10], "x": 140, "y": 61, "flags": 1},
|
||||
{"matrix": [5, 6], "x": 88, "y": 61, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 36, "y": 61, "flags": 1},
|
||||
{"matrix": [5, 1], "x": 19, "y": 61, "flags": 1},
|
||||
{"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
|
||||
|
||||
{"x": 28, "y": 61, "flags": 2},
|
||||
{"x": 56, "y": 61, "flags": 2},
|
||||
{"x": 79, "y": 61, "flags": 2},
|
||||
{"x": 107, "y": 61, "flags": 2},
|
||||
{"x": 128, "y": 61, "flags": 2},
|
||||
{"x": 170, "y": 61, "flags": 2},
|
||||
|
||||
{"x": 220, "y": 55, "flags": 2},
|
||||
{"x": 220, "y": 43, "flags": 2},
|
||||
{"x": 220, "y": 30, "flags": 2},
|
||||
{"x": 220, "y": 18, "flags": 2},
|
||||
{"x": 220, "y": 6, "flags": 2},
|
||||
|
||||
{"x": 141, "y": 0, "flags": 2},
|
||||
{"x": 79, "y": 0, "flags": 2},
|
||||
|
||||
{"x": 0, "y": 24, "flags": 2},
|
||||
{"x": 0, "y": 43, "flags": 2},
|
||||
{"x": 0, "y": 61, "flags": 2}
|
||||
]
|
||||
},
|
||||
"build": {
|
||||
"lto": true
|
||||
|
||||
@@ -146,7 +146,7 @@ static matrix_row_t read_cols(uint8_t row) {
|
||||
// reading GPIOB (column port) since in mcp23018's sequential mode
|
||||
// it is addressed directly after writing to GPIOA in select_row()
|
||||
mcp23018_status = i2c_receive(I2C_ADDR, &data, 1, BAJJAK_EZ_I2C_TIMEOUT);
|
||||
return data;
|
||||
return ~data;
|
||||
}
|
||||
} else {
|
||||
/* read from teensy
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user