mirror of
https://github.com/qmk/qmk_firmware.git
synced 2026-06-22 15:24:22 -04:00
Compare commits
101 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dccada95aa | |||
| 380e0c9cad | |||
| 158aaef78c | |||
| 5acc3b2b7b | |||
| 78900720fd | |||
| c67c3d375b | |||
| 75402109e9 | |||
| fa657fef70 | |||
| eb78ca1c1a | |||
| d28a50e176 | |||
| c7662e4f36 | |||
| 73cb6fd89f | |||
| d538451adb | |||
| cf84ea7662 | |||
| 8c35011d0a | |||
| 8c5acdea12 | |||
| 60c5ad821c | |||
| 622dc56250 | |||
| d079372580 | |||
| af70e3759a | |||
| 4bcc80ad46 | |||
| d09c11dc78 | |||
| 82f9019cc9 | |||
| 4e2effc538 | |||
| 8d5517fa63 | |||
| ee1505971f | |||
| b6e1a20950 | |||
| f2c789bb4a | |||
| fab50be817 | |||
| f04fd13dff | |||
| eb60235cd5 | |||
| 2fb9816c77 | |||
| 6fbe91aecd | |||
| a6857872f2 | |||
| 56323f75c6 | |||
| 11031adc1b | |||
| d79f46e408 | |||
| 2ddfd60be7 | |||
| 63ef6516d3 | |||
| 522bf1daf2 | |||
| a763dd5bbd | |||
| c70c99367a | |||
| b5b06f1094 | |||
| caa7599b83 | |||
| c2dbbc060a | |||
| 875eb43a28 | |||
| 2908f0b846 | |||
| a3d938d822 | |||
| 6dfd7ed46f | |||
| 7b5d7907df | |||
| 79ad561b67 | |||
| 5a5f68038e | |||
| 4d4d7b76b0 | |||
| c58c5fa8fa | |||
| 565bb704e0 | |||
| 890909c2d7 | |||
| f15fff3258 | |||
| 7d94db8661 | |||
| 063f1444c6 | |||
| 2e671cfd8b | |||
| 1b8b6801d4 | |||
| cc62eb503d | |||
| 0c4fd514f1 | |||
| 9be6d76c61 | |||
| 3d10171e2c | |||
| e3ef5b2d9d | |||
| f8cf58a512 | |||
| efa5b30cfd | |||
| fb54a59bba | |||
| fbbc71ec34 | |||
| a0bb7ff992 | |||
| 6eb6e3048a | |||
| d08da05cb8 | |||
| 8336b5c72f | |||
| b23ddb9ad8 | |||
| 67d512e639 | |||
| 4fbb395602 | |||
| 300505bd9e | |||
| 38f07e1fd2 | |||
| b82f6ac402 | |||
| be967d42d2 | |||
| af72a58c8f | |||
| 9fb51cfe2b | |||
| 6d21898c14 | |||
| 096dc672c1 | |||
| 8e64ff574a | |||
| 5e2368984e | |||
| 15af5d7d0d | |||
| 62c1787d72 | |||
| 8fe667a1a4 | |||
| 031ccd4887 | |||
| 43fc7b5a4f | |||
| 4ced8d9371 | |||
| 1c6cdb8d74 | |||
| c663f5e9f3 | |||
| 977918982d | |||
| c2f7974c8e | |||
| bc8ac86422 | |||
| 33adb8cba0 | |||
| e754c9f2b4 | |||
| 869b7d9ae6 |
+46
-36
@@ -1,46 +1,56 @@
|
||||
core:
|
||||
- quantum/**/*
|
||||
- tmk_core/**/*
|
||||
- drivers/**/*
|
||||
- tests/**/*
|
||||
- util/**/*
|
||||
- platforms/**/*
|
||||
- builddefs/**/*
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- quantum/**
|
||||
- tmk_core/**
|
||||
- drivers/**
|
||||
- tests/**
|
||||
- util/**
|
||||
- platforms/**
|
||||
- builddefs/*.mk
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
dependencies:
|
||||
- any:
|
||||
- 'lib/**/*'
|
||||
- '!lib/python/**/*'
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: lib/**
|
||||
- all-globs-to-all-files: '!lib/python/**'
|
||||
keyboard:
|
||||
- any:
|
||||
- 'keyboards/**/*'
|
||||
- '!keyboards/**/keymaps/**/*'
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: keyboards/**
|
||||
- all-globs-to-all-files: '!keyboards/**/keymaps/**'
|
||||
keymap:
|
||||
- users/**/*
|
||||
- layouts/**/*
|
||||
- keyboards/**/keymaps/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- users/**
|
||||
- layouts/**
|
||||
- keyboards/**/keymaps/**
|
||||
via:
|
||||
- keyboards/**/keymaps/via/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- keyboards/**/keymaps/via/*
|
||||
cli:
|
||||
- requirements.txt
|
||||
- lib/python/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- requirements.txt
|
||||
- lib/python/**
|
||||
python:
|
||||
- '**/*.py'
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/*.py'
|
||||
documentation:
|
||||
- docs/**/*
|
||||
translation:
|
||||
- docs/fr-fr/**/*
|
||||
- docs/es/**/*
|
||||
- docs/ja/**/*
|
||||
- docs/he-il/**/*
|
||||
- docs/pt-br/**/*
|
||||
- docs/zh-cn/**/*
|
||||
- docs/de/**/*
|
||||
- docs/ru-ru/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/**
|
||||
- builddefs/docsgen/**
|
||||
CI:
|
||||
- .github/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- .github/**
|
||||
dd:
|
||||
- data/constants/**/*
|
||||
- data/mappings/**/*
|
||||
- data/schemas/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- data/constants/**
|
||||
- data/mappings/**
|
||||
- data/schemas/**
|
||||
|
||||
@@ -13,8 +13,8 @@ jobs:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: mheap/automatic-approve-action@v1
|
||||
- uses: zvecr/automatic-approve-action@safe_files
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
workflows: "format.yml,lint.yml,unit_test.yml"
|
||||
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
|
||||
workflows: "labeler.yml,lint.yml,docs.yml"
|
||||
safe_files: "keyboards/,docs/"
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
@@ -53,6 +47,19 @@
|
||||
{"$ref": "#/keyboard"},
|
||||
{"$ref": "#/filename"}
|
||||
],
|
||||
"minItems": 2,
|
||||
"maxItems": 2,
|
||||
"unevaluatedItems": false
|
||||
},
|
||||
"keyboard_keymap_env": {
|
||||
"type": "array",
|
||||
"prefixItems": [
|
||||
{"$ref": "#/keyboard"},
|
||||
{"$ref": "#/filename"},
|
||||
{"$ref": "#/kvp_object"}
|
||||
],
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"unevaluatedItems": false
|
||||
},
|
||||
"keycode": {
|
||||
@@ -87,6 +94,10 @@
|
||||
"maxLength": 7,
|
||||
"pattern": "^[A-Z][A-Zs_0-9]*$"
|
||||
},
|
||||
"kvp_object": {
|
||||
"type": "object",
|
||||
"additionalProperties": {"type": "string"}
|
||||
},
|
||||
"layout_macro": {
|
||||
"oneOf": [
|
||||
{
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
"$id": "qmk.user_repo.v1",
|
||||
"title": "User Repository Information",
|
||||
"type": "object",
|
||||
"definitions": {
|
||||
"build_target": {
|
||||
"oneOf": [
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
|
||||
{"$ref": "qmk.definitions.v1#/json_file_path"}
|
||||
]
|
||||
},
|
||||
},
|
||||
"required": [
|
||||
"userspace_version",
|
||||
"build_targets"
|
||||
@@ -15,7 +23,7 @@
|
||||
"build_targets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "qmk.definitions.v1#/build_target"
|
||||
"$ref": "#/definitions/build_target"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema#",
|
||||
"$id": "qmk.user_repo.v1_1",
|
||||
"title": "User Repository Information",
|
||||
"type": "object",
|
||||
"definitions": {
|
||||
"build_target": {
|
||||
"oneOf": [
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_env"},
|
||||
{"$ref": "qmk.definitions.v1#/json_file_path"}
|
||||
]
|
||||
},
|
||||
},
|
||||
"required": [
|
||||
"userspace_version",
|
||||
"build_targets"
|
||||
],
|
||||
"properties": {
|
||||
"userspace_version": {
|
||||
"type": "string",
|
||||
"enum": ["1.1"]
|
||||
},
|
||||
"build_targets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/build_target"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 |
|
||||
| --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- |
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
+25
-23
@@ -59,30 +59,32 @@ 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 |
|
||||
|Key |Aliases |Description |
|
||||
|------------------------------|----------|---------------------------------------------------------------------|
|
||||
|`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
|
||||
|
||||
|
||||
+23
-20
@@ -701,26 +701,29 @@ 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 |
|
||||
|Key |Aliases |Description |
|
||||
|------------------------------|----------|---------------------------------------------------------------------|
|
||||
|`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}
|
||||
|
||||
|
||||
@@ -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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
};
|
||||
@@ -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)
|
||||
};
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
|
||||
@@ -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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
),
|
||||
|
||||
};
|
||||
@@ -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
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
@@ -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"],
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
{
|
||||
"manufacturer": "archerkeyboard",
|
||||
"keyboard_name": "desire65",
|
||||
"maintainer": "akyp",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP18"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP21", "GP29", "GP1", "GP0", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP2", "GP5", "GP4", "GP3"],
|
||||
"rows": ["GP24", "GP25", "GP19", "GP16", "GP17"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"default": {
|
||||
"animation": "rainbow_mood",
|
||||
"val": 128
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"led_count": 17,
|
||||
"sleep": true
|
||||
},
|
||||
"url": "https://archerkeyboard.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0002",
|
||||
"vid": "0x0361"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP26"
|
||||
},
|
||||
"community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"],
|
||||
"layouts": {
|
||||
"LAYOUT_65_ansi_blocker_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
|
||||
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
|
||||
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1,24 @@
|
||||
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
|
||||
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
@@ -0,0 +1,27 @@
|
||||
# desire65
|
||||
|
||||

|
||||
|
||||
A desirable 65% keyboard
|
||||
|
||||
* Keyboard Maintainer: [ArcherKeyboard](https://github.com/akyp)
|
||||
* Hardware Supported: Desire65 PCB
|
||||
* Hardware Availability: [Open source on GitHub](https://github.com/akyp/desire65-pcb)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make archerkeyboard/desire65:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make archerkeyboard/desire65:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Hold the "USB_BOOT" button on the back of the PCB (the one closest to the MCU) and briefly press the "RESET" button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
@@ -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}
|
||||
]
|
||||
|
||||
@@ -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}
|
||||
]
|
||||
|
||||
@@ -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
|
||||
└─────┴─────┴───────────────────────────┴─────┴─────┘
|
||||
```
|
||||
@@ -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
|
||||
@@ -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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -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", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
|
||||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -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},
|
||||
|
||||
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | 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,
|
||||
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[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_PPLS, KC_EQL, _______, _______, _______,
|
||||
@@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | QK_BOOT | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_all(
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
|
||||
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | 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,
|
||||
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[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_PPLS, KC_EQL, _______, _______, _______,
|
||||
@@ -71,30 +71,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | QK_BOOT | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_all(
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* [3]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[3] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
@@ -0,0 +1,957 @@
|
||||
{
|
||||
"manufacturer": "chlx bsmt",
|
||||
"keyboard_name": "lfn.merro60",
|
||||
"maintainer": "gaclee3b",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "ROW2COL",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B2",
|
||||
"on_state": 0,
|
||||
"compose": "B0"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"rows": ["F5", "F1", "F4", "F0", "F7", "F6", "D3", "D5", "B3", "B7"],
|
||||
"cols": ["C6", "B6", "B5", "B4", "D7", "D6", "D4"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "www.github.com/gaclee3b",
|
||||
"usb": {
|
||||
"device_version": "2.0.1",
|
||||
"pid": "0x0604",
|
||||
"vid": "0x4358"
|
||||
},
|
||||
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_wkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [8, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_wkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_wkl_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 0], "x": 1.5, "y": 4},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"matrix": [9, 6], "x": 14, "y": 0},
|
||||
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25},
|
||||
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [7, 6], "x": 14, "y": 3},
|
||||
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 2], "x": 3.75, "y": 4, "w": 2.75},
|
||||
{"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 3], "x": 7.75, "y": 4, "w": 2.25},
|
||||
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_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_NUHS, 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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
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_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
|
||||
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
|
||||
_______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
};
|
||||
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2019 marhalloweenvt
|
||||
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -17,4 +17,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 83
|
||||
/* VIA related config */
|
||||
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_NUHS, 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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_LSCR, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
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_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
|
||||
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
|
||||
_______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
};
|
||||
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
@@ -0,0 +1,27 @@
|
||||
# lfn.merro60
|
||||
|
||||

|
||||
|
||||
- Standard 60% format keyboard PCB with USB-C and unified daughterboard compatibility.
|
||||
- Modified cutouts to allow usage of certain tray mount cases into gummy gasket o-ring mount.
|
||||
- Meant to be manufactured in 2mm thickness.
|
||||
|
||||
* Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
|
||||
* Hardware Supported: chlx PCB lfn.merro60.x.x.x
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make chlx/lfn_merro60:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make chlx/lfn_merro60: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 bootloader mode by any of the following options -
|
||||
- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard
|
||||
- After plugging in, press and release the reset button on the pcb top-side near the spacebar switch locations
|
||||
- After plugging in, short out the two reset metal contacts near the 'z' key (accessible through the switch LED slot)
|
||||
@@ -0,0 +1,71 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ A8, A15, B12, B8, B9}
|
||||
|
||||
#define AMUX_COUNT 1
|
||||
#define AMUX_MAX_COLS_COUNT 16
|
||||
|
||||
#define AMUX_EN_PINS \
|
||||
{ B5 }
|
||||
|
||||
#define AMUX_SEL_PINS \
|
||||
{ B6, B7, B4, B3 }
|
||||
|
||||
#define AMUX_COL_CHANNELS_SIZES \
|
||||
{ 15 }
|
||||
|
||||
#define AMUX_0_COL_CHANNELS \
|
||||
{ 7, 6, 5, 4, 3, 2, 1, 0, 8, 14, 13, 10, 9, 12, 11}
|
||||
|
||||
#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS
|
||||
|
||||
#define DISCHARGE_PIN A2
|
||||
#define ANALOG_PORT A3
|
||||
|
||||
#define DEFAULT_ACTUATION_MODE 0
|
||||
#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
|
||||
#define DEFAULT_MODE_0_RELEASE_LEVEL 500
|
||||
#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
|
||||
#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
|
||||
#define DEFAULT_MODE_1_RELEASE_OFFSET 70
|
||||
#define DEFAULT_EXTREMUM 1023
|
||||
#define EXPECTED_NOISE_FLOOR 0
|
||||
#define NOISE_FLOOR_THRESHOLD 50
|
||||
#define BOTTOMING_CALIBRATION_THRESHOLD 50
|
||||
#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
|
||||
#define DEFAULT_BOTTOMING_READING 1023
|
||||
#define DEFAULT_CALIBRATION_STARTER true
|
||||
|
||||
#define DISCHARGE_TIME 10
|
||||
|
||||
// #define DEBUG_MATRIX_SCAN_RATE
|
||||
#define EECONFIG_KB_DATA_SIZE 159
|
||||
|
||||
// PWM driver with direct memory access (DMA) support
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM1_UP
|
||||
@@ -0,0 +1,23 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_ADC TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
@@ -0,0 +1,330 @@
|
||||
{
|
||||
"manufacturer": "Cipulot",
|
||||
"keyboard_name": "EC 60X",
|
||||
"maintainer": "Cipulot",
|
||||
"bootloader": "stm32-dfu",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 4096
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": false,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"processor": "STM32F411",
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"rgb_test": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"led_count": 22
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6BC7",
|
||||
"shared_endpoint": {
|
||||
"keyboard": true
|
||||
},
|
||||
"vid": "0x6369"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "pwm",
|
||||
"pin": "B15"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_jis": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 4], "x": 4, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 2.5},
|
||||
{"matrix": [4, 8], "x": 8, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"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": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 0.75},
|
||||
{"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13.25, "y": 3, "w": 0.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 4], "x": 4, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 2.5},
|
||||
{"matrix": [4, 8], "x": 8, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 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] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_60_ansi_tsangan(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_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_ENTER,
|
||||
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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_60_ansi_tsangan(
|
||||
_______, 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_UP, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______),
|
||||
|
||||
[2] = LAYOUT_60_ansi_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
||||
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 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] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_60_iso_tsangan(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_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_ENTER,
|
||||
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_NUHS,
|
||||
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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_60_iso_tsangan(
|
||||
_______, 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_UP, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______),
|
||||
|
||||
[2] = LAYOUT_60_iso_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
||||
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 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] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_60_jis(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, 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_ENTER,
|
||||
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_NUHS,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, MO(1), KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_60_jis(
|
||||
_______, 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_UP, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______),
|
||||
|
||||
[2] = LAYOUT_60_jis(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
||||
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 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] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_all(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENTER,
|
||||
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_NUHS, KC_ENTER,
|
||||
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_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
_______, 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_UP, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
||||
@@ -1,8 +1,8 @@
|
||||
/* Copyright 2022 @fOmey
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 96
|
||||
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
|
||||
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 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] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_all(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENTER,
|
||||
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_NUHS, KC_ENTER,
|
||||
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_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
_______, 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_UP, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_ADC_USE_ADC1
|
||||
#define STM32_ADC_USE_ADC1 TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
@@ -0,0 +1,3 @@
|
||||
ifeq ($(strip $(VIA_ENABLE)), yes)
|
||||
SRC += keyboards/cipulot/common/via_ec.c
|
||||
endif
|
||||
@@ -0,0 +1,26 @@
|
||||
# EC 60X
|
||||
|
||||

|
||||
|
||||
Universal 60% Electrostatic Capacitive PCB, with multi-layout support.
|
||||
|
||||
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||
* Hardware Supported: EC 60X
|
||||
* Hardware Availability: TBD
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cipulot/ec_60x:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cipulot/ec_60x:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
|
||||
* **Physical reset**: Long short the exposed pins on the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
@@ -0,0 +1,5 @@
|
||||
CUSTOM_MATRIX = lite
|
||||
ANALOG_DRIVER_REQUIRED = yes
|
||||
VPATH += keyboards/cipulot/common
|
||||
SRC += matrix.c ec_board.c ec_switch_matrix.c
|
||||
OPT = 2
|
||||
@@ -100,7 +100,7 @@
|
||||
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 17.25, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
|
||||
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
|
||||
@@ -170,7 +170,7 @@
|
||||
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 17.25, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
|
||||
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
|
||||
@@ -238,7 +238,7 @@
|
||||
{"matrix": [3, 12], "x": 14.5, "y": 3},
|
||||
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
|
||||
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
|
||||
@@ -307,7 +307,7 @@
|
||||
{"matrix": [3, 12], "x": 14.5, "y": 3},
|
||||
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
|
||||
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all(
|
||||
KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||
KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all(
|
||||
KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||
KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"backlight": true,
|
||||
"bootmagic": false,
|
||||
"command": false,
|
||||
"console": true,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
@@ -30,7 +30,6 @@
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"rgb_test": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
/*
|
||||
Copyright 2019 @foostan
|
||||
Copyright 2023 @asdfire1
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||
// #define RGBLIGHT_EFFECT_TWINKLE
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#endif
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
//# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
|
||||
// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
|
||||
# define RGB_MATRIX_SLEEP // turn off effects when suspended
|
||||
//# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
|
||||
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
|
||||
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
|
||||
# define RGB_MATRIX_HUE_STEP 8
|
||||
# define RGB_MATRIX_SAT_STEP 8
|
||||
# define RGB_MATRIX_VAL_STEP 8
|
||||
# define RGB_MATRIX_SPD_STEP 10
|
||||
|
||||
/* Enable the animations you want/need. You may need to enable only a small number of these because *
|
||||
* they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */
|
||||
// RGB Matrix Animation modes. Explicitly enabled
|
||||
// For full list of effects, see:
|
||||
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
||||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
//# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
//# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
//# define ENABLE_RGB_MATRIX_BREATHING
|
||||
//# define ENABLE_RGB_MATRIX_BAND_SAT
|
||||
//# define ENABLE_RGB_MATRIX_BAND_VAL
|
||||
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
//# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
//# define ENABLE_RGB_MATRIX_DUAL_BEACON
|
||||
//# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
//# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
//# define ENABLE_RGB_MATRIX_RAINDROPS
|
||||
//# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
//# define ENABLE_RGB_MATRIX_HUE_BREATHING
|
||||
//# define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
||||
//# define ENABLE_RGB_MATRIX_HUE_WAVE
|
||||
//# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
//# define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
||||
//# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
|
||||
//# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
//# define ENABLE_RGB_MATRIX_SPLASH
|
||||
//# define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
#endif
|
||||
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
||||
#define SPLIT_LAYER_STATE_ENABLE
|
||||
#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268).
|
||||
#define NO_ACTION_ONESHOT
|
||||
//#define SPLIT_OLED_ENABLE
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
||||
@@ -1,385 +0,0 @@
|
||||
/*
|
||||
Copyright 2019 @foostan
|
||||
Copyright 2021 @HellSingCoder
|
||||
Copyright 2023 @asdfire1
|
||||
|
||||
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
|
||||
//#include <stdio.h>
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
//COLEMAK
|
||||
[0] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, MO(3), KC_SPC, KC_ENT, MO(4), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
|
||||
),
|
||||
//GAME1
|
||||
[1] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LALT, MO(2), KC_SPC, KC_ENT, MO(4), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//GAME2
|
||||
[2] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_F1, KC_F2, XXXXXXX, XXXXXXX, KC_6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, KC_SPC, KC_ENT, MO(5), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//LOWER
|
||||
[3] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_MPRV, XXXXXXX, KC_MINS, KC_P7, KC_P8, KC_P9, KC_DEL,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, KC_MPLY, XXXXXXX, KC_PLUS, KC_P4, KC_P5, KC_P6, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MNXT, XXXXXXX, KC_EQL, KC_P1, KC_P2, KC_P3, KC_F13,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, KC_SPC, KC_SPC, MO(5), KC_P0
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//RAISE
|
||||
[4] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_CAPS, KC_CIRC, KC_AMPR, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, XXXXXXX, KC_END, KC_PGDN,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_ASTR, KC_UNDS, KC_BSLS, KC_PIPE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, MO(5), KC_BSPC, _______, _______, KC_LALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//ADJUST
|
||||
[5] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
QK_BOOT, TG(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, _______, _______, _______, KC_LALT
|
||||
//`--------------------------' `--------------------------'
|
||||
)
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
|
||||
/* 32 * 32 logo */
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM hexagram_logo[] = {
|
||||
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x70, 0x18, 0x06,
|
||||
0x06, 0x18, 0x70, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x07, 0x1f, 0x32, 0x66, 0xc4, 0x6c, 0x38, 0x1e, 0x37, 0x61, 0xc0, 0x80, 0x80,
|
||||
0x80, 0x80, 0xc0, 0x61, 0x37, 0x1e, 0x38, 0x6c, 0xc4, 0x66, 0x32, 0x1f, 0x07, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0xe0, 0xf8, 0x4c, 0x66, 0x23, 0x36, 0x1c, 0x78, 0xec, 0x86, 0x03, 0x01, 0x01,
|
||||
0x01, 0x01, 0x03, 0x86, 0xec, 0x78, 0x1c, 0x36, 0x23, 0x66, 0x4c, 0xf8, 0xe0, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0e, 0x18, 0x60,
|
||||
0x60, 0x18, 0x0e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(hexagram_logo, sizeof(hexagram_logo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* KEYBOARD PET START */
|
||||
|
||||
/* settings */
|
||||
# define MIN_WALK_SPEED 10
|
||||
# define MIN_RUN_SPEED 40
|
||||
|
||||
/* advanced settings */
|
||||
# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
|
||||
# define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
|
||||
|
||||
/* timers */
|
||||
uint32_t anim_timer = 0;
|
||||
uint32_t anim_sleep = 0;
|
||||
|
||||
/* current frame */
|
||||
uint8_t current_frame = 0;
|
||||
|
||||
/* status variables */
|
||||
int current_wpm = 0;
|
||||
led_t led_usb_state;
|
||||
|
||||
bool isSneaking = false;
|
||||
bool isJumping = false;
|
||||
bool showedJump = true;
|
||||
bool isBarking = false;
|
||||
|
||||
/* logic */
|
||||
static void render_luna(int LUNA_X, int LUNA_Y) {
|
||||
/* Sit */
|
||||
static const char PROGMEM sit[2][ANIM_SIZE] = {/* 'sit1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'sit2', 32x22px */
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||
|
||||
/* Walk */
|
||||
static const char PROGMEM walk[2][ANIM_SIZE] = {/* 'walk1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'walk2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Run */
|
||||
static const char PROGMEM run[2][ANIM_SIZE] = {/* 'run1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'run2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Bark */
|
||||
static const char PROGMEM bark[2][ANIM_SIZE] = {/* 'bark1', 32x22px */
|
||||
{
|
||||
0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'bark2', 32x22px */
|
||||
{
|
||||
0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Sneak */
|
||||
static const char PROGMEM sneak[2][ANIM_SIZE] = {/* 'sneak1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'sneak2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* animation */
|
||||
void animate_luna(void) {
|
||||
/* jump */
|
||||
if (isJumping || !showedJump) {
|
||||
/* clear */
|
||||
oled_set_cursor(LUNA_X, LUNA_Y + 2);
|
||||
oled_write(" ", false);
|
||||
|
||||
oled_set_cursor(LUNA_X, LUNA_Y - 1);
|
||||
|
||||
showedJump = true;
|
||||
} else {
|
||||
/* clear */
|
||||
oled_set_cursor(LUNA_X, LUNA_Y - 1);
|
||||
oled_write(" ", false);
|
||||
|
||||
oled_set_cursor(LUNA_X, LUNA_Y);
|
||||
}
|
||||
|
||||
/* switch frame */
|
||||
current_frame = (current_frame + 1) % 2;
|
||||
|
||||
/* current status */
|
||||
if (led_usb_state.caps_lock) {
|
||||
oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (isSneaking) {
|
||||
oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (current_wpm <= MIN_WALK_SPEED) {
|
||||
oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (current_wpm <= MIN_RUN_SPEED) {
|
||||
oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else {
|
||||
oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
/* animation timer */
|
||||
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
|
||||
anim_timer = timer_read32();
|
||||
animate_luna();
|
||||
}
|
||||
|
||||
/* this fixes the screen on and off bug */
|
||||
if (current_wpm > 0) {
|
||||
oled_on();
|
||||
anim_sleep = timer_read32();
|
||||
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
|
||||
/* clear */
|
||||
oled_set_cursor(0,0);
|
||||
oled_write(" ", false);
|
||||
oled_off();
|
||||
oled_set_cursor(LUNA_X,LUNA_Y);
|
||||
}
|
||||
}
|
||||
|
||||
/* KEYBOARD PET END */
|
||||
|
||||
static void print_logo_narrow(void) {
|
||||
render_logo();
|
||||
if (current_wpm > 0) {
|
||||
anim_sleep = timer_read32();
|
||||
/* wpm counter */
|
||||
oled_set_cursor(0, 14);
|
||||
oled_write(get_u8_str(get_current_wpm(), '0'), false);
|
||||
|
||||
oled_set_cursor(0, 15);
|
||||
oled_write(" wpm", false);
|
||||
|
||||
/* this fixes the screen on and off bug */
|
||||
|
||||
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
|
||||
/* clear */
|
||||
oled_set_cursor(0,0);
|
||||
oled_write(" ", false);
|
||||
oled_off();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
switch (get_highest_layer(state)) {
|
||||
case 0:
|
||||
rgb_matrix_reload_from_eeprom();
|
||||
break;
|
||||
case 1:
|
||||
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
|
||||
rgb_matrix_sethsv_noeeprom(HSV_TEAL);
|
||||
break;
|
||||
case 2:
|
||||
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
|
||||
rgb_matrix_sethsv_noeeprom(HSV_PURPLE);
|
||||
break;
|
||||
case 5:
|
||||
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
|
||||
rgb_matrix_sethsv_noeeprom(HSV_YELLOW);
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
static void print_status_narrow(void) {
|
||||
|
||||
|
||||
/* Print current layer */
|
||||
oled_write("LAYER", false);
|
||||
|
||||
oled_set_cursor(0, 6);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
oled_write("Base ", false);
|
||||
break;
|
||||
case 1:
|
||||
oled_write("Game ", false);
|
||||
break;
|
||||
case 2:
|
||||
oled_write("Game2", false);
|
||||
break;
|
||||
case 3:
|
||||
oled_write("Lower", false);
|
||||
break;
|
||||
case 4:
|
||||
oled_write("Raise", false);
|
||||
break;
|
||||
case 5:
|
||||
oled_write("Adj ", false);
|
||||
break;
|
||||
default:
|
||||
oled_write("Undef", false);
|
||||
}
|
||||
|
||||
|
||||
/* KEYBOARD PET RENDER START */
|
||||
|
||||
render_luna(0, 13);
|
||||
|
||||
/* KEYBOARD PET RENDER END */
|
||||
}
|
||||
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
|
||||
|
||||
bool oled_task_user(void) {
|
||||
/* KEYBOARD PET VARIABLES START */
|
||||
|
||||
current_wpm = get_current_wpm();
|
||||
led_usb_state = host_keyboard_led_state();
|
||||
|
||||
/* KEYBOARD PET VARIABLES END */
|
||||
|
||||
if (is_keyboard_master()) {
|
||||
print_status_narrow();
|
||||
} else {
|
||||
print_logo_narrow();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
/* KEYBOARD PET STATUS START */
|
||||
|
||||
case KC_LCTL:
|
||||
isSneaking = record->event.pressed;
|
||||
break;
|
||||
case KC_SPC:
|
||||
isJumping = record->event.pressed;
|
||||
if (isJumping) {
|
||||
showedJump = false;
|
||||
}
|
||||
break;
|
||||
case KC_CAPS:
|
||||
isBarking = record->event.pressed;
|
||||
break;
|
||||
|
||||
/* KEYBOARD PET STATUS END */
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
# Personal keymap for the CRKBD
|
||||
My own keymap with some custom OLED features, Colemak base layer and gaming layers. The F13 key on multiple layers can be bound to something, I use it as toggle mute microphone on Discord.
|
||||
## Layers
|
||||
- Colemak - Default layer
|
||||
- Lower - Has numbers and arrows
|
||||
- Raise - Has symbols
|
||||
- Game1 - A QWERTY Gaming layer
|
||||
- Game2 - An alternate lower layer when Game1 is active, has numbers and other keys that may be needed
|
||||
- Adjust - Has F-keys and settings, allows to set the Game1 as base layer.
|
||||
## Custom OLED
|
||||
- Left side:
|
||||
- Layer indicator
|
||||
- Keyboard pet Luna from @HellSingCoder <https://github.com/HellSingCoder/qmk_firmware/tree/master/keyboards/sofle/keymaps/helltm>
|
||||
- Right side
|
||||
- Unicursal hexagram pixel art logo
|
||||
- WPM counter
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
RGBLIGHT_ENABLE = no
|
||||
RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
VIA_ENABLE = yes # Enable VIA
|
||||
OLED_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
WPM_ENABLE = yes
|
||||
@@ -19,4 +19,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#pragma once
|
||||
|
||||
#define MASTER_LEFT
|
||||
#define OLED_FONT_H "keyboards/claw44/lib/glcdfont.c"
|
||||
#define OLED_FONT_H "claw44/lib/glcdfont.c"
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <math.h>
|
||||
|
||||
static painter_image_handle_t reverb_logo;
|
||||
static painter_image_handle_t splash_image;
|
||||
static deferred_token display_task_token;
|
||||
static uint32_t key_pressed_count = 0;
|
||||
|
||||
@@ -32,7 +33,6 @@ void display_init_kb(void) {
|
||||
if (!display_init_user()) {
|
||||
return;
|
||||
}
|
||||
painter_image_handle_t splash_image;
|
||||
splash_image = qp_load_image_mem(gfx_splash);
|
||||
reverb_logo = qp_load_image_mem(gfx_reverb);
|
||||
qp_drawimage(reverb_display, 0, 0, splash_image);
|
||||
|
||||
@@ -23,8 +23,11 @@
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all( /* Base */
|
||||
[0] = LAYOUT( /* Base */
|
||||
KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
|
||||
@@ -16,31 +16,10 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all( /* Base */
|
||||
[0] = LAYOUT( /* Base */
|
||||
KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
KC_UP,
|
||||
KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_all( /* Empty for Dynamic keymap */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[2] = LAYOUT_all( /* Empty for Dynamic keymap */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[3] = LAYOUT_all( /* Empty for Dynamic keymap */
|
||||
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)
|
||||
};
|
||||
|
||||
@@ -39,8 +39,6 @@
|
||||
"pixel_rain": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_fractal": true,
|
||||
"typing_heatmap": true,
|
||||
"digital_rain": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
|
||||
@@ -18,8 +18,7 @@
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
@@ -35,5 +34,3 @@
|
||||
//rgb matrix setting
|
||||
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
|
||||
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 72
|
||||
|
||||
+72
-124
@@ -24,135 +24,83 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
// left CA
|
||||
{0, C1_1, C3_2, C4_2},
|
||||
{0, C1_2, C2_2, C4_3},
|
||||
{0, C1_3, C2_3, C3_3},
|
||||
{0, C1_4, C2_4, C3_4},
|
||||
{0, C1_5, C2_5, C3_5},
|
||||
{0, C1_6, C2_6, C3_6},
|
||||
{0, C1_7, C2_7, C3_7},
|
||||
{0, C1_8, C2_8, C3_8},
|
||||
{0, C1_9, C3_10, C4_10}, // RGB101
|
||||
{0, C1_10, C2_10, C4_11}, // RGB102
|
||||
{0, C1_11, C2_11, C3_11}, // RGB103
|
||||
{0, C1_12, C2_12, C3_12}, // RGB104
|
||||
{0, C1_13, C2_13, C3_13}, // RGB105
|
||||
{0, C1_14, C2_14, C3_14}, // RGB106
|
||||
{0, C1_15, C2_15, C3_15}, // RGB107
|
||||
{1, C5_1, C4_1, C6_1}, // RGB108
|
||||
{1, C1_1, C3_2, C4_2}, // RGB109
|
||||
{1, C1_2, C2_2, C4_3}, // RGB1010
|
||||
{1, C1_3, C2_3, C3_3}, // RGB1011
|
||||
{1, C1_4, C2_4, C3_4}, // RGB1012
|
||||
{1, C1_5, C2_5, C3_5}, // RGB1013
|
||||
{1, C1_6, C2_6, C3_6}, // RGB1014
|
||||
{1, C1_7, C2_7, C3_7}, // RGB1015-2
|
||||
{1, C1_8, C2_8, C3_8}, // RGB1015
|
||||
|
||||
{0, C5_1, C4_1, C6_1},
|
||||
{0, C5_8, C4_8, C6_8},
|
||||
{0, C5_9, C4_9, C6_9}, // RGB201
|
||||
{0, C5_16, C4_16, C6_16}, // RGB202
|
||||
{0, C9_9, C8_9, C7_9}, // RGB203
|
||||
{0, C9_10, C8_10, C7_10}, // RGB204
|
||||
{0, C9_11, C8_11, C7_11}, // RGB205
|
||||
{0, C9_12, C8_12, C7_12}, // RGB206
|
||||
{0, C1_16, C2_16, C3_16}, // RGB207
|
||||
{1, C5_8, C4_8, C6_8}, // RGB208
|
||||
{1, C9_1, C8_1, C7_1}, // RGB209
|
||||
{1, C9_2, C8_2, C7_2}, // RGB2010
|
||||
{1, C9_3, C8_3, C7_3}, // RGB2011
|
||||
{1, C9_4, C8_4, C7_4}, // RGB2012
|
||||
{1, C9_5, C8_5, C7_5}, // RGB2013
|
||||
{1, C9_6, C8_6, C7_6}, // RGB2014
|
||||
|
||||
{0, C9_1, C8_1, C7_1},
|
||||
{0, C9_2, C8_2, C7_2},
|
||||
{0, C9_3, C8_3, C7_3},
|
||||
{0, C9_4, C8_4, C7_4},
|
||||
{0, C9_5, C8_5, C7_5},
|
||||
{0, C9_6, C8_6, C7_6},
|
||||
{0, C9_7, C8_7, C6_6},
|
||||
{0, C9_8, C7_7, C6_7},
|
||||
// left CB
|
||||
{0, C1_9, C3_10, C4_10},
|
||||
{0, C1_10, C2_10, C4_11},
|
||||
{0, C1_11, C2_11, C3_11},
|
||||
{0, C1_12, C2_12, C3_12},
|
||||
{0, C1_13, C2_13, C3_13},
|
||||
{0, C1_14, C2_14, C3_14},
|
||||
{0, C1_15, C2_15, C3_15},
|
||||
{0, C1_16, C2_16, C3_16},
|
||||
{0, C5_1, C4_1, C6_1}, // RGB301
|
||||
{0, C5_8, C4_8, C6_8}, // RGB302
|
||||
{0, C1_1, C3_2, C4_2}, // RGB303
|
||||
{0, C9_13, C8_13, C7_13}, // RGB304
|
||||
{0, C9_14, C8_14, C7_14}, // RGB305
|
||||
{0, C9_15, C8_15, C6_14}, // RGB306
|
||||
{0, C9_16, C7_15, C6_15}, // RGB307
|
||||
{1, C1_9, C3_10, C4_10}, // RGB308
|
||||
{1, C1_10, C2_10, C4_11}, // RGB309
|
||||
{1, C1_11, C2_11, C3_11}, // RGB3010
|
||||
{1, C1_12, C2_12, C3_12}, // RGB3011
|
||||
{1, C1_13, C2_13, C3_13}, // RGB3012
|
||||
{1, C1_14, C2_14, C3_14}, // RGB3014
|
||||
{1, C9_7, C8_7, C6_6}, // RGB3013-2
|
||||
{1, C9_8, C7_7, C6_7}, // RGB3013
|
||||
|
||||
{0, C5_9, C4_9, C6_9},
|
||||
{0, C5_16, C4_16, C6_16},
|
||||
{0, C9_1, C8_1, C7_1}, // RGB401-2
|
||||
{0, C9_2, C8_2, C7_2}, // RGB401
|
||||
{0, C9_3, C8_3, C7_3}, // RGB4014
|
||||
{0, C9_4, C8_4, C7_4}, // RGB402
|
||||
{0, C1_2, C2_2, C4_3}, // RGB403
|
||||
{0, C1_3, C2_3, C3_3}, // RGB404
|
||||
{0, C1_4, C2_4, C3_4}, // RGB405
|
||||
{0, C1_5, C2_5, C3_5}, // RGB406
|
||||
{0, C1_6, C2_6, C3_6}, // RGB407
|
||||
{1, C5_9, C4_9, C6_9}, // RGB408
|
||||
{1, C5_16, C4_16, C6_16}, // RGB409
|
||||
{1, C9_9, C8_9, C7_9}, // RGB4010
|
||||
{1, C9_10, C8_10, C7_10}, // RGB4011
|
||||
{1, C9_11, C8_11, C7_11}, // RGB4012
|
||||
{1, C1_15, C2_15, C3_15}, // RGB4012-2
|
||||
{1, C1_16, C2_16, C3_16}, // RGB4013
|
||||
|
||||
{0, C9_9, C8_9, C7_9},
|
||||
{0, C9_10, C8_10, C7_10},
|
||||
{0, C9_11, C8_11, C7_11},
|
||||
{0, C9_12, C8_12, C7_12},
|
||||
{0, C9_13, C8_13, C7_13},
|
||||
{0, C9_14, C8_14, C7_14},
|
||||
{0, C9_15, C8_15, C6_14},
|
||||
{0, C9_16, C7_15, C6_15},
|
||||
|
||||
// right CA
|
||||
{1, C1_1, C3_2, C4_2},
|
||||
{1, C1_2, C2_2, C4_3},
|
||||
{1, C1_3, C2_3, C3_3},
|
||||
{1, C1_4, C2_4, C3_4},
|
||||
{1, C1_5, C2_5, C3_5},
|
||||
{1, C1_6, C2_6, C3_6},
|
||||
{1, C1_7, C2_7, C3_7},
|
||||
{1, C1_8, C2_8, C3_8},
|
||||
|
||||
{1, C5_1, C4_1, C6_1},
|
||||
{1, C5_8, C4_8, C6_8},
|
||||
|
||||
{1, C9_1, C8_1, C7_1},
|
||||
{1, C9_2, C8_2, C7_2},
|
||||
{1, C9_3, C8_3, C7_3},
|
||||
{1, C9_4, C8_4, C7_4},
|
||||
{1, C9_5, C8_5, C7_5},
|
||||
{1, C9_6, C8_6, C7_6},
|
||||
{1, C9_7, C8_7, C6_6},
|
||||
{1, C9_8, C7_7, C6_7},
|
||||
// right CB
|
||||
{1, C1_9, C3_10, C4_10},
|
||||
{1, C1_10, C2_10, C4_11},
|
||||
{1, C1_11, C2_11, C3_11},
|
||||
{1, C1_12, C2_12, C3_12},
|
||||
{1, C1_13, C2_13, C3_13},
|
||||
{1, C1_14, C2_14, C3_14},
|
||||
{1, C1_15, C2_15, C3_15},
|
||||
{1, C1_16, C2_16, C3_16},
|
||||
|
||||
{1, C5_9, C4_9, C6_9},
|
||||
{1, C5_16, C4_16, C6_16},
|
||||
|
||||
{1, C9_9, C8_9, C7_9},
|
||||
{1, C9_10, C8_10, C7_10},
|
||||
{1, C9_11, C8_11, C7_11},
|
||||
{1, C9_12, C8_12, C7_12},
|
||||
{1, C9_13, C8_13, C7_13},
|
||||
{1, C9_14, C8_14, C7_14},
|
||||
{1, C9_15, C8_15, C6_14},
|
||||
{1, C9_16, C7_15, C6_15},
|
||||
{0, C9_8, C7_7, C6_7}, // RGB501
|
||||
{0, C9_7, C8_7, C6_6}, // RGB502
|
||||
{0, C9_6, C8_6, C7_6}, // RGB503
|
||||
{0, C9_5, C8_5, C7_5}, // RGBSP1
|
||||
{0, C1_8, C2_8, C3_8}, // RGB506-2
|
||||
{0, C1_7, C2_7, C3_7}, // RGB506-3
|
||||
{1, C9_12, C8_12, C7_12}, // RGBSP2
|
||||
{1, C9_13, C8_13, C7_13}, // RGB507
|
||||
{1, C9_14, C8_14, C7_14}, // RGB508
|
||||
{1, C9_15, C8_15, C6_14}, // RGB509
|
||||
{1, C9_16, C7_15, C6_15} // RGB5010
|
||||
};
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 36, 37, 38, 39, 40, 41, 42},
|
||||
{ 8, 9, 10, 11, 12, 13, 7, 45, 46, 47, 48, 49, 50, 51},
|
||||
{ 26,27, 18, 14, 15, 16, 17, 54, 55, 56, 57, 58, 59, 53},
|
||||
{ 29,30, 31, 19, 20, 21, 22, 23, 62, 63, 64, 65, 66, 61},
|
||||
{ 35,34, 33, NO_LED, NO_LED, NO_LED, 24, 44, NO_LED, NO_LED, 68, 69, 70, 71},
|
||||
},
|
||||
{
|
||||
{ 32, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{ 96, 64},{ 96, 64},
|
||||
{ 0, 32},{ 16, 32},
|
||||
{ 0, 48},{ 0, 48},{ 16, 48},{ 32, 48},{ 64, 64},{ 32, 64},{ 16, 64},{ 0, 64},
|
||||
{ 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16},
|
||||
{ 0, 16},{ 16, 16},
|
||||
{ 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 48, 32},{ 64, 32},{ 80, 32},{ 96, 32},
|
||||
|
||||
{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{216, 0},{224, 0},
|
||||
{112, 0},{128, 16},
|
||||
{144, 16},{160, 16},{176, 16},{192, 16},{208, 16},{224, 16},{224, 32},{216, 32},
|
||||
{128, 32},{144, 32},{160, 32},{176, 32},{192, 32},{208, 32},{208, 48},{224, 48},
|
||||
{128, 48},{144, 48},
|
||||
{160, 48},{176, 48},{192, 48},{142, 64},{160, 64},{176, 64},{208, 64},{224, 64}
|
||||
},
|
||||
{
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
1, 4,
|
||||
4, 4, 1, 1, 1, 4, 4, 4,
|
||||
|
||||
1, 4, 4, 4, 4, 4, 4, 4,
|
||||
1, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
|
||||
4, 4, 4, 4, 4, 4, 1, 1,
|
||||
4, 4,
|
||||
4, 4, 4, 4, 4, 1, 1, 1,
|
||||
|
||||
4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4,
|
||||
4, 4, 4, 4, 1, 1, 1, 1,
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef WEBUSB_ENABLE
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user