mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-21 15:12:02 +00:00
Merge branch 'master' into add-clog
This commit is contained in:
commit
68ed05de47
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -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
|
||||
|
72
.github/labeler.yml
vendored
72
.github/labeler.yml
vendored
@ -1,46 +1,56 @@
|
||||
core:
|
||||
- quantum/**/*
|
||||
- tmk_core/**/*
|
||||
- drivers/**/*
|
||||
- tests/**/*
|
||||
- util/**/*
|
||||
- platforms/**/*
|
||||
- builddefs/**/*
|
||||
- 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:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- keyboards/**/keymaps/via/*
|
||||
cli:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- requirements.txt
|
||||
- lib/python/**/*
|
||||
- lib/python/**
|
||||
python:
|
||||
- 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/**
|
||||
|
6
.github/workflows/auto_approve.yml
vendored
6
.github/workflows/auto_approve.yml
vendored
@ -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/"
|
||||
|
34
.github/workflows/ci_build_major_branch.yml
vendored
34
.github/workflows/ci_build_major_branch.yml
vendored
@ -52,9 +52,9 @@ jobs:
|
||||
run: |
|
||||
target_count=$( {
|
||||
qmk find -km default 2>/dev/null
|
||||
qmk find -km via 2>/dev/null
|
||||
# qmk find -km xap 2>/dev/null
|
||||
} | sort | uniq | wc -l)
|
||||
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution as we're splitting default and via
|
||||
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution
|
||||
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
|
||||
|
||||
build_targets:
|
||||
@ -63,7 +63,8 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
keymap: [default, via]
|
||||
keymap: [default]
|
||||
# keymap: [default, xap]
|
||||
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
|
||||
with:
|
||||
branch: ${{ inputs.branch || github.ref_name }}
|
||||
@ -77,44 +78,59 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run: |
|
||||
git config --global --add safe.directory '*'
|
||||
|
||||
- name: Checkout QMK Firmware
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download firmwares
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
pattern: firmware-*
|
||||
path: firmwares
|
||||
path: .
|
||||
merge-multiple: true
|
||||
|
||||
- name: Generate index page
|
||||
run: |
|
||||
python3 -m pip install -r ./util/ci/requirements.txt
|
||||
./util/ci/index_generator.py > index.html
|
||||
./util/ci/firmware_list_generator.py > firmware_list.json
|
||||
|
||||
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
|
||||
uses: jakejarvis/s3-sync-action@master
|
||||
with:
|
||||
args: --acl public-read --follow-symlinks --delete
|
||||
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
|
||||
env:
|
||||
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
|
||||
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
|
||||
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
|
||||
SOURCE_DIR: firmwares
|
||||
SOURCE_DIR: .
|
||||
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}
|
||||
|
||||
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
|
||||
uses: jakejarvis/s3-sync-action@master
|
||||
with:
|
||||
args: --acl public-read --follow-symlinks --delete
|
||||
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
|
||||
env:
|
||||
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
|
||||
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
|
||||
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
|
||||
SOURCE_DIR: firmwares
|
||||
SOURCE_DIR: .
|
||||
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
|
||||
|
||||
- name: Check if failure marker file exists
|
||||
id: check_failure_marker
|
||||
uses: andstor/file-existence-action@v3
|
||||
with:
|
||||
files: firmwares/.failed
|
||||
files: ./.failed
|
||||
|
||||
- name: Fail build if needed
|
||||
if: steps.check_failure_marker.outputs.files_exists == 'true'
|
||||
|
@ -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 }}
|
||||
|
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@ -56,7 +56,7 @@ jobs:
|
||||
|
||||
- name: Deploy
|
||||
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
|
||||
uses: JamesIves/github-pages-deploy-action@v4.6.1
|
||||
uses: JamesIves/github-pages-deploy-action@v4.6.3
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: gh-pages
|
||||
|
15
.github/workflows/labeler.yml
vendored
15
.github/workflows/labeler.yml
vendored
@ -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
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -25,6 +25,8 @@
|
||||
*.la
|
||||
*.stackdump
|
||||
*.sym
|
||||
index.html
|
||||
firmware_list.json
|
||||
|
||||
# QMK-specific
|
||||
api_data/v1
|
||||
|
@ -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)\"
|
||||
|
@ -33,7 +33,7 @@ export default defineConfig(({ mode }) => {
|
||||
},
|
||||
title: 'QMK Firmware',
|
||||
|
||||
nav: [{ text: "Home", link: "./" }],
|
||||
nav: [{ text: "Home", link: "/" }],
|
||||
|
||||
search: {
|
||||
provider: "local",
|
||||
|
@ -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,
|
||||
@ -40,7 +34,8 @@
|
||||
"pattern": "^[0-9a-z_/\\-]+\\.json$"
|
||||
},
|
||||
"key_unit": {
|
||||
"type": "number"
|
||||
"type": "number",
|
||||
"minimum": 0
|
||||
},
|
||||
"keyboard": {
|
||||
"type": "string",
|
||||
@ -52,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": {
|
||||
@ -86,6 +94,10 @@
|
||||
"maxLength": 7,
|
||||
"pattern": "^[A-Z][A-Zs_0-9]*$"
|
||||
},
|
||||
"kvp_object": {
|
||||
"type": "object",
|
||||
"additionalProperties": {"type": "string"}
|
||||
},
|
||||
"layout_macro": {
|
||||
"oneOf": [
|
||||
{
|
||||
|
@ -515,8 +515,8 @@
|
||||
"minimum": 0
|
||||
}
|
||||
},
|
||||
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
|
||||
"y": {"$ref": "qmk.definitions.v1#/key_unit"},
|
||||
"x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||
"y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
|
||||
}
|
||||
}
|
||||
@ -601,8 +601,8 @@
|
||||
"minimum": 0
|
||||
}
|
||||
},
|
||||
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
|
||||
"y": {"$ref": "qmk.definitions.v1#/key_unit"},
|
||||
"x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||
"y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
31
data/schemas/user_repo_v1_1.jsonschema
Normal file
31
data/schemas/user_repo_v1_1.jsonschema
Normal file
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -2,8 +2,6 @@
|
||||
"keyboard_name": "%KEYBOARD%",
|
||||
"maintainer": "%USER_NAME%",
|
||||
"manufacturer": "%REAL_NAME%",
|
||||
"processor": "%MCU%",
|
||||
"bootloader": "%BOOTLOADER%",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["C2"],
|
||||
|
@ -4,6 +4,7 @@
|
||||
"/cli_dev_configuration": "/cli_configuration",
|
||||
"/dynamic_macros": "/feature_dynamic_macros",
|
||||
"/feature_common_shortcuts": "/feature_advanced_keycodes",
|
||||
"/flashing_bootloadhid": "/flashing",
|
||||
"/getting_started_build_tools": "/newbs_getting_started",
|
||||
"/getting_started_getting_help": "/support",
|
||||
"/glossary": "/reference_glossary",
|
||||
|
@ -64,13 +64,7 @@
|
||||
"text": "Development Environments",
|
||||
"items": [{ "text": "Docker Guide", "link": "/getting_started_docker" }]
|
||||
},
|
||||
{
|
||||
"text": "Flashing",
|
||||
"items": [
|
||||
{ "text": "Flashing", "link": "/flashing" },
|
||||
{ "text": "Flashing ATmega32A (ps2avrgb)", "link": "/flashing_bootloadhid" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "IDEs",
|
||||
"items": [
|
||||
|
@ -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).
|
||||
|
@ -16,7 +16,9 @@ I'll say that again because it's important:
|
||||
**MAKE SURE YOU SELECT THE RIGHT VERSION!**
|
||||
:::
|
||||
|
||||
If your keyboard has been advertised to be powered by QMK but is not in the list, chances are a developer hasn't gotten to it yet or we haven't had a chance to merge it in yet. File an issue at [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) requesting to support that particular keyboard, if there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) for it. There are also QMK powered keyboards that are in their manufacturer's own GitHub accounts. Double check for that as well. <!-- FIXME(skullydazed): This feels too wordy and I'm not sure we want to encourage these kinds of issues. Also, should we prompt them to bug the manufacutrer? -->
|
||||
Unfortunately if your keyboard has been advertised to be powered by QMK but is not in the list, you will **not** be able to use Configurator to customize your keyboard.
|
||||
|
||||
Chances are a developer hasn't gotten round to adding support or we haven't had a chance to merge it in yet. If there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard), contact the manufacturer and encourage them to add support.
|
||||
|
||||
## Step 2: Select Your Keyboard Layout
|
||||
|
||||
|
@ -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?
|
||||
|
||||
@ -105,7 +105,9 @@ enum my_keycodes {
|
||||
|
||||
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:
|
||||
|
||||
```
|
||||
qmk docs
|
||||
```
|
||||
|
||||
and navigating to `http://localhost:5173/`.
|
||||
|
||||
@ -126,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 |
|
||||
| --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- |
|
||||
|
@ -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?
|
||||
|
||||
|
@ -85,9 +85,9 @@ Your `keymap.c` will then need an encoder mapping defined (for four layers and t
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
|
||||
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
|
||||
[3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
|
||||
[1] = { ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU) },
|
||||
[2] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU) },
|
||||
[3] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
|
||||
};
|
||||
#endif
|
||||
```
|
||||
|
@ -1007,9 +1007,9 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
|
||||
HSV hsv = {0, 255, 255};
|
||||
|
||||
if (layer_state_is(layer_state, 2)) {
|
||||
hsv = {130, 255, 255};
|
||||
hsv = (HSV){130, 255, 255};
|
||||
} else {
|
||||
hsv = {30, 255, 255};
|
||||
hsv = (HSV){30, 255, 255};
|
||||
}
|
||||
|
||||
if (hsv.v > rgb_matrix_get_val()) {
|
||||
|
@ -60,29 +60,31 @@ Changing the **Value** sets the overall brightness.<br>
|
||||
## Keycodes
|
||||
|
||||
|Key |Aliases |Description |
|
||||
|-------------------|----------|--------------------------------------------------------------------|
|
||||
|`RGB_TOG` | |Toggle RGB lighting on or off |
|
||||
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|
||||
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|
||||
|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
|
||||
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|
||||
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|
||||
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|
||||
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|
||||
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|
||||
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|
||||
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|
||||
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|
||||
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|
||||
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|
||||
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|
||||
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|
||||
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|
||||
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode |
|
||||
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode |
|
||||
|------------------------------|----------|---------------------------------------------------------------------|
|
||||
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
|
||||
|`QK_UNDERGLOW_MODE_NEXT` |`UG_NEXT` |Cycle through modes, reverse direction when Shift is held |
|
||||
|`QK_UNDERGLOW_MODE_PREVIOUS` |`UG_PREV` |Cycle through modes in reverse, forward direction when Shift is held |
|
||||
|`QK_UNDERGLOW_HUE_UP` |`UG_HUEU` |Increase hue, decrease hue when Shift is held |
|
||||
|`QK_UNDERGLOW_HUE_DOWN` |`UG_HUED` |Decrease hue, increase hue when Shift is held |
|
||||
|`QK_UNDERGLOW_SATURATION_UP` |`UG_SATU` |Increase saturation, decrease saturation when Shift is held |
|
||||
|`QK_UNDERGLOW_SATURATION_DOWN`|`UG_SATD` |Decrease saturation, increase saturation when Shift is held |
|
||||
|`QK_UNDERGLOW_VALUE_UP` |`UG_VALU` |Increase value (brightness), decrease value when Shift is held |
|
||||
|`QK_UNDERGLOW_VALUE_DOWN` |`UG_VALD` |Decrease value (brightness), increase value when Shift is held |
|
||||
|`QK_UNDERGLOW_SPEED_UP` |`UG_SPDU` |Increase effect speed (brightness), decrease speed when Shift is held|
|
||||
|`QK_UNDERGLOW_SPEED_DOWN` |`UG_SPDD` |Decrease effect speed (brightness), increase speed when Shift is held|
|
||||
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode (deprecated) |
|
||||
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode (deprecated) |
|
||||
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode (deprecated) |
|
||||
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode (deprecated) |
|
||||
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode (deprecated) |
|
||||
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode (deprecated) |
|
||||
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode (deprecated) |
|
||||
|`RGB_MODE_GRADIENT` |`RGB_M_G` |Static gradient animation mode (deprecated) |
|
||||
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) |
|
||||
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) |
|
||||
|
||||
::: tip
|
||||
`RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUI)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
|
||||
These keycodes cannot be used with functions like `tap_code16()` as they are not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
|
||||
:::
|
||||
|
||||
|
||||
@ -358,7 +360,7 @@ Lighting layers on split keyboards will require layer state synced to the slave
|
||||
|
||||
### Overriding RGB Lighting on/off status
|
||||
|
||||
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `RGB_TOG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
|
||||
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `UG_TOGG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
|
||||
|
||||
### Retain brightness
|
||||
|
||||
|
@ -1,74 +0,0 @@
|
||||
# BootloadHID Flashing Instructions and Bootloader Information
|
||||
|
||||
ps2avr(GB) boards use an ATmega32A microcontroller and a different bootloader. It is not flashable using the regular QMK methods.
|
||||
|
||||
General flashing sequence:
|
||||
|
||||
1. Enter the bootloader using any of the following methods:
|
||||
* Tap the `QK_BOOT` keycode (may not work on all devices)
|
||||
* Hold the salt key while plugging the keyboard in (usually documented within keyboard readme)
|
||||
2. Wait for the OS to detect the device
|
||||
3. Flash a .hex file
|
||||
4. Reset the device into application mode (may be done automatically)
|
||||
|
||||
## bootloadHID Flashing Target
|
||||
|
||||
::: tip
|
||||
Using the QMK installation script, detailed [here](newbs_getting_started), the required bootloadHID tools should be automatically installed.
|
||||
:::
|
||||
|
||||
To flash via the command line, use the target `:bootloadhid` by executing the following command:
|
||||
|
||||
```
|
||||
make <keyboard>:<keymap>:bootloadhid
|
||||
```
|
||||
|
||||
## GUI Flashing
|
||||
|
||||
### Windows
|
||||
1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
|
||||
2. Place your keyboard into reset.
|
||||
3. Ensure the configured VendorID is `16c0` and ProductID is `05df`
|
||||
4. Press the `Find Device` button and ensure that your keyboard is found.
|
||||
5. Press the `Open .hex File` button and locate the `.hex` file you created.
|
||||
6. Press the `Flash Device` button and wait for the process to complete.
|
||||
|
||||
## Command Line Flashing
|
||||
|
||||
1. Place your keyboard into reset.
|
||||
2. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
|
||||
|
||||
### Windows Manual Installation
|
||||
For MSYS2:
|
||||
1. Download the BootloadHID firmware package from https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz.
|
||||
2. Extract contents using a compatible tool, for example 7-Zip.
|
||||
3. Add to the MSYS path by copying `commandline/bootloadHID.exe` from the extracted archive to your MSYS2 installation, typically `C:\msys64\usr\bin`.
|
||||
|
||||
For native Windows flashing, the `bootloadHID.exe` can be used outside of the MSYS2 environment.
|
||||
|
||||
### Linux Manual Installation
|
||||
1. Install libusb development dependency:
|
||||
```
|
||||
# This depends on OS - for Debian the following works
|
||||
sudo apt-get install libusb-dev
|
||||
```
|
||||
2. Download the BootloadHID firmware package:
|
||||
```
|
||||
wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz -O - | tar -xz -C /tmp
|
||||
```
|
||||
3. Build the bootloadHID executable:
|
||||
```
|
||||
cd /tmp/bootloadHID.2012-12-08/commandline/
|
||||
make
|
||||
sudo cp bootloadHID /usr/local/bin
|
||||
```
|
||||
|
||||
### MacOS Manual Installation
|
||||
1. Install Homebrew by typing the following:
|
||||
```
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
```
|
||||
2. Install the following packages:
|
||||
```
|
||||
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
|
||||
```
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -702,25 +702,28 @@ See also: [Dynamic Tapping Term](tap_hold#dynamic-tapping-term)
|
||||
See also: [RGB Lighting](features/rgblight)
|
||||
|
||||
|Key |Aliases |Description |
|
||||
|-------------------|----------|--------------------------------------------------------------------|
|
||||
|`RGB_TOG` | |Toggle RGB lighting on or off |
|
||||
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|
||||
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|
||||
|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
|
||||
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|
||||
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|
||||
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|
||||
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|
||||
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|
||||
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|
||||
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|
||||
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|
||||
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|
||||
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|
||||
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|
||||
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|
||||
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|
||||
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red,Green,Blue test animation mode |
|
||||
|------------------------------|----------|---------------------------------------------------------------------|
|
||||
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
|
||||
|`QK_UNDERGLOW_MODE_NEXT` |`UG_NEXT` |Cycle through modes, reverse direction when Shift is held |
|
||||
|`QK_UNDERGLOW_MODE_PREVIOUS` |`UG_PREV` |Cycle through modes in reverse, forward direction when Shift is held |
|
||||
|`QK_UNDERGLOW_HUE_UP` |`UG_HUEU` |Increase hue, decrease hue when Shift is held |
|
||||
|`QK_UNDERGLOW_HUE_DOWN` |`UG_HUED` |Decrease hue, increase hue when Shift is held |
|
||||
|`QK_UNDERGLOW_SATURATION_UP` |`UG_SATU` |Increase saturation, decrease saturation when Shift is held |
|
||||
|`QK_UNDERGLOW_SATURATION_DOWN`|`UG_SATD` |Decrease saturation, increase saturation when Shift is held |
|
||||
|`QK_UNDERGLOW_VALUE_UP` |`UG_VALU` |Increase value (brightness), decrease value when Shift is held |
|
||||
|`QK_UNDERGLOW_VALUE_DOWN` |`UG_VALD` |Decrease value (brightness), increase value when Shift is held |
|
||||
|`QK_UNDERGLOW_SPEED_UP` |`UG_SPDU` |Increase effect speed (brightness), decrease speed when Shift is held|
|
||||
|`QK_UNDERGLOW_SPEED_DOWN` |`UG_SPDD` |Decrease effect speed (brightness), increase speed when Shift is held|
|
||||
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode (deprecated) |
|
||||
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode (deprecated) |
|
||||
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode (deprecated) |
|
||||
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode (deprecated) |
|
||||
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode (deprecated) |
|
||||
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode (deprecated) |
|
||||
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode (deprecated) |
|
||||
|`RGB_MODE_GRADIENT` |`RGB_M_G` |Static gradient animation mode (deprecated) |
|
||||
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) |
|
||||
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) |
|
||||
|
||||
## RGB Matrix Lighting {#rgb-matrix-lighting}
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
94
keyboards/4pplet/ibe60/keyboard.json
Normal file
94
keyboards/4pplet/ibe60/keyboard.json
Normal file
@ -0,0 +1,94 @@
|
||||
{
|
||||
"manufacturer": "4pplet",
|
||||
"keyboard_name": "IBE60 Rev A",
|
||||
"maintainer": "4pplet",
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"key_lock": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B2", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"],
|
||||
"rows": ["B14", "A9", "B6", "B5", "B4"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0001",
|
||||
"vid": "0x4448"
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "A8"
|
||||
},
|
||||
"community_layouts": ["60_hhkb"],
|
||||
"layouts": {
|
||||
"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": [2, 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": [1, 13], "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": [3, 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": [4, 13], "x": 14, "y": 3},
|
||||
{"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, 9], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 10], "x": 12.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
34
keyboards/4pplet/ibe60/keymaps/default/keymap.c
Normal file
34
keyboards/4pplet/ibe60/keymaps/default/keymap.c
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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_60_hhkb(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_60_hhkb(
|
||||
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)
|
||||
};
|
35
keyboards/4pplet/ibe60/keymaps/via/keymap.c
Normal file
35
keyboards/4pplet/ibe60/keymaps/via/keymap.c
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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_60_hhkb(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_60_hhkb(
|
||||
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)
|
||||
};
|
||||
|
1
keyboards/4pplet/ibe60/keymaps/via/rules.mk
Normal file
1
keyboards/4pplet/ibe60/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
24
keyboards/4pplet/ibe60/readme.md
Normal file
24
keyboards/4pplet/ibe60/readme.md
Normal file
@ -0,0 +1,24 @@
|
||||
# IBE60
|
||||
|
||||
PCB mounted 60% PCB for the IBE60 in fixed true HHKB layout
|
||||
|
||||
* Keyboard Maintainer: [Stefan Sundin](https://github.com/4pplet)
|
||||
* Hardware Supported: IBE60 Solder PCB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 4pplet/ibe60:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make 4pplet/ibe60: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 Escape key and plug in the keyboard
|
||||
* **Physical reset button**: Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter bootloader
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
2
keyboards/4pplet/ibe60/rules.mk
Normal file
2
keyboards/4pplet/ibe60/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
|
12
keyboards/ai03/altair/config.h
Normal file
12
keyboards/ai03/altair/config.h
Normal file
@ -0,0 +1,12 @@
|
||||
/* Copyright 2024 ai03 Design Studio */
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
/* VBUS-routed pin for upstream detection */
|
||||
#define USB_VBUS_PIN GP0
|
||||
|
||||
/* RP2040- and hardware-specific config */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
118
keyboards/ai03/altair/keyboard.json
Normal file
118
keyboards/ai03/altair/keyboard.json
Normal file
@ -0,0 +1,118 @@
|
||||
{
|
||||
"manufacturer": "ai03 Design Studio",
|
||||
"keyboard_name": "Altair",
|
||||
"maintainer": "ai03_2725",
|
||||
"bootloader": "rp2040",
|
||||
"build": {
|
||||
"debounce_type": "asym_eager_defer_pk"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 6
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP20", "GP19", "GP18", "GP17", "GP16", "GP21", "GP9"],
|
||||
"rows": ["GP11", "GP26", "GP27", "GP28", "GP10"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"split": {
|
||||
"bootmagic": {
|
||||
"matrix": [5, 0]
|
||||
},
|
||||
"enabled": true,
|
||||
"handedness": {
|
||||
"pin": "GP8"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP15", "GP21", "GP9", "GP13", "GP10", "GP11", "GP12"],
|
||||
"rows": ["GP5", "GP16", "GP20", "GP28", "GP14"]
|
||||
}
|
||||
},
|
||||
"soft_serial_pin": "GP29"
|
||||
},
|
||||
"url": "https://ai03.com/",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0022",
|
||||
"vid": "0xA103"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.38},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.38},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.13},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.13},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0.25},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0.5},
|
||||
{"matrix": [5, 0], "x": 7.75, "y": 0.5},
|
||||
{"matrix": [5, 1], "x": 8.75, "y": 0.25},
|
||||
{"matrix": [5, 2], "x": 9.75, "y": 0.13},
|
||||
{"matrix": [5, 3], "x": 10.75, "y": 0},
|
||||
{"matrix": [5, 4], "x": 11.75, "y": 0.13},
|
||||
{"matrix": [5, 5], "x": 12.75, "y": 0.38},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 0.38},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.38},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.38},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.13},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.13},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.5},
|
||||
{"matrix": [6, 0], "x": 7.75, "y": 1.5},
|
||||
{"matrix": [6, 1], "x": 8.75, "y": 1.25},
|
||||
{"matrix": [6, 2], "x": 9.75, "y": 1.13},
|
||||
{"matrix": [6, 3], "x": 10.75, "y": 1},
|
||||
{"matrix": [6, 4], "x": 11.75, "y": 1.13},
|
||||
{"matrix": [6, 5], "x": 12.75, "y": 1.38},
|
||||
{"matrix": [6, 6], "x": 13.75, "y": 1.38},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.38},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.38},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.13},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.13},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2.25},
|
||||
{"matrix": [2, 6], "x": 6, "y": 2.5},
|
||||
{"matrix": [7, 0], "x": 7.75, "y": 2.5},
|
||||
{"matrix": [7, 1], "x": 8.75, "y": 2.25},
|
||||
{"matrix": [7, 2], "x": 9.75, "y": 2.13},
|
||||
{"matrix": [7, 3], "x": 10.75, "y": 2},
|
||||
{"matrix": [7, 4], "x": 11.75, "y": 2.13},
|
||||
{"matrix": [7, 5], "x": 12.75, "y": 2.38},
|
||||
{"matrix": [7, 6], "x": 13.75, "y": 2.38},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.38},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3.38},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3.13},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4, "y": 3.13},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3.25},
|
||||
{"matrix": [3, 6], "x": 6, "y": 3.5},
|
||||
{"matrix": [8, 0], "x": 7.75, "y": 3.5},
|
||||
{"matrix": [8, 1], "x": 8.75, "y": 3.25},
|
||||
{"matrix": [8, 2], "x": 9.75, "y": 3.13},
|
||||
{"matrix": [8, 3], "x": 10.75, "y": 3},
|
||||
{"matrix": [8, 4], "x": 11.75, "y": 3.13},
|
||||
{"matrix": [8, 5], "x": 12.75, "y": 3.38},
|
||||
{"matrix": [8, 6], "x": 13.75, "y": 3.38},
|
||||
{"matrix": [4, 3], "x": 2.71, "y": 4.13},
|
||||
{"matrix": [4, 4], "x": 3.73, "y": 4.16},
|
||||
{"matrix": [4, 5], "x": 4.74, "y": 4.36},
|
||||
{"matrix": [4, 6], "x": 5.75, "y": 4.72},
|
||||
{"matrix": [9, 0], "x": 8, "y": 4.72},
|
||||
{"matrix": [9, 1], "x": 9.02, "y": 4.36},
|
||||
{"matrix": [9, 2], "x": 10.03, "y": 4.18},
|
||||
{"matrix": [9, 3], "x": 11.05, "y": 4.13}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
24
keyboards/ai03/altair/keymaps/default/keymap.c
Normal file
24
keyboards/ai03/altair/keymaps/default/keymap.c
Normal file
@ -0,0 +1,24 @@
|
||||
/* Copyright 2024 ai03 Design Studio */
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_CAPS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, 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_GRV, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, 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_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
|
||||
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
24
keyboards/ai03/altair/keymaps/via/keymap.c
Normal file
24
keyboards/ai03/altair/keymaps/via/keymap.c
Normal file
@ -0,0 +1,24 @@
|
||||
/* Copyright 2024 ai03 Design Studio */
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_CAPS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, 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_GRV, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, 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_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
|
||||
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
1
keyboards/ai03/altair/keymaps/via/rules.mk
Normal file
1
keyboards/ai03/altair/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
19
keyboards/ai03/altair/readme.md
Normal file
19
keyboards/ai03/altair/readme.md
Normal file
@ -0,0 +1,19 @@
|
||||
# Altair
|
||||
|
||||

|
||||
|
||||
ai03's third-generation ergonomic keyboard, 5-row variant
|
||||
|
||||
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
|
||||
* Hardware Supported: Altair keyboard PCB
|
||||
* Hardware Availability: Group buy
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ai03/altair:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ai03/altair: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).
|
1
keyboards/ai03/altair/rules.mk
Normal file
1
keyboards/ai03/altair/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
SERIAL_DRIVER = vendor
|
12
keyboards/ai03/altair_x/config.h
Normal file
12
keyboards/ai03/altair_x/config.h
Normal file
@ -0,0 +1,12 @@
|
||||
/* Copyright 2024 ai03 Design Studio */
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
/* VBUS-routed pin for upstream detection */
|
||||
#define USB_VBUS_PIN GP0
|
||||
|
||||
/* RP2040- and hardware-specific config */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
104
keyboards/ai03/altair_x/keyboard.json
Normal file
104
keyboards/ai03/altair_x/keyboard.json
Normal file
@ -0,0 +1,104 @@
|
||||
{
|
||||
"manufacturer": "ai03 Design Studio",
|
||||
"keyboard_name": "Altair-X",
|
||||
"maintainer": "ai03_2725",
|
||||
"bootloader": "rp2040",
|
||||
"build": {
|
||||
"debounce_type": "asym_eager_defer_pk"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 6
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP20", "GP19", "GP18", "GP17", "GP16", "GP21", "GP9"],
|
||||
"rows": ["GP26", "GP27", "GP28", "GP10"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"split": {
|
||||
"bootmagic": {
|
||||
"matrix": [4, 0]
|
||||
},
|
||||
"enabled": true,
|
||||
"handedness": {
|
||||
"pin": "GP8"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP15", "GP21", "GP9", "GP13", "GP10", "GP11", "GP12"],
|
||||
"rows": ["GP16", "GP20", "GP28", "GP14"]
|
||||
}
|
||||
},
|
||||
"soft_serial_pin": "GP29"
|
||||
},
|
||||
"url": "https://ai03.com/",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0023",
|
||||
"vid": "0xA103"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.38},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.38},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.13},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.13},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0.25},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0.5},
|
||||
{"matrix": [4, 0], "x": 7.75, "y": 0.5},
|
||||
{"matrix": [4, 1], "x": 8.75, "y": 0.25},
|
||||
{"matrix": [4, 2], "x": 9.75, "y": 0.13},
|
||||
{"matrix": [4, 3], "x": 10.75, "y": 0},
|
||||
{"matrix": [4, 4], "x": 11.75, "y": 0.13},
|
||||
{"matrix": [4, 5], "x": 12.75, "y": 0.38},
|
||||
{"matrix": [4, 6], "x": 13.75, "y": 0.38},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.38},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.38},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.13},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.13},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.5},
|
||||
{"matrix": [5, 0], "x": 7.75, "y": 1.5},
|
||||
{"matrix": [5, 1], "x": 8.75, "y": 1.25},
|
||||
{"matrix": [5, 2], "x": 9.75, "y": 1.13},
|
||||
{"matrix": [5, 3], "x": 10.75, "y": 1},
|
||||
{"matrix": [5, 4], "x": 11.75, "y": 1.13},
|
||||
{"matrix": [5, 5], "x": 12.75, "y": 1.38},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1.38},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.38},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.38},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.13},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.13},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2.25},
|
||||
{"matrix": [2, 6], "x": 6, "y": 2.5},
|
||||
{"matrix": [6, 0], "x": 7.75, "y": 2.5},
|
||||
{"matrix": [6, 1], "x": 8.75, "y": 2.25},
|
||||
{"matrix": [6, 2], "x": 9.75, "y": 2.13},
|
||||
{"matrix": [6, 3], "x": 10.75, "y": 2},
|
||||
{"matrix": [6, 4], "x": 11.75, "y": 2.13},
|
||||
{"matrix": [6, 5], "x": 12.75, "y": 2.38},
|
||||
{"matrix": [6, 6], "x": 13.75, "y": 2.38},
|
||||
{"matrix": [3, 3], "x": 2.71, "y": 3.13},
|
||||
{"matrix": [3, 4], "x": 3.73, "y": 3.16},
|
||||
{"matrix": [3, 5], "x": 4.74, "y": 3.36},
|
||||
{"matrix": [3, 6], "x": 5.75, "y": 3.72},
|
||||
{"matrix": [7, 0], "x": 8, "y": 3.72},
|
||||
{"matrix": [7, 1], "x": 9.02, "y": 3.36},
|
||||
{"matrix": [7, 2], "x": 10.03, "y": 3.18},
|
||||
{"matrix": [7, 3], "x": 11.05, "y": 3.13}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
29
keyboards/ai03/altair_x/keymaps/default/keymap.c
Normal file
29
keyboards/ai03/altair_x/keymaps/default/keymap.c
Normal file
@ -0,0 +1,29 @@
|
||||
/* Copyright 2024 ai03 Design Studio */
|
||||
/* 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_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_TAB, KC_DEL
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_MINS, _______, _______, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______,
|
||||
_______, KC_TILD, _______, _______, _______, KC_UNDS, _______, _______, KC_PLUS, _______, _______, _______, KC_PIPE, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
|
||||
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
29
keyboards/ai03/altair_x/keymaps/via/keymap.c
Normal file
29
keyboards/ai03/altair_x/keymaps/via/keymap.c
Normal file
@ -0,0 +1,29 @@
|
||||
/* Copyright 2024 ai03 Design Studio */
|
||||
/* 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_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_TAB, KC_DEL
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_MINS, _______, _______, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______,
|
||||
_______, KC_TILD, _______, _______, _______, KC_UNDS, _______, _______, KC_PLUS, _______, _______, _______, KC_PIPE, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
|
||||
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
1
keyboards/ai03/altair_x/keymaps/via/rules.mk
Normal file
1
keyboards/ai03/altair_x/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
19
keyboards/ai03/altair_x/readme.md
Normal file
19
keyboards/ai03/altair_x/readme.md
Normal file
@ -0,0 +1,19 @@
|
||||
# Altair-X
|
||||
|
||||

|
||||
|
||||
ai03's third-generation ergonomic keyboard, 4-row variant
|
||||
|
||||
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
|
||||
* Hardware Supported: Altair-X keyboard PCB
|
||||
* Hardware Availability: Group buy
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ai03/altair_x:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ai03/altair_x: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).
|
1
keyboards/ai03/altair_x/rules.mk
Normal file
1
keyboards/ai03/altair_x/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
SERIAL_DRIVER = vendor
|
89
keyboards/ai03/equinox_xl/keyboard.json
Normal file
89
keyboards/ai03/equinox_xl/keyboard.json
Normal file
@ -0,0 +1,89 @@
|
||||
{
|
||||
"manufacturer": "ai03 Design Studio",
|
||||
"keyboard_name": "Equinox XL",
|
||||
"maintainer": "ai03",
|
||||
"bootloader": "atmel-dfu",
|
||||
"build": {
|
||||
"debounce_type": "asym_eager_defer_pk"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "F1",
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F5", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"],
|
||||
"rows": ["B7", "F4", "F6", "F7"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "https://ai03.com/projects/equinox-xl/",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0020",
|
||||
"vid": "0xA103"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.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": 10.5, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.5, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.5, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
|
||||
{"matrix": [1, 1], "x": 1.75, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.75, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.75, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.75, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.75, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.75, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.75, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.75, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.75, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.75, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.75, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.75, "y": 1, "w": 2.25},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"matrix": [2, 1], "x": 1.25, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.25, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.25, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.25, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.25, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.25, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.25, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 13], "x": 14, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.5},
|
||||
{"matrix": [3, 5], "x": 4, "y": 3, "w": 3},
|
||||
{"matrix": [3, 7], "x": 7, "y": 3},
|
||||
{"matrix": [3, 9], "x": 8, "y": 3, "w": 3},
|
||||
{"matrix": [3, 11], "x": 11, "y": 3, "w": 1.5},
|
||||
{"matrix": [3, 12], "x": 12.5, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
15
keyboards/ai03/equinox_xl/keymaps/default/keymap.c
Normal file
15
keyboards/ai03/equinox_xl/keymaps/default/keymap.c
Normal file
@ -0,0 +1,15 @@
|
||||
// Copyright 2024 ai03
|
||||
// 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_GRV,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
};
|
15
keyboards/ai03/equinox_xl/keymaps/via/keymap.c
Normal file
15
keyboards/ai03/equinox_xl/keymaps/via/keymap.c
Normal file
@ -0,0 +1,15 @@
|
||||
// Copyright 2024 ai03
|
||||
// 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_GRV,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
};
|
1
keyboards/ai03/equinox_xl/keymaps/via/rules.mk
Normal file
1
keyboards/ai03/equinox_xl/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
28
keyboards/ai03/equinox_xl/readme.md
Normal file
28
keyboards/ai03/equinox_xl/readme.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Equinox XL
|
||||
|
||||

|
||||
|
||||
A numrowless 50% keyboard
|
||||
|
||||
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
|
||||
* Hardware Supported: The Equinox XL PCB, powered by the Atmega32u4
|
||||
* Hardware Availability: Available via group buy
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ai03/equinox_xl:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ai03/equinox_xl: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
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
@ -120,7 +120,6 @@
|
||||
"matrix": [4, 7]
|
||||
},
|
||||
"enabled": true,
|
||||
"main": "matrix_grid",
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP7", "GP8", "GP9", "GP11", "GP12", "GP13", "GP14", "GP15"],
|
||||
|
@ -15,7 +15,7 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make amag23:default
|
||||
|
||||
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make amag23:default:flash
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -36,8 +36,11 @@
|
||||
},
|
||||
"processor": "STM32F303",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
[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_DEL, KC_MEDIA_PLAY_PAUSE,
|
||||
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_NUM, KC_PSLS, KC_PAST, KC_B,
|
||||
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_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
[1] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
192
keyboards/archerkeyboard/desire65/keyboard.json
Normal file
192
keyboards/archerkeyboard/desire65/keyboard.json
Normal file
@ -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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
24
keyboards/archerkeyboard/desire65/keymaps/default/keymap.c
Normal file
24
keyboards/archerkeyboard/desire65/keymaps/default/keymap.c
Normal file
@ -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
|
||||
),
|
||||
|
||||
};
|
24
keyboards/archerkeyboard/desire65/keymaps/via/keymap.c
Normal file
24
keyboards/archerkeyboard/desire65/keymaps/via/keymap.c
Normal file
@ -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
|
||||
),
|
||||
|
||||
};
|
1
keyboards/archerkeyboard/desire65/keymaps/via/rules.mk
Normal file
1
keyboards/archerkeyboard/desire65/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
27
keyboards/archerkeyboard/desire65/readme.md
Normal file
27
keyboards/archerkeyboard/desire65/readme.md
Normal file
@ -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
|
@ -8,7 +8,7 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ares:default
|
||||
|
||||
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ares:default:flash
|
||||
|
||||
|
@ -155,6 +155,498 @@
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_wkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [2, 9], "x": 12.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 5},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso_wkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [2, 9], "x": 12.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 5},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
|
26
keyboards/ash1800/matrix_diagram.md
Normal file
26
keyboards/ash1800/matrix_diagram.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Matrix Diagram for ASH1800
|
||||
|
||||
```
|
||||
┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
|
||||
│00 ││01 │02 │03 │60 ││61 │62 │63 │04 ││05 │06 │07 │08 │ │54 │55 │56 │57 │
|
||||
└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ ├───┼───┼───┼───┤
|
||||
│64 │65 │66 │67 │
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ├───┼───┼───┼───┤
|
||||
│10 │11 │12 │13 │70 │71 │72 │73 │14 │15 │16 │17 │18 │19 │ │74 │75 │76 │77 │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ ┌─────┐
|
||||
│20 │21 │22 │23 │80 │81 │82 │83 │24 │25 │26 │27 │28 │29 │ │84 │85 │86 │87 │ │38 │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐ │ ISO Enter
|
||||
│30 │31 │32 │33 │90 │91 │92 │93 │34 │35 │36 │37 │38 │ │94 │95 │96 │97 │ │29 │ │
|
||||
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘
|
||||
│40 │41 │42 │43 │A0 │A1 │A2 │A3 │44 │45 │46 │47 │48 │┌───┐│A4 │A5 │A6 │A7 │
|
||||
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│A9 │└───┼───┼───┤ │
|
||||
│50 │51 │52 │53 │B4 │B7 │┌───┼───┼───┐│B5 │B6 │ │
|
||||
└────┴────┴────┴────────────────────────┴─────┴─────┘│A8 │B8 │B9 │└───┴───┴───┘
|
||||
└───┴───┴───┘
|
||||
┌────────┐
|
||||
│40 │ 2.25u LShift
|
||||
└────────┘
|
||||
┌─────┬─────┬───────────────────────────┬─────┬─────┐
|
||||
│50 │51 │53 │B4 │B7 │ WKL
|
||||
└─────┴─────┴───────────────────────────┴─────┴─────┘
|
||||
```
|
@ -156,6 +156,498 @@
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_wkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [2, 9], "x": 12.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 5},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
|
||||
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso_wkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [6, 0], "x": 4.25, "y": 0},
|
||||
|
||||
{"matrix": [6, 1], "x": 5.5, "y": 0},
|
||||
{"matrix": [6, 2], "x": 6.5, "y": 0},
|
||||
{"matrix": [6, 3], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 5], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 6], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 7], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 8], "x": 12.75, "y": 0},
|
||||
|
||||
{"matrix": [5, 4], "x": 15.5, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16.5, "y": 0},
|
||||
{"matrix": [5, 6], "x": 17.5, "y": 0},
|
||||
{"matrix": [5, 7], "x": 18.5, "y": 0},
|
||||
|
||||
{"matrix": [6, 4], "x": 15.5, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16.5, "y": 1},
|
||||
{"matrix": [6, 6], "x": 17.5, "y": 1},
|
||||
{"matrix": [6, 7], "x": 18.5, "y": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"matrix": [7, 0], "x": 4, "y": 2},
|
||||
{"matrix": [7, 1], "x": 5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 6, "y": 2},
|
||||
{"matrix": [7, 3], "x": 7, "y": 2},
|
||||
{"matrix": [1, 4], "x": 8, "y": 2},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2},
|
||||
{"matrix": [1, 6], "x": 10, "y": 2},
|
||||
{"matrix": [1, 7], "x": 11, "y": 2},
|
||||
{"matrix": [1, 8], "x": 12, "y": 2},
|
||||
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"matrix": [7, 4], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16.5, "y": 2},
|
||||
{"matrix": [7, 6], "x": 17.5, "y": 2},
|
||||
{"matrix": [7, 7], "x": 18.5, "y": 2},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [8, 0], "x": 4.5, "y": 3},
|
||||
{"matrix": [8, 1], "x": 5.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 6.5, "y": 3},
|
||||
{"matrix": [8, 3], "x": 7.5, "y": 3},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 3},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 3},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 3},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 3},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 3},
|
||||
|
||||
{"matrix": [8, 4], "x": 15.5, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16.5, "y": 3},
|
||||
{"matrix": [8, 6], "x": 17.5, "y": 3},
|
||||
{"matrix": [8, 7], "x": 18.5, "y": 3},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [9, 0], "x": 4.75, "y": 4},
|
||||
{"matrix": [9, 1], "x": 5.75, "y": 4},
|
||||
{"matrix": [9, 2], "x": 6.75, "y": 4},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4},
|
||||
{"matrix": [3, 4], "x": 8.75, "y": 4},
|
||||
{"matrix": [3, 5], "x": 9.75, "y": 4},
|
||||
{"matrix": [3, 6], "x": 10.75, "y": 4},
|
||||
{"matrix": [3, 7], "x": 11.75, "y": 4},
|
||||
{"matrix": [2, 9], "x": 12.75, "y": 4},
|
||||
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [9, 4], "x": 15.5, "y": 4},
|
||||
{"matrix": [9, 5], "x": 16.5, "y": 4},
|
||||
{"matrix": [9, 6], "x": 17.5, "y": 4},
|
||||
{"matrix": [9, 7], "x": 18.5, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 5},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"matrix": [10, 0], "x": 4.25, "y": 5},
|
||||
{"matrix": [10, 1], "x": 5.25, "y": 5},
|
||||
{"matrix": [10, 2], "x": 6.25, "y": 5},
|
||||
{"matrix": [10, 3], "x": 7.25, "y": 5},
|
||||
{"matrix": [4, 4], "x": 8.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 9.25, "y": 5},
|
||||
{"matrix": [4, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [4, 7], "x": 11.25, "y": 5},
|
||||
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
|
||||
|
||||
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
|
||||
|
||||
{"matrix": [10, 4], "x": 15.5, "y": 5},
|
||||
{"matrix": [10, 5], "x": 16.5, "y": 5},
|
||||
{"matrix": [10, 6], "x": 17.5, "y": 5},
|
||||
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
|
||||
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
|
||||
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
|
||||
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
|
||||
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
|
||||
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
|
||||
|
||||
{"matrix": [11, 5], "x": 16.5, "y": 6},
|
||||
{"matrix": [11, 6], "x": 17.5, "y": 6}
|
||||
]
|
||||
|
26
keyboards/ash_xiix/matrix_diagram.md
Normal file
26
keyboards/ash_xiix/matrix_diagram.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Matrix Diagram for ASH-XIIX
|
||||
|
||||
```
|
||||
┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
|
||||
│00 ││01 │02 │03 │60 ││61 │62 │63 │04 ││05 │06 │07 │08 │ │54 │55 │56 │57 │
|
||||
└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ ├───┼───┼───┼───┤
|
||||
│64 │65 │66 │67 │
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ├───┼───┼───┼───┤
|
||||
│10 │11 │12 │13 │70 │71 │72 │73 │14 │15 │16 │17 │18 │19 │ │74 │75 │76 │77 │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ ┌─────┐
|
||||
│20 │21 │22 │23 │80 │81 │82 │83 │24 │25 │26 │27 │28 │29 │ │84 │85 │86 │87 │ │38 │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐ │ ISO Enter
|
||||
│30 │31 │32 │33 │90 │91 │92 │93 │34 │35 │36 │37 │38 │ │94 │95 │96 │97 │ │29 │ │
|
||||
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘
|
||||
│40 │41 │42 │43 │A0 │A1 │A2 │A3 │44 │45 │46 │47 │48 │┌───┐│A4 │A5 │A6 │A7 │
|
||||
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│A9 │└───┼───┼───┤ │
|
||||
│50 │51 │52 │53 │B4 │B7 │┌───┼───┼───┐│B5 │B6 │ │
|
||||
└────┴────┴────┴────────────────────────┴─────┴─────┘│A8 │B8 │B9 │└───┴───┴───┘
|
||||
└───┴───┴───┘
|
||||
┌────────┐
|
||||
│40 │ 2.25u LShift
|
||||
└────────┘
|
||||
┌─────┬─────┬───────────────────────────┬─────┬─────┐
|
||||
│50 │51 │53 │B4 │B7 │ WKL
|
||||
└─────┴─────┴───────────────────────────┴─────┴─────┘
|
||||
```
|
6
keyboards/ashwing66/config.h
Normal file
6
keyboards/ashwing66/config.h
Normal file
@ -0,0 +1,6 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define ENCODER_MAP_KEY_DELAY 10
|
||||
#define ENCODER_DEFAULT_POS 0x3
|
166
keyboards/ashwing66/keyboard.json
Normal file
166
keyboards/ashwing66/keyboard.json
Normal file
@ -0,0 +1,166 @@
|
||||
{
|
||||
"manufacturer": "gzowski",
|
||||
"keyboard_name": "Ashwing66",
|
||||
"maintainer": "gzowski",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP12", "pin_b": "GP11"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP14", "GP15", "GP16", "GP17", "GP19", "GP20", "GP21", "GP22", "GP26", "GP27"],
|
||||
"rows": ["GP28", "GP8", "GP9", "GP10", "GP13"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"rgb_matrix": {
|
||||
"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,
|
||||
"dual_beacon": true,
|
||||
"gradient_left_right": true,
|
||||
"gradient_up_down": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"jellybean_raindrops": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 16, "y": 1, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 33, "y": 2, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 49, "y": 4, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 65, "y": 7, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 81, "y": 11, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 86, "y": 39, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 81, "y": 56, "flags": 4},
|
||||
{"matrix": [4, 7], "x": 96, "y": 63, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 126, "y": 63, "flags": 4},
|
||||
{"matrix": [4, 9], "x": 141, "y": 56, "flags": 4},
|
||||
{"matrix": [3, 9], "x": 136, "y": 39, "flags": 4},
|
||||
{"matrix": [0, 10], "x": 141, "y": 11, "flags": 4},
|
||||
{"matrix": [0, 11], "x": 157, "y": 7, "flags": 4},
|
||||
{"matrix": [0, 12], "x": 173, "y": 4, "flags": 4},
|
||||
{"matrix": [0, 13], "x": 189, "y": 2, "flags": 4},
|
||||
{"matrix": [0, 14], "x": 206, "y": 1, "flags": 4},
|
||||
{"matrix": [0, 15], "x": 223, "y": 0, "flags": 4}
|
||||
],
|
||||
"led_flush_limit": 16,
|
||||
"led_process_limit": 5,
|
||||
"max_brightness": 125,
|
||||
"sleep": true
|
||||
},
|
||||
"url": "https://github.com/gzowski",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x6F64",
|
||||
"vid": "0x7372"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP0"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_5x16": {
|
||||
"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, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15, "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, 10], "x": 10, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1},
|
||||
{"matrix": [1, 14], "x": 14, "y": 1},
|
||||
{"matrix": [1, 15], "x": 15, "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, 10], "x": 10, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13, "y": 2},
|
||||
{"matrix": [2, 14], "x": 14, "y": 2},
|
||||
{"matrix": [2, 15], "x": 15, "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, 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": [3, 12], "x": 12, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13, "y": 3},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15, "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},
|
||||
{"matrix": [4, 12], "x": 12, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13, "y": 4},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
41
keyboards/ashwing66/keymaps/default/keymap.c
Normal file
41
keyboards/ashwing66/keymaps/default/keymap.c
Normal file
@ -0,0 +1,41 @@
|
||||
// Copyright 2023 James GzowskiMO(_LAYERB)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum custom_layer {
|
||||
_LAYERA,
|
||||
_LAYERB,
|
||||
_LAYERC,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_LAYERA] = LAYOUT_5x16(
|
||||
KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_GRV ,
|
||||
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_MINS ,
|
||||
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_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
|
||||
KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
|
||||
),
|
||||
[_LAYERB] = LAYOUT_5x16(
|
||||
KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
|
||||
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
|
||||
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
|
||||
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
|
||||
KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
|
||||
),
|
||||
[_LAYERC] = LAYOUT_5x16(
|
||||
KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_GRV ,
|
||||
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_UP ,KC_O ,KC_P ,KC_EQL ,
|
||||
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_SCLN ,KC_QUOT ,
|
||||
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
|
||||
KC_F11 ,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_F12
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
|
||||
[_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
|
||||
};
|
||||
#endif
|
1
keyboards/ashwing66/keymaps/default/rules.mk
Normal file
1
keyboards/ashwing66/keymaps/default/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
41
keyboards/ashwing66/keymaps/via/keymap.c
Normal file
41
keyboards/ashwing66/keymaps/via/keymap.c
Normal file
@ -0,0 +1,41 @@
|
||||
// Copyright 2023 James GzowskiMO(_LAYERB)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum custom_layer {
|
||||
_LAYERA,
|
||||
_LAYERB,
|
||||
_LAYERC,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_LAYERA] = LAYOUT_5x16(
|
||||
KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_GRV ,
|
||||
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_MINS ,
|
||||
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_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
|
||||
KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
|
||||
),
|
||||
[_LAYERB] = LAYOUT_5x16(
|
||||
KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
|
||||
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
|
||||
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
|
||||
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
|
||||
KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
|
||||
),
|
||||
[_LAYERC] = LAYOUT_5x16(
|
||||
KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_GRV ,
|
||||
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_UP ,KC_O ,KC_P ,KC_EQL ,
|
||||
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_SCLN ,KC_QUOT ,
|
||||
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
|
||||
KC_F11 ,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_F12
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
|
||||
[_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
|
||||
};
|
||||
#endif
|
2
keyboards/ashwing66/keymaps/via/rules.mk
Normal file
2
keyboards/ashwing66/keymaps/via/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
23
keyboards/ashwing66/readme.md
Normal file
23
keyboards/ashwing66/readme.md
Normal file
@ -0,0 +1,23 @@
|
||||
# Ashwing66
|
||||
|
||||
66 key winged unibody split
|
||||
|
||||
* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski)
|
||||
* Hardware Supported: Pi Pico or equivilent
|
||||
* Build Guide: [Ashwing66](https://github.com/gzowski/Ashwing66)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ashwing66:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ashwing66: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
|
||||
|
||||
* **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 PCB, if using a RP2040 press repeatidly to enter boot mode.
|
||||
* **Hold down boot loader button on MCU** Hold down the boot loader button on the MCU while plugging in the keyboard
|
@ -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
|
||||
|
@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bfake:default
|
||||
|
||||
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make bfake:default:flash
|
||||
|
||||
|
@ -52,8 +52,11 @@
|
||||
"diode_direction": "COL2ROW",
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT_classic": "LAYOUT"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_classic": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
|
@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | LGUI | DEL | ~` | LALT | SPACE | | FN | SPACE | | LEFT | DOWN | UP | RIGHT |
|
||||
* '--------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_CLASSIC] = LAYOUT_classic(
|
||||
[_CLASSIC] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | RGUI | | | RALT | | | | | | | |
|
||||
* '--------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FNCLASSIC] = LAYOUT_classic(
|
||||
[_FNCLASSIC] = LAYOUT(
|
||||
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
||||
_______, _______, KC_APP, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______,
|
||||
KC_CAPS, _______, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL,
|
||||
|
@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | LGUI | DEL | ~` | LALT | SPACE | | MO | SPACE | | LEFT | DOWN | UP | RIGHT |
|
||||
* '--------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_classic(
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | |
|
||||
* '--------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_classic(
|
||||
[1] = LAYOUT(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
_______, _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_F12,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
|
||||
@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_classic(
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT_classic(
|
||||
[3] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
255
keyboards/boardsource/sessanta/keyboard.json
Normal file
255
keyboards/boardsource/sessanta/keyboard.json
Normal file
@ -0,0 +1,255 @@
|
||||
{
|
||||
"manufacturer": "Boardsource",
|
||||
"keyboard_name": "Sessanta",
|
||||
"maintainer": "waffle87",
|
||||
"development_board": "promicro",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "D3"],
|
||||
"rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"breathing": true,
|
||||
"gradient_left_right": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"x": 224, "y": 4, "flags": 2},
|
||||
{"x": 156, "y": 0, "flags": 2},
|
||||
{"x": 82, "y": 0, "flags": 2},
|
||||
{"x": 13, "y": 4, "flags": 2},
|
||||
{"x": 24, "y": 50, "flags": 2},
|
||||
{"x": 68, "y": 52, "flags": 2},
|
||||
{"x": 121, "y": 52, "flags": 2},
|
||||
{"x": 220, "y": 52, "flags": 2},
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 0], "x": 134, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 149, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 164, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 179, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 202, "y": 0, "flags": 1},
|
||||
{"matrix": [1, 5], "x": 4, "y": 16, "flags": 1},
|
||||
{"matrix": [1, 6], "x": 22, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 7], "x": 37, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 8], "x": 52, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 67, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 82, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 97, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 112, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 127, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 142, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 157, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 7], "x": 172, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 8], "x": 187, "y": 16, "flags": 4},
|
||||
{"matrix": [3, 0], "x": 205, "y": 16, "flags": 1},
|
||||
{"matrix": [3, 1], "x": 6, "y": 32, "flags": 1},
|
||||
{"matrix": [3, 2], "x": 26, "y": 32, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 41, "y": 32, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 56, "y": 32, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 71, "y": 32, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 86, "y": 32, "flags": 4},
|
||||
{"matrix": [3, 7], "x": 101, "y": 32, "flags": 4},
|
||||
{"matrix": [3, 8], "x": 116, "y": 32, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 131, "y": 32, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 146, "y": 32, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 161, "y": 32, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 175, "y": 32, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 200, "y": 32, "flags": 1},
|
||||
{"matrix": [4, 5], "x": 224, "y": 32, "flags": 1},
|
||||
{"matrix": [4, 6], "x": 9, "y": 48, "flags": 1},
|
||||
{"matrix": [4, 7], "x": 34, "y": 48, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 49, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 0], "x": 63, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 1], "x": 78, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 93, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 3], "x": 108, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 123, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 5], "x": 138, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 6], "x": 153, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 7], "x": 168, "y": 48, "flags": 4},
|
||||
{"matrix": [5, 8], "x": 196, "y": 48, "flags": 1},
|
||||
{"matrix": [6, 0], "x": 224, "y": 48, "flags": 1},
|
||||
{"matrix": [6, 1], "x": 2, "y": 64, "flags": 1},
|
||||
{"matrix": [6, 2], "x": 21, "y": 64, "flags": 1},
|
||||
{"matrix": [6, 3], "x": 39, "y": 64, "flags": 1},
|
||||
{"matrix": [6, 4], "x": 95, "y": 64, "flags": 4},
|
||||
{"matrix": [6, 5], "x": 151, "y": 64, "flags": 1},
|
||||
{"matrix": [6, 6], "x": 170, "y": 64, "flags": 1},
|
||||
{"matrix": [6, 7], "x": 189, "y": 64, "flags": 1},
|
||||
{"matrix": [6, 8], "x": 207, "y": 64, "flags": 1},
|
||||
{"matrix": [7, 0], "x": 224, "y": 64, "flags": 1}
|
||||
],
|
||||
"max_brightness": 150,
|
||||
"sleep": true
|
||||
},
|
||||
"url": "https://boardsource.xyz",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x17AC",
|
||||
"vid": "0x4273"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D2"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_625_bar": {
|
||||
"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": [1, 0], "x": 9, "y": 0},
|
||||
{"matrix": [1, 1], "x": 10, "y": 0},
|
||||
{"matrix": [1, 2], "x": 11, "y": 0},
|
||||
{"matrix": [1, 3], "x": 12, "y": 0},
|
||||
{"matrix": [1, 4], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [1, 5], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 6], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 0], "x": 4.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 6.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 1},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 0], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 1], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [3, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [3, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [3, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [3, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [3, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [3, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [3, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 0], "x": 8.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 10.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [4, 5], "x": 15, "y": 2},
|
||||
{"matrix": [4, 6], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [4, 7], "x": 2.25, "y": 3},
|
||||
{"matrix": [4, 8], "x": 3.25, "y": 3},
|
||||
{"matrix": [5, 0], "x": 4.25, "y": 3},
|
||||
{"matrix": [5, 1], "x": 5.25, "y": 3},
|
||||
{"matrix": [5, 2], "x": 6.25, "y": 3},
|
||||
{"matrix": [5, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [5, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [5, 5], "x": 9.25, "y": 3},
|
||||
{"matrix": [5, 6], "x": 10.25, "y": 3},
|
||||
{"matrix": [5, 7], "x": 11.25, "y": 3},
|
||||
{"matrix": [5, 8], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [6, 0], "x": 15, "y": 3},
|
||||
{"matrix": [6, 1], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 2], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 4], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [6, 5], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 6], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 7], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 8], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_all": {
|
||||
"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": [1, 0], "x": 9, "y": 0},
|
||||
{"matrix": [1, 1], "x": 10, "y": 0},
|
||||
{"matrix": [1, 2], "x": 11, "y": 0},
|
||||
{"matrix": [1, 3], "x": 12, "y": 0},
|
||||
{"matrix": [1, 4], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [1, 5], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 6], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 0], "x": 4.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 6.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 10.5, "y": 1},
|
||||
{"matrix": [2, 7], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 8], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 0], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 1], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [3, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [3, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [3, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [3, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [3, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [3, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [3, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 0], "x": 8.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 10.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [4, 5], "x": 15, "y": 2},
|
||||
{"matrix": [4, 6], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [4, 7], "x": 2.25, "y": 3},
|
||||
{"matrix": [4, 8], "x": 3.25, "y": 3},
|
||||
{"matrix": [5, 0], "x": 4.25, "y": 3},
|
||||
{"matrix": [5, 1], "x": 5.25, "y": 3},
|
||||
{"matrix": [5, 2], "x": 6.25, "y": 3},
|
||||
{"matrix": [5, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [5, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [5, 5], "x": 9.25, "y": 3},
|
||||
{"matrix": [5, 6], "x": 10.25, "y": 3},
|
||||
{"matrix": [5, 7], "x": 11.25, "y": 3},
|
||||
{"matrix": [5, 8], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [6, 0], "x": 15, "y": 3},
|
||||
{"matrix": [6, 1], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 2], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 1], "x": 3.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 4},
|
||||
{"matrix": [6, 4], "x": 6.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 3], "x": 7.5, "y": 4},
|
||||
{"matrix": [7, 4], "x": 8.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [6, 5], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 6], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 7], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [6, 8], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
21
keyboards/boardsource/sessanta/keymaps/default/keymap.json
Normal file
21
keyboards/boardsource/sessanta/keymaps/default/keymap.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"keyboard": "boardsource/sessanta",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_625_bar",
|
||||
"layers": [
|
||||
[
|
||||
"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_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_VOLU",
|
||||
"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_MPLY",
|
||||
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_VOLD"
|
||||
],
|
||||
[
|
||||
"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_F13",
|
||||
"QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
|
||||
]
|
||||
]
|
||||
}
|
26
keyboards/boardsource/sessanta/keymaps/via/keymap.json
Normal file
26
keyboards/boardsource/sessanta/keymaps/via/keymap.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"keyboard": "boardsource/sessanta",
|
||||
"keymap": "via",
|
||||
"layout": "LAYOUT_all",
|
||||
"config": {
|
||||
"features": {
|
||||
"via": true
|
||||
}
|
||||
},
|
||||
"layers": [
|
||||
[
|
||||
"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_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_VOLU",
|
||||
"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_MPLY",
|
||||
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_VOLD"
|
||||
],
|
||||
[
|
||||
"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_F13",
|
||||
"QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
|
||||
]
|
||||
]
|
||||
}
|
27
keyboards/boardsource/sessanta/readme.md
Normal file
27
keyboards/boardsource/sessanta/readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
# Sessanta
|
||||
|
||||

|
||||
|
||||
A 60% keyboard offered in an MX or Choc PCB with per-key RGB
|
||||
|
||||
* Keyboard Maintainer: [waffle87](https://github.com/waffle87)
|
||||
* Hardware Supported: Sessanta PCB w/ Pro Micro compatible microcontroller
|
||||
* Hardware Availability: [boardsource.xyz](https://boardsource.xyz)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make boardsource/sessanta:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make boardsource/sessanta: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 and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB near microcontroller
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT`
|
@ -112,8 +112,9 @@
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1},
|
||||
{"matrix": [5, 9], "x": 12, "y": 5.25, "w": 1},
|
||||
{"matrix": [5, 12], "x": 13.25, "y": 5.5},
|
||||
{"matrix": [5, 13], "x": 14.25, "y": 5.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.5}
|
||||
|
@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, 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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
|
||||
@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, 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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
|
||||
@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
@ -50,8 +50,11 @@
|
||||
"diode_direction": "COL2ROW",
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
|
@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | OS | Alt | Layer | Space | Alt | Caps | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_all(
|
||||
[0] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
CTL_T(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,
|
||||
@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
[1] = LAYOUT(
|
||||
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_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
[2] = LAYOUT(
|
||||
RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI,
|
||||
RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
|
@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
[0] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
|
||||
CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
[1] = LAYOUT(
|
||||
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_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
[2] = LAYOUT(
|
||||
RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI,
|
||||
RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[3] = LAYOUT_all(
|
||||
[3] = LAYOUT(
|
||||
RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI,
|
||||
RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
|
@ -51,8 +51,11 @@
|
||||
"diode_direction": "COL2ROW",
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user