diff --git a/.editorconfig b/.editorconfig index 60827f04baf..3a537d01b28 100644 --- a/.editorconfig +++ b/.editorconfig @@ -4,39 +4,39 @@ root = true [*] +end_of_line = lf indent_style = space indent_size = 4 - -# We recommend you to keep these unchanged charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true +[{*.yaml,*.yml}] # To match GitHub Actions formatting +indent_size = 2 + [*.md] trim_trailing_whitespace = false -indent_size = 4 - -[{qmk,*.py}] -charset = utf-8 -max_line_length = 200 - -# Make these match what we have in .gitattributes -[*.mk] -end_of_line = lf -indent_style = tab -[Makefile] -end_of_line = lf +[{Makefile,*.mk}] indent_style = tab -[*.sh] -end_of_line = lf - -# The gitattributes file will handle the line endings conversion properly according to the operating system settings for other files - - -# We don't have gitattributes properly for these -# So if the user have for example core.autocrlf set to true -# the line endings would be wrong. +# Don't override anything in `lib/`... [lib/**] +indent_style = unset +indent_size = unset +tab_width = unset end_of_line = unset +charset = unset +spelling_language = unset +trim_trailing_whitespace = unset +insert_final_newline = unset + +# ...except QMK's `lib/python`. +[{*.py,lib/python/**.py}] +end_of_line = lf +indent_style = space +indent_size = 4 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 200 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 81da72046c8..a7d3d40974f 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -35,7 +35,9 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v42 + uses: tj-actions/changed-files@v43 + with: + use_rest_api: true - name: Run qmk formatters shell: 'bash {0}' diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml index 61b4caf422d..ea60fc95b45 100644 --- a/.github/workflows/format_push.yml +++ b/.github/workflows/format_push.yml @@ -47,7 +47,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v6 if: ${{ github.repository == 'qmk/qmk_firmware'}} with: token: ${{ secrets.QMK_BOT_TOKEN }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 67823103f1b..290f5b66ebe 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -27,7 +27,9 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v42 + uses: tj-actions/changed-files@v43 + with: + use_rest_api: true - name: Print info run: | @@ -62,10 +64,12 @@ jobs: qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true for file in ${{ steps.file_changes.outputs.all_changed_files}}; do - if ! git diff --quiet $file; then - echo "File '${file}' Requires Formatting" - echo "::error file=${file}::Requires Formatting" - exit_code=$(($exit_code + 1)) + if [[ -f $file ]]; then + if ! git diff --quiet $file; then + echo "File '${file}' Requires Formatting" + echo "::error file=${file}::Requires Formatting" + exit_code=$(($exit_code + 1)) + fi fi done diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index f1b78129376..0f014111413 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -34,7 +34,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v6 if: ${{ github.repository == 'qmk/qmk_firmware'}} with: token: ${{ secrets.QMK_BOT_TOKEN }} diff --git a/builddefs/converters.mk b/builddefs/converters.mk index 96c8656b253..3e77a070f2f 100644 --- a/builddefs/converters.mk +++ b/builddefs/converters.mk @@ -5,8 +5,10 @@ ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),) $(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.) endif -# TODO: opt in rather than assume everything uses a pro micro -PIN_COMPATIBLE ?= promicro +ifneq (,$(filter $(MCU),atmega32u4)) + # TODO: opt in rather than assume everything uses a pro micro + PIN_COMPATIBLE ?= promicro +endif # Remove whitespace from any rule.mk provided vars # - env cannot be overwritten but cannot have whitespace anyway @@ -16,6 +18,10 @@ ifneq ($(CONVERT_TO),) # stash so we can overwrite env provided vars if needed ACTIVE_CONVERTER=$(CONVERT_TO) + ifeq ($(PIN_COMPATIBLE),) + $(call CATASTROPHIC_ERROR,Converting to '$(CONVERT_TO)' not possible!) + endif + # glob to search each platfrorm and/or check for valid converter CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/) ifeq ($(CONVERTER),) diff --git a/docs/feature_tri_layer.md b/docs/feature_tri_layer.md index ade0040cc7b..3087fb5a550 100644 --- a/docs/feature_tri_layer.md +++ b/docs/feature_tri_layer.md @@ -45,4 +45,4 @@ Eg, if you wanted to set the "Adjust" layer to be layer 5, you'd add this to you | `get_tri_layer_upper_layer()` | Gets the current "upper" layer. | | `get_tri_layer_adjust_layer()` | Gets the current "adjust" layer. | -!> Note: these settings are not persisent, and will be reset to the default on power loss or power cycling of the controller. +!> Note: these settings are not persistent, and will be reset to the default on power loss or power cycling of the controller. diff --git a/docs/getting_started_introduction.md b/docs/getting_started_introduction.md index 6dc51b82b73..80203353452 100644 --- a/docs/getting_started_introduction.md +++ b/docs/getting_started_introduction.md @@ -4,7 +4,7 @@ This page attempts to explain the basic information you need to know to work wit ## Basic QMK Structure -QMK is a fork of [Jun Wako](https://github.com/tmk)'s [tmk_keyboard](https://github.com/tmk/tmk_keyboard) project. The original TMK code, with modifications, can be found in the `tmk_core` folder. The QMK additions to the project may be found in the `quantum` folder. Keyboard projects may be found in the `handwired` and `keyboard` folders. +QMK is a fork of [Jun Wako](https://github.com/tmk)'s [tmk_keyboard](https://github.com/tmk/tmk_keyboard) project. The original TMK code, with modifications, can be found in the `tmk_core` folder. The QMK additions to the project may be found in the `quantum` folder. Keyboard projects may be found in the `keyboards` folder. ### Userspace Structure diff --git a/docs/other_vscode.md b/docs/other_vscode.md index 49d5035b08e..4c71a0eb1c6 100644 --- a/docs/other_vscode.md +++ b/docs/other_vscode.md @@ -117,3 +117,77 @@ Using the [standard `compile_commands.json` database](https://clang.llvm.org/doc 1. Start typing `clangd: Restart Language Server` and select it when it appears. Now you're ready to code QMK Firmware in VS Code! + +# Debugging ARM MCUs with Visual Studio Code + +**...and a Black Magic Probe.** + +Visual Studio Code has the ability to debug applications, but requires some configuration in order to get it to be able to do so for ARM targets. + +This documentation describes a known-working configuration for setting up the use of a Black Magic Probe to debug using VS Code. + +It is assumed that you've correctly set up the electrical connectivity of the Black Magic Probe with your MCU. Wiring up `NRST`, `SWDIO`, `SWCLK`, and `GND` should be enough. + +Install the following plugin into VS Code: + +* [Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) - + This adds debugger support for ARM Cortex targets to VS Code. + +A debugging target for the MCU for your board needs to be defined, and can be done so by adding the following to a `.vscode/launch.json` file: + +```json +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Black Magic Probe (OneKey Proton-C)", + "type": "cortex-debug", + "request": "launch", + "cwd": "${workspaceRoot}", + "executable": "${workspaceRoot}/.build/handwired_onekey_proton_c_default.elf", + "servertype": "bmp", + "BMPGDBSerialPort": "COM4", + "svdFile": "Q:\\svd\\STM32F303.svd", + "device": "STM32F303", + "v1": false, + "windows": { + "armToolchainPath": "C:\\QMK_MSYS\\mingw64\\bin" + } + } + ] +} +``` + +You'll need to perform some modifications to the file above in order to target your specific device: + +* `"name"`: Can be anything, but if you're debugging multiple targets you'll want something descriptive here. +* `"cwd"`: The path to the QMK Firmware repository root directory -- _if using the `.vscode` directory existing in the `qmk_firmware` git repository, the default above should be correct_ +* `"executable"`: The path to the `elf` file generated as part of the build for your keyboard -- _exists in `/.build`_ +* `"BMPGDBSerialPort"`: The `COM` port under Windows, or the `/dev/...` path for Linux/macOS. Two serial port devices will be created -- the Black Magic Probe debug port is *usually* the first. If it doesn't work, try the second. +* `"svdFile"`: _[Optional]_ The path to the SVD file that defines the register layout for the MCU -- the appropriate file can be downloaded from the [cmsis-svd repository](https://github.com/posborne/cmsis-svd/tree/master/data/STMicro) +* `"device"`: The name of the MCU, which matches the `` tag at the top of the downloaded `svd` file. +* `"armToolchainPath"`: _[Optional]_ The path to the ARM toolchain installation location on Windows -- under normal circumstances Linux/macOS will auto-detect this correctly and will not need to be specified. + +!> Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: ![VSCode Settings](https://i.imgur.com/EGrPM1L.png) + +Optionally, the following modifications should also be made to the keyboard's `rules.mk` file to disable optimisations -- not strictly required but will ensure breakpoints and variable viewing works correctly: +```makefile +# Disable optimisations for debugging purposes +LTO_ENABLE = no +OPT = g +DEBUG = 3 +``` + +At this point, you should build and flash your firmware through normal methods (`qmk compile ...` and `qmk flash ...`). + +Once completed, you can: +* Switch to the debug view in VS Code (in the sidebar, the Play button with a bug next to it) +* Select the newly-created debug target in the dropdown at the top of the sidebar +* Click the green play button next to the dropdown + +VS Code's debugger will then start executing the compiled firmware on the MCU. + +At this stage, you should have full debugging set up, with breakpoints and variable listings working! diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 6a0ae315976..0d503ab4177 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -9,6 +9,7 @@ If there are any inconsistencies with these recommendations, you're best off [cr - PR should be submitted using a non-`master` branch on the source repository - this does not mean you target a different branch for your PR, rather that you're not working out of your own master branch - if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](newbs_git_using_your_master_branch.md) page after merging -- (end of this document will contain the contents of the message) + - Note, frequently merging upstream with your branch is not needed and is discouraged. Valid reason for updating your branch may be resolving merge conflicts and pulling in new changes relevant to your PR. - PRs should contain the smallest amount of modifications required for a single change to the codebase - multiple keyboards at the same time is not acceptable - **the smaller the PR, the higher likelihood of a quicker review, higher likelihood of quicker merge, and less chance of conflicts** @@ -43,10 +44,10 @@ If there are any inconsistencies with these recommendations, you're best off [cr - PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`. - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps. -- #include QMK_KEYBOARD_H preferred to including specific board files +- `#include QMK_KEYBOARD_H` preferred to including specific board files - prefer layer enums to #defines -- custom keycode enums must have first entry = SAFE_RANGE -- some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap +- custom keycode enums must have first entry = `QK_USER` +- some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap. Spaces are preferred to tabs ## Keyboard PRs @@ -81,6 +82,8 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - Encoder Configuration - Bootmagic Configuration - LED Indicator Configuration + - RGB Light Configuration + - RGB Matrix Configuration - Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file. - `readme.md` - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) @@ -90,8 +93,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - a picture about the keyboard and preferably about the PCB, too - images are not to be placed in the `qmk_firmware` repository - images should be uploaded to an external image hosting service, such as [imgur](https://imgur.com/). - - if imgur is used, images should be resized appropriately: append "h" to the image url i.e. [https://i.imgur.com/vqgE7Ok.jpg](https://i.imgur.com/vqgE7Ok.jpg) becomes [https://i.imgur.com/vqgE7Ok**h**.jpg](https://i.imgur.com/vqgE7Okh.jpg) - - image links should link directly to the image, not a "preview" -- i.e. [https://imgur.com/vqgE7Ok](https://imgur.com/vqgE7Ok) should be [https://i.imgur.com/vqgE7Okh.jpg](https://i.imgur.com/vqgE7Okh.jpg) when using imgur + - image links should link directly to the image, not a "preview" -- i.e. [https://imgur.com/vqgE7Ok](https://imgur.com/vqgE7Ok) should be [https://i.imgur.com/vqgE7Ok.jpg](https://i.imgur.com/vqgE7Ok.jpg) when using imgur - `rules.mk` - removed `MIDI_ENABLE`, `FAUXCLICKY_ENABLE` and `HD44780_ENABLE` - modified `# Enable Bluetooth with the Adafruit EZ-Key HID` -> `# Enable Bluetooth` @@ -204,7 +206,7 @@ Additionally, PR reviews are something that is done in our free time. We are not ## Example GPLv2 Header ``` -/* Copyright 2021 Your Name (@yourgithub) +/* Copyright 2024 Your Name (@yourgithub) * * 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 @@ -224,6 +226,6 @@ Additionally, PR reviews are something that is done in our free time. We are not Or, optionally, using [SPDX identifier](https://spdx.org/licenses/) instead: ``` -// Copyright 2021 Your Name (@yourgithub) +// Copyright 2024 Your Name (@yourgithub) // SPDX-License-Identifier: GPL-2.0-or-later ``` diff --git a/keyboards/amjkeyboard/amj96/info.json b/keyboards/amjkeyboard/amj96/info.json index 973e6b33759..60cb8ee9e83 100644 --- a/keyboards/amjkeyboard/amj96/info.json +++ b/keyboards/amjkeyboard/amj96/info.json @@ -130,6 +130,227 @@ {"matrix": [0, 14], "x": 17, "y": 4}, {"matrix": [0, 7], "x": 18, "y": 4}, + {"matrix": [6, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [6, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [6, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [6, 3], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [6, 4], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [6, 5], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [6, 6], "x": 13, "y": 5}, + {"matrix": [6, 8], "x": 14, "y": 5}, + {"matrix": [6, 9], "x": 15, "y": 5}, + {"matrix": [6, 10], "x": 16, "y": 5}, + {"matrix": [6, 11], "x": 17, "y": 5}, + {"matrix": [6, 12], "x": 18, "y": 5} + ] + }, + "LAYOUT_96_ansi_rwkl_split_num_plus_enter": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 0}, + {"matrix": [1, 2], "x": 2, "y": 0}, + {"matrix": [1, 3], "x": 3, "y": 0}, + {"matrix": [1, 4], "x": 4, "y": 0}, + {"matrix": [1, 5], "x": 5, "y": 0}, + {"matrix": [1, 6], "x": 6, "y": 0}, + {"matrix": [1, 7], "x": 7, "y": 0}, + {"matrix": [1, 8], "x": 8, "y": 0}, + {"matrix": [1, 9], "x": 9, "y": 0}, + {"matrix": [1, 10], "x": 10, "y": 0}, + {"matrix": [1, 11], "x": 11, "y": 0}, + {"matrix": [1, 12], "x": 12, "y": 0}, + {"matrix": [1, 13], "x": 13, "y": 0}, + {"matrix": [1, 14], "x": 14, "y": 0}, + {"matrix": [1, 15], "x": 15, "y": 0}, + {"matrix": [0, 9], "x": 16, "y": 0}, + {"matrix": [0, 10], "x": 17, "y": 0}, + {"matrix": [0, 12], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [2, 1], "x": 1, "y": 1}, + {"matrix": [2, 2], "x": 2, "y": 1}, + {"matrix": [2, 3], "x": 3, "y": 1}, + {"matrix": [2, 4], "x": 4, "y": 1}, + {"matrix": [2, 5], "x": 5, "y": 1}, + {"matrix": [2, 6], "x": 6, "y": 1}, + {"matrix": [2, 7], "x": 7, "y": 1}, + {"matrix": [2, 8], "x": 8, "y": 1}, + {"matrix": [2, 9], "x": 9, "y": 1}, + {"matrix": [2, 10], "x": 10, "y": 1}, + {"matrix": [2, 11], "x": 11, "y": 1}, + {"matrix": [2, 12], "x": 12, "y": 1}, + {"matrix": [2, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [2, 15], "x": 15, "y": 1}, + {"matrix": [0, 11], "x": 16, "y": 1}, + {"matrix": [0, 15], "x": 17, "y": 1}, + {"matrix": [6, 15], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [3, 9], "x": 9.5, "y": 2}, + {"matrix": [3, 10], "x": 10.5, "y": 2}, + {"matrix": [3, 11], "x": 11.5, "y": 2}, + {"matrix": [3, 12], "x": 12.5, "y": 2}, + {"matrix": [3, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [3, 14], "x": 15, "y": 2}, + {"matrix": [3, 15], "x": 16, "y": 2}, + {"matrix": [0, 13], "x": 17, "y": 2}, + {"matrix": [6, 13], "x": 18, "y": 2}, + + {"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.75, "y": 3}, + {"matrix": [4, 2], "x": 2.75, "y": 3}, + {"matrix": [4, 3], "x": 3.75, "y": 3}, + {"matrix": [4, 4], "x": 4.75, "y": 3}, + {"matrix": [4, 5], "x": 5.75, "y": 3}, + {"matrix": [4, 6], "x": 6.75, "y": 3}, + {"matrix": [4, 7], "x": 7.75, "y": 3}, + {"matrix": [4, 8], "x": 8.75, "y": 3}, + {"matrix": [4, 9], "x": 9.75, "y": 3}, + {"matrix": [4, 10], "x": 10.75, "y": 3}, + {"matrix": [4, 11], "x": 11.75, "y": 3}, + {"matrix": [4, 12], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [4, 13], "x": 15, "y": 3}, + {"matrix": [4, 14], "x": 16, "y": 3}, + {"matrix": [4, 15], "x": 17, "y": 3}, + {"matrix": [6, 14], "x": 18, "y": 3}, + + {"matrix": [5, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [5, 2], "x": 2.25, "y": 4}, + {"matrix": [5, 3], "x": 3.25, "y": 4}, + {"matrix": [5, 4], "x": 4.25, "y": 4}, + {"matrix": [5, 5], "x": 5.25, "y": 4}, + {"matrix": [5, 6], "x": 6.25, "y": 4}, + {"matrix": [5, 7], "x": 7.25, "y": 4}, + {"matrix": [5, 8], "x": 8.25, "y": 4}, + {"matrix": [5, 9], "x": 9.25, "y": 4}, + {"matrix": [5, 10], "x": 10.25, "y": 4}, + {"matrix": [5, 11], "x": 11.25, "y": 4}, + {"matrix": [5, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [5, 13], "x": 14, "y": 4}, + {"matrix": [5, 14], "x": 15, "y": 4}, + {"matrix": [5, 15], "x": 16, "y": 4}, + {"matrix": [0, 14], "x": 17, "y": 4}, + {"matrix": [0, 7], "x": 18, "y": 4}, + + {"matrix": [6, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [6, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [6, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [6, 3], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [6, 4], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [6, 5], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [6, 6], "x": 13, "y": 5}, + {"matrix": [6, 8], "x": 14, "y": 5}, + {"matrix": [6, 9], "x": 15, "y": 5}, + {"matrix": [6, 10], "x": 16, "y": 5}, + {"matrix": [6, 11], "x": 17, "y": 5}, + {"matrix": [6, 12], "x": 18, "y": 5} + ] + }, + "LAYOUT_96_ansi_rwkl_split_bs_num_plus_enter": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 0}, + {"matrix": [1, 2], "x": 2, "y": 0}, + {"matrix": [1, 3], "x": 3, "y": 0}, + {"matrix": [1, 4], "x": 4, "y": 0}, + {"matrix": [1, 5], "x": 5, "y": 0}, + {"matrix": [1, 6], "x": 6, "y": 0}, + {"matrix": [1, 7], "x": 7, "y": 0}, + {"matrix": [1, 8], "x": 8, "y": 0}, + {"matrix": [1, 9], "x": 9, "y": 0}, + {"matrix": [1, 10], "x": 10, "y": 0}, + {"matrix": [1, 11], "x": 11, "y": 0}, + {"matrix": [1, 12], "x": 12, "y": 0}, + {"matrix": [1, 13], "x": 13, "y": 0}, + {"matrix": [1, 14], "x": 14, "y": 0}, + {"matrix": [1, 15], "x": 15, "y": 0}, + {"matrix": [0, 9], "x": 16, "y": 0}, + {"matrix": [0, 10], "x": 17, "y": 0}, + {"matrix": [0, 12], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [2, 1], "x": 1, "y": 1}, + {"matrix": [2, 2], "x": 2, "y": 1}, + {"matrix": [2, 3], "x": 3, "y": 1}, + {"matrix": [2, 4], "x": 4, "y": 1}, + {"matrix": [2, 5], "x": 5, "y": 1}, + {"matrix": [2, 6], "x": 6, "y": 1}, + {"matrix": [2, 7], "x": 7, "y": 1}, + {"matrix": [2, 8], "x": 8, "y": 1}, + {"matrix": [2, 9], "x": 9, "y": 1}, + {"matrix": [2, 10], "x": 10, "y": 1}, + {"matrix": [2, 11], "x": 11, "y": 1}, + {"matrix": [2, 12], "x": 12, "y": 1}, + {"matrix": [2, 13], "x": 13, "y": 1}, + {"matrix": [2, 14], "x": 14, "y": 1}, + {"matrix": [2, 15], "x": 15, "y": 1}, + {"matrix": [0, 11], "x": 16, "y": 1}, + {"matrix": [0, 15], "x": 17, "y": 1}, + {"matrix": [6, 15], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [3, 9], "x": 9.5, "y": 2}, + {"matrix": [3, 10], "x": 10.5, "y": 2}, + {"matrix": [3, 11], "x": 11.5, "y": 2}, + {"matrix": [3, 12], "x": 12.5, "y": 2}, + {"matrix": [3, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [3, 14], "x": 15, "y": 2}, + {"matrix": [3, 15], "x": 16, "y": 2}, + {"matrix": [0, 13], "x": 17, "y": 2}, + {"matrix": [6, 13], "x": 18, "y": 2}, + + {"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.75, "y": 3}, + {"matrix": [4, 2], "x": 2.75, "y": 3}, + {"matrix": [4, 3], "x": 3.75, "y": 3}, + {"matrix": [4, 4], "x": 4.75, "y": 3}, + {"matrix": [4, 5], "x": 5.75, "y": 3}, + {"matrix": [4, 6], "x": 6.75, "y": 3}, + {"matrix": [4, 7], "x": 7.75, "y": 3}, + {"matrix": [4, 8], "x": 8.75, "y": 3}, + {"matrix": [4, 9], "x": 9.75, "y": 3}, + {"matrix": [4, 10], "x": 10.75, "y": 3}, + {"matrix": [4, 11], "x": 11.75, "y": 3}, + {"matrix": [4, 12], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [4, 13], "x": 15, "y": 3}, + {"matrix": [4, 14], "x": 16, "y": 3}, + {"matrix": [4, 15], "x": 17, "y": 3}, + {"matrix": [6, 14], "x": 18, "y": 3}, + + {"matrix": [5, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [5, 2], "x": 2.25, "y": 4}, + {"matrix": [5, 3], "x": 3.25, "y": 4}, + {"matrix": [5, 4], "x": 4.25, "y": 4}, + {"matrix": [5, 5], "x": 5.25, "y": 4}, + {"matrix": [5, 6], "x": 6.25, "y": 4}, + {"matrix": [5, 7], "x": 7.25, "y": 4}, + {"matrix": [5, 8], "x": 8.25, "y": 4}, + {"matrix": [5, 9], "x": 9.25, "y": 4}, + {"matrix": [5, 10], "x": 10.25, "y": 4}, + {"matrix": [5, 11], "x": 11.25, "y": 4}, + {"matrix": [5, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [5, 13], "x": 14, "y": 4}, + {"matrix": [5, 14], "x": 15, "y": 4}, + {"matrix": [5, 15], "x": 16, "y": 4}, + {"matrix": [0, 14], "x": 17, "y": 4}, + {"matrix": [0, 7], "x": 18, "y": 4}, + {"matrix": [6, 0], "x": 0, "y": 5, "w": 1.25}, {"matrix": [6, 1], "x": 1.25, "y": 5, "w": 1.25}, {"matrix": [6, 2], "x": 2.5, "y": 5, "w": 1.25}, diff --git a/keyboards/amjkeyboard/amj96/matrix_diagram.md b/keyboards/amjkeyboard/amj96/matrix_diagram.md new file mode 100644 index 00000000000..6bd94f88bef --- /dev/null +++ b/keyboards/amjkeyboard/amj96/matrix_diagram.md @@ -0,0 +1,25 @@ +# Matrix Diagram for Han Chen AMJ96 + +There's a lot of options available on the PCB, including some on the +bottom row, but I haven't ever found high quality images of a bare PCB +with which to determine what's actually supported. :\\\ +\- @noroadsleft, 19 January, 2024 + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │09 │0A │0C │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │2F │0B │0F │6F │ │2D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌─────┐ ┌───┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │3F │0D │6D │ │ │ │3D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐?? │ ISO Enter ┌──┴┬────┤ Split Enter │?? │ 2u Numpad Plus +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │4F │6E │ │?? │ │ │?? │?? │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ ┌─┴───┴────┤ └───┴────┘ ├───┤ +│50 │51 │52 │53 │54 │55 │56 │57 │58 │59 │5A │5B │5C │5D │5E │5F │0E │07 │ │?? │ 2.75u │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┼───┼───┼───┤ └──────────┘ RShift │?? │ 2u Numpad Enter +│60 │61 │62 │63 │64 │65 │66 │68 │69 │6A │6B │6C │ │ │ +└────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┴───┴───┴───┘ └───┘ +┌────────┐ ┌───────┐ +│50 │ 2.25u LShift │?? │ 2u Numpad Zero +└────────┘ └───────┘ +``` diff --git a/keyboards/ares/info.json b/keyboards/ares/info.json index dceb80da043..125db97ed28 100644 --- a/keyboards/ares/info.json +++ b/keyboards/ares/info.json @@ -45,7 +45,7 @@ "layout_aliases": { "LAYOUT": "LAYOUT_all" }, - "community_layouts": ["60_ansi_split_bs_rshift", "60_hhkb"], + "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_all": { "layout": [ @@ -120,6 +120,75 @@ {"matrix": [0, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 14], "x": 13, "y": 0, "w": 2}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + {"matrix": [3, 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": [1, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [0, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [0, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [0, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [0, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ {"matrix": [4, 0], "x": 0, "y": 0}, @@ -191,7 +260,75 @@ {"matrix": [0, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_hhkb": { + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + {"matrix": [3, 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": [1, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 4}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 12], "x": 12.5, "y": 4}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { "layout": [ {"matrix": [4, 0], "x": 0, "y": 0}, {"matrix": [4, 1], "x": 1, "y": 0}, @@ -252,11 +389,633 @@ {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [1, 13], "x": 14, "y": 3}, + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, {"matrix": [0, 1], "x": 1.5, "y": 4}, {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [0, 12], "x": 12.5, "y": 4} + {"matrix": [0, 12], "x": 12.5, "y": 4}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + {"matrix": [3, 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": [1, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + {"matrix": [3, 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": [1, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [1, 13], "x": 14, "y": 3}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + {"matrix": [3, 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": [1, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [1, 13], "x": 14, "y": 3}, + + {"matrix": [0, 1], "x": 1.5, "y": 4}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + + {"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": 1, "w": 1.25, "h": 2}, + + {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 3}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [0, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [0, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [0, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [0, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + + {"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": 1, "w": 1.25, "h": 2}, + + {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 3}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [1, 13], "x": 14, "y": 3}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [0, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [0, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [0, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [0, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + + {"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": 1, "w": 1.25, "h": 2}, + + {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 3}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 4}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 12], "x": 12.5, "y": 4}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + + {"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": 1, "w": 1.25, "h": 2}, + + {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 3}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [1, 13], "x": 14, "y": 3}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 4}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 12], "x": 12.5, "y": 4}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + + {"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": 1, "w": 1.25, "h": 2}, + + {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 3}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 1, "y": 0}, + {"matrix": [4, 2], "x": 2, "y": 0}, + {"matrix": [4, 3], "x": 3, "y": 0}, + {"matrix": [4, 4], "x": 4, "y": 0}, + {"matrix": [4, 5], "x": 5, "y": 0}, + {"matrix": [4, 6], "x": 6, "y": 0}, + {"matrix": [4, 7], "x": 7, "y": 0}, + {"matrix": [4, 8], "x": 8, "y": 0}, + {"matrix": [4, 9], "x": 9, "y": 0}, + {"matrix": [4, 10], "x": 10, "y": 0}, + {"matrix": [4, 11], "x": 11, "y": 0}, + {"matrix": [4, 12], "x": 12, "y": 0}, + {"matrix": [4, 13], "x": 13, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 1}, + {"matrix": [3, 2], "x": 2.5, "y": 1}, + {"matrix": [3, 3], "x": 3.5, "y": 1}, + {"matrix": [3, 4], "x": 4.5, "y": 1}, + {"matrix": [3, 5], "x": 5.5, "y": 1}, + {"matrix": [3, 6], "x": 6.5, "y": 1}, + {"matrix": [3, 7], "x": 7.5, "y": 1}, + {"matrix": [3, 8], "x": 8.5, "y": 1}, + {"matrix": [3, 9], "x": 9.5, "y": 1}, + {"matrix": [3, 10], "x": 10.5, "y": 1}, + {"matrix": [3, 11], "x": 11.5, "y": 1}, + {"matrix": [3, 12], "x": 12.5, "y": 1}, + + {"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": 1, "w": 1.25, "h": 2}, + + {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 3}, + {"matrix": [1, 2], "x": 2.25, "y": 3}, + {"matrix": [1, 3], "x": 3.25, "y": 3}, + {"matrix": [1, 4], "x": 4.25, "y": 3}, + {"matrix": [1, 5], "x": 5.25, "y": 3}, + {"matrix": [1, 6], "x": 6.25, "y": 3}, + {"matrix": [1, 7], "x": 7.25, "y": 3}, + {"matrix": [1, 8], "x": 8.25, "y": 3}, + {"matrix": [1, 9], "x": 9.25, "y": 3}, + {"matrix": [1, 10], "x": 10.25, "y": 3}, + {"matrix": [1, 11], "x": 11.25, "y": 3}, + {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [1, 13], "x": 14, "y": 3}, + + {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [0, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} ] } } diff --git a/keyboards/ares/matrix_diagram.md b/keyboards/ares/matrix_diagram.md new file mode 100644 index 00000000000..5be61c98899 --- /dev/null +++ b/keyboards/ares/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for LSJ Ares + +``` + ┌───────┐ + 2u Backspace │4E │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│00 │01 │02 │06 │0A │0B │0C │0D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│10 │ 2.25u LShift 2.75u RShift │1C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│00 │01 │02 │06 │0B │0C │0D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐ +│00 │01 │02 │06 │0A │0B │0C │0D │ True HHKB +└─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘ +``` diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h index 6aa20712f67..50fc030402b 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h @@ -39,15 +39,14 @@ /* SPI config for pmw3360 sensor. */ #define SPI_DRIVER SPID1 -#define SPI_SCK_PIN B1 +#define SPI_SCK_PIN A5 #define SPI_SCK_PAL_MODE 5 -#define SPI_MOSI_PIN B2 +#define SPI_MOSI_PIN A7 #define SPI_MOSI_PAL_MODE 5 -#define SPI_MISO_PIN B3 +#define SPI_MISO_PIN A6 #define SPI_MISO_PAL_MODE 5 /* PMW3360 settings. */ -#define A1 PAL_LINE(GPIOA, 1) #define POINTING_DEVICE_CS_PIN A1 #define PMW3360_CS_MODE 3 #define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json index c119df524c3..af74a299be7 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json @@ -7,20 +7,19 @@ "driver": "ws2812" }, "ws2812": { - "pin": "D3", + "pin": "A2", "driver": "pwm" }, "build": { "debounce_type": "asym_eager_defer_pk" }, "matrix_pins": { - "cols": ["F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] + "cols": ["B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] }, "diode_direction": "ROW2COL", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "A3" }, - "processor": "STM32F411", - "bootloader": "stm32-dfu" + "development_board": "stemcell" } diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk index 4436426f303..4bd570ddd8c 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk @@ -1,5 +1,3 @@ -CONVERT_TO = stemcell - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h index 6aa20712f67..50fc030402b 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h @@ -39,15 +39,14 @@ /* SPI config for pmw3360 sensor. */ #define SPI_DRIVER SPID1 -#define SPI_SCK_PIN B1 +#define SPI_SCK_PIN A5 #define SPI_SCK_PAL_MODE 5 -#define SPI_MOSI_PIN B2 +#define SPI_MOSI_PIN A7 #define SPI_MOSI_PAL_MODE 5 -#define SPI_MISO_PIN B3 +#define SPI_MISO_PIN A6 #define SPI_MISO_PAL_MODE 5 /* PMW3360 settings. */ -#define A1 PAL_LINE(GPIOA, 1) #define POINTING_DEVICE_CS_PIN A1 #define PMW3360_CS_MODE 3 #define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json index 85b66277cf2..4309fd5ee30 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json @@ -7,20 +7,19 @@ "driver": "ws2812" }, "ws2812": { - "pin": "D3", + "pin": "A2", "driver": "pwm" }, "build": { "debounce_type": "asym_eager_defer_pk" }, "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] }, "diode_direction": "ROW2COL", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "A3" }, - "processor": "STM32F411", - "bootloader": "stm32-dfu" + "development_board": "stemcell" } diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk index 4436426f303..4bd570ddd8c 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk @@ -1,5 +1,3 @@ -CONVERT_TO = stemcell - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h index 6aa20712f67..50fc030402b 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h @@ -39,15 +39,14 @@ /* SPI config for pmw3360 sensor. */ #define SPI_DRIVER SPID1 -#define SPI_SCK_PIN B1 +#define SPI_SCK_PIN A5 #define SPI_SCK_PAL_MODE 5 -#define SPI_MOSI_PIN B2 +#define SPI_MOSI_PIN A7 #define SPI_MOSI_PAL_MODE 5 -#define SPI_MISO_PIN B3 +#define SPI_MISO_PIN A6 #define SPI_MISO_PAL_MODE 5 /* PMW3360 settings. */ -#define A1 PAL_LINE(GPIOA, 1) #define POINTING_DEVICE_CS_PIN A1 #define PMW3360_CS_MODE 3 #define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json index cfae56715f1..8060c758b88 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json @@ -7,20 +7,19 @@ "driver": "ws2812" }, "ws2812": { - "pin": "D3", + "pin": "A2", "driver": "pwm" }, "build": { "debounce_type": "asym_eager_defer_pk" }, "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F4", "F7", "C6", "D4", "B5"] + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B10", "B0", "B3", "A15", "B9"] }, "diode_direction": "ROW2COL", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "A3" }, - "processor": "STM32F411", - "bootloader": "stm32-dfu" + "development_board": "stemcell" } diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk index 4436426f303..4bd570ddd8c 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk @@ -1,5 +1,3 @@ -CONVERT_TO = stemcell - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/scylla/v2/stemcell/info.json b/keyboards/bastardkb/scylla/v2/stemcell/info.json index d463418cf19..598ca9d9ee0 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/info.json +++ b/keyboards/bastardkb/scylla/v2/stemcell/info.json @@ -7,20 +7,19 @@ "driver": "ws2812" }, "ws2812": { - "pin": "D3", + "pin": "A2", "driver": "pwm" }, "build": { "debounce_type": "asym_eager_defer_pk" }, "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F4", "F7", "C6", "D4", "B5"] + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B10", "B0", "B3", "A15", "B9"] }, "diode_direction": "ROW2COL", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "A3" }, - "processor": "STM32F411", - "bootloader": "stm32-dfu" + "development_board": "stemcell" } diff --git a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk index 8dda103d07a..8256842e21d 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk @@ -1,5 +1,3 @@ -CONVERT_TO = stemcell - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json index b44d64a47aa..b384da9dbdc 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json @@ -7,20 +7,19 @@ "driver": "ws2812" }, "ws2812": { - "pin": "D3", + "pin": "A2", "driver": "pwm" }, "build": { "debounce_type": "asym_eager_defer_pk" }, "matrix_pins": { - "cols": ["F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] + "cols": ["B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] }, "diode_direction": "ROW2COL", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "A3" }, - "processor": "STM32F411", - "bootloader": "stm32-dfu" + "development_board": "stemcell" } diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk index 8dda103d07a..8256842e21d 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk @@ -1,5 +1,3 @@ -CONVERT_TO = stemcell - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json index a75db584e79..f62427438b7 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json @@ -7,20 +7,19 @@ "driver": "ws2812" }, "ws2812": { - "pin": "D3", + "pin": "A2", "driver": "pwm" }, "build": { "debounce_type": "asym_eager_defer_pk" }, "matrix_pins": { - "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], - "rows": ["F7", "C6", "D4", "B5"] + "cols": ["B1", "B2", "A4", "B4", "B5", "B8"], + "rows": ["B0", "B3", "A15", "B9"] }, "diode_direction": "ROW2COL", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "A3" }, - "processor": "STM32F411", - "bootloader": "stm32-dfu" + "development_board": "stemcell" } diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk index 8dda103d07a..8256842e21d 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk @@ -1,5 +1,3 @@ -CONVERT_TO = stemcell - # Build Options # change yes to no to disable # diff --git a/keyboards/cipulot/60xt/info.json b/keyboards/cipulot/60xt/info.json new file mode 100644 index 00000000000..606e6b33633 --- /dev/null +++ b/keyboards/cipulot/60xt/info.json @@ -0,0 +1,118 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "60XT", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "A1" + }, + "matrix_pins": { + "cols": ["A5", "A2", "A0", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15"], + "rows": ["B1", "B2", "A6", "A7", "B0"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "0.0.1", + "pid": "0x6BC2", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT": { + "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": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 15], "x": 16.5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"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, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1, "w": 1.5}, + {"matrix": [2, 15], "x": 16.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2, "w": 1.25}, + {"matrix": [3, 15], "x": 16.5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3}, + {"matrix": [3, 3], "x": 3.5, "y": 3}, + {"matrix": [3, 4], "x": 4.5, "y": 3}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, + {"matrix": [3, 11], "x": 11.5, "y": 3}, + {"matrix": [3, 12], "x": 12.5, "y": 3}, + {"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 15.25, "y": 3}, + {"matrix": [4, 14], "x": 16.5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.75, "y": 4}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.5}, + {"matrix": [4, 8], "x": 5.25, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13.75, "y": 4}, + {"matrix": [4, 13], "x": 14.75, "y": 4, "w": 1.5}, + {"matrix": [4, 15], "x": 16.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/60xt/keymaps/default/keymap.c b/keyboards/cipulot/60xt/keymaps/default/keymap.c new file mode 100644 index 00000000000..41008ef92ad --- /dev/null +++ b/keyboards/cipulot/60xt/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2023 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT( + KC_F1, 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_F6, + KC_F2, 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_F7, + KC_F3, 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_F8, + KC_F4, 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_F9, + KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_F10 + ), + [1] = LAYOUT( + _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______ + ), + [2] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/60xt/keymaps/via/keymap.c b/keyboards/cipulot/60xt/keymaps/via/keymap.c new file mode 100644 index 00000000000..41008ef92ad --- /dev/null +++ b/keyboards/cipulot/60xt/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2023 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT( + KC_F1, 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_F6, + KC_F2, 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_F7, + KC_F3, 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_F8, + KC_F4, 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_F9, + KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_F10 + ), + [1] = LAYOUT( + _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______ + ), + [2] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/60xt/keymaps/via/rules.mk b/keyboards/cipulot/60xt/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/60xt/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/60xt/readme.md b/keyboards/cipulot/60xt/readme.md new file mode 100644 index 00000000000..19abf2340cc --- /dev/null +++ b/keyboards/cipulot/60xt/readme.md @@ -0,0 +1,27 @@ +# 60XT + +![60XT](https://i.imgur.com/7lAvjpmh.png) + +A 60% XT solder and hot swap PCB. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: 60XT +* Hardware Availability: [Eloquent Clicks](https://eloquentclicks.com/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/60xt:default + +Flashing example for this keyboard: + + make cipulot/60xt: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: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured. +* **Physical reset button**: Long press the reset button soldered on the PCB. +* **Bootmagic reset**: Hold down the top left key and plug in the controller. diff --git a/keyboards/cipulot/60xt/rules.mk b/keyboards/cipulot/60xt/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/cipulot/common/ec_switch_matrix.h b/keyboards/cipulot/common/ec_switch_matrix.h index ad03f093de7..4b424911da8 100644 --- a/keyboards/cipulot/common/ec_switch_matrix.h +++ b/keyboards/cipulot/common/ec_switch_matrix.h @@ -20,6 +20,7 @@ #include #include "matrix.h" #include "eeconfig.h" +#include "util.h" typedef struct PACKED { uint8_t actuation_mode; // 0: normal board-wide APC, 1: Rapid trigger from specific board-wide actuation point, 2: Rapid trigger from resting point diff --git a/keyboards/cipulot/ec_23u/config.h b/keyboards/cipulot/ec_23u/config.h index da210fe0c63..3a3d482e3d3 100644 --- a/keyboards/cipulot/ec_23u/config.h +++ b/keyboards/cipulot/ec_23u/config.h @@ -60,7 +60,7 @@ // #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 58 +#define EECONFIG_KB_DATA_SIZE 57 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/ec_60/config.h b/keyboards/cipulot/ec_60/config.h index d4dc8cf68ac..c936b248c45 100644 --- a/keyboards/cipulot/ec_60/config.h +++ b/keyboards/cipulot/ec_60/config.h @@ -63,7 +63,7 @@ // #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 160 +#define EECONFIG_KB_DATA_SIZE 159 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/ec_alveus/1_0_0/config.h b/keyboards/cipulot/ec_alveus/1_0_0/config.h index 775c7906adb..ea43ba348d5 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_0_0/config.h @@ -62,7 +62,7 @@ // #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 170 +#define EECONFIG_KB_DATA_SIZE 169 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/ec_alveus/1_2_0/config.h b/keyboards/cipulot/ec_alveus/1_2_0/config.h index 775c7906adb..ea43ba348d5 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_2_0/config.h @@ -62,7 +62,7 @@ // #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 170 +#define EECONFIG_KB_DATA_SIZE 169 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/ec_pro2/config.h b/keyboards/cipulot/ec_pro2/config.h index d4dc8cf68ac..c936b248c45 100644 --- a/keyboards/cipulot/ec_pro2/config.h +++ b/keyboards/cipulot/ec_pro2/config.h @@ -63,7 +63,7 @@ // #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 160 +#define EECONFIG_KB_DATA_SIZE 159 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/ec_prox/ansi_iso/config.h b/keyboards/cipulot/ec_prox/ansi_iso/config.h index ec15808274c..6a165cf3abd 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/config.h +++ b/keyboards/cipulot/ec_prox/ansi_iso/config.h @@ -63,7 +63,7 @@ // #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 160 +#define EECONFIG_KB_DATA_SIZE 159 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/ec_prox/jis/config.h b/keyboards/cipulot/ec_prox/jis/config.h index 8761b692aad..6a686d74044 100644 --- a/keyboards/cipulot/ec_prox/jis/config.h +++ b/keyboards/cipulot/ec_prox/jis/config.h @@ -63,7 +63,7 @@ // #define DEBUG_MATRIX_SCAN_RATE -#define EECONFIG_KB_DATA_SIZE 150 +#define EECONFIG_KB_DATA_SIZE 149 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/ec_theca/config.h b/keyboards/cipulot/ec_theca/config.h index 23a0bb4eb40..4b834fdff68 100644 --- a/keyboards/cipulot/ec_theca/config.h +++ b/keyboards/cipulot/ec_theca/config.h @@ -62,7 +62,7 @@ // #define DEBUG_MATRIX_SCAN_RATE #define DYNAMIC_KEYMAP_LAYER_COUNT 3 -#define EECONFIG_KB_DATA_SIZE 202 +#define EECONFIG_KB_DATA_SIZE 201 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/cipulot/rf_r1_8_9xu/config.h b/keyboards/cipulot/rf_r1_8_9xu/config.h index bd020ff4333..fbd65f259fd 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/config.h +++ b/keyboards/cipulot/rf_r1_8_9xu/config.h @@ -62,7 +62,7 @@ // #define DEBUG_MATRIX_SCAN_RATE #define DYNAMIC_KEYMAP_LAYER_COUNT 3 -#define EECONFIG_KB_DATA_SIZE 202 +#define EECONFIG_KB_DATA_SIZE 201 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/custommk/cmk11/config.h b/keyboards/custommk/cmk11/config.h new file mode 100644 index 00000000000..122d32c5da5 --- /dev/null +++ b/keyboards/custommk/cmk11/config.h @@ -0,0 +1,29 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// FRAM configuration +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz + +// SPI configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 + +// Audio configuration +#define AUDIO_PIN B8 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL 3 +#define AUDIO_PWM_PAL_MODE 2 +#define AUDIO_STATE_TIMER GPTD5 +#define AUDIO_INIT_DELAY + +// WS2812 configuration +#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 diff --git a/keyboards/custommk/cmk11/halconf.h b/keyboards/custommk/cmk11/halconf.h new file mode 100644 index 00000000000..6791d829f9b --- /dev/null +++ b/keyboards/custommk/cmk11/halconf.h @@ -0,0 +1,30 @@ +/* Copyright 2024 customMK + * + * 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 . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#define SERIAL_BUFFERS_SIZE 256 + +// This enables interrupt-driven mode +#define SPI_USE_WAIT TRUE + +#include_next diff --git a/keyboards/custommk/cmk11/info.json b/keyboards/custommk/cmk11/info.json new file mode 100644 index 00000000000..d831351aa78 --- /dev/null +++ b/keyboards/custommk/cmk11/info.json @@ -0,0 +1,121 @@ +{ + "manufacturer": "customMK", + "keyboard_name": "CMK11", + "maintainer": "customMK", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 32 + }, + "eeprom": { + "driver": "spi" + }, + "features": { + "audio": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B0", "A1", "A2", "A3", "A6", "B10"], + "rows": ["A5", "A4"] + }, + "processor": "STM32F411", + "qmk": { + "tap_keycode_delay": 10 + }, + "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, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 23, "y": 64, "flags": 4}, + {"matrix": [1, 1], "x": 68, "y": 64, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [1, 3], "x": 157, "y": 64, "flags": 4}, + {"matrix": [1, 4], "x": 202, "y": 64, "flags": 4} + ], + "max_brightness": 120, + "sat_steps": 8, + "speed_steps": 10, + "val_steps": 8 + }, + "url": "https://shop.custommk.com/collections/cmk11/products/ckm11", + "usb": { + "device_version": "1.0.0", + "pid": "0xFABA", + "vid": "0xF35B" + }, + "ws2812": { + "driver": "pwm", + "pin": "A10" + }, + "layouts": { + "LAYOUT": { + "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": [1, 0], "x": 0.5, "y": 1}, + {"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} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/custommk/cmk11/keymaps/default/keymap.c b/keyboards/custommk/cmk11/keymaps/default/keymap.c new file mode 100644 index 00000000000..a6d6db48c94 --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/default/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2024 customMK +// 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_C, KC_V, KC_VOLU, KC_VOLD, KC_DEL, + KC_LCTL, KC_PGUP, KC_SPC, KC_PGDN, KC_ENT + ) +}; diff --git a/keyboards/custommk/cmk11/keymaps/via/config.h b/keyboards/custommk/cmk11/keymaps/via/config.h new file mode 100644 index 00000000000..c2dca382777 --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_MACRO_COUNT 128 diff --git a/keyboards/custommk/cmk11/keymaps/via/keymap.c b/keyboards/custommk/cmk11/keymaps/via/keymap.c new file mode 100644 index 00000000000..a4ee324f3fb --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/via/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2024 customMK +// 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_C, KC_V, KC_VOLU, KC_VOLD, KC_DEL, + KC_LCTL, KC_PGUP, KC_SPC, KC_PGDN, MO(1) + ) +}; diff --git a/keyboards/custommk/cmk11/keymaps/via/rules.mk b/keyboards/custommk/cmk11/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/cmk11/mcuconf.h b/keyboards/custommk/cmk11/mcuconf.h new file mode 100644 index 00000000000..8151abdcba3 --- /dev/null +++ b/keyboards/custommk/cmk11/mcuconf.h @@ -0,0 +1,31 @@ +/* Copyright 2024 customMK + * + * 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 . + */ + +#pragma once + +#include_next + +// Used for audio +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +// Used for FRAM +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +// Used for RGB matrix +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE \ No newline at end of file diff --git a/keyboards/custommk/cmk11/readme.md b/keyboards/custommk/cmk11/readme.md new file mode 100644 index 00000000000..961261ac664 --- /dev/null +++ b/keyboards/custommk/cmk11/readme.md @@ -0,0 +1,27 @@ +# CMK11 + +![cmk11](https://i.imgur.com/y8MEwXYh.jpeg) + +CMK11 supports eleven 1u keys (or eight 1u keys and one 3u key). The PCB is fully compatible with the Cary Works C11 macropad. + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: CMK11 +* Hardware Availability: [customMK](https://shop.custommk.com/products/cmk11) + +Make example for this keyboard (after setting up your build environment): + + make custommk/cmk11:default + +Flashing example for this keyboard: + + make custommk/cmk11: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 (the key in the top left corner) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/custommk/cmk11/rules.mk b/keyboards/custommk/cmk11/rules.mk new file mode 100644 index 00000000000..72f75f4367e --- /dev/null +++ b/keyboards/custommk/cmk11/rules.mk @@ -0,0 +1 @@ +AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/era/sirind/brick65/info.json b/keyboards/era/sirind/brick65/info.json new file mode 100644 index 00000000000..3d35bc0d98f --- /dev/null +++ b/keyboards/era/sirind/brick65/info.json @@ -0,0 +1,201 @@ +{ + "manufacturer": "SR industry", + "keyboard_name": "Brick65", + "maintainer": "Syryan", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "C6", + "on_state": 0, + "scroll_lock": "B6" + }, + "matrix_pins": { + "cols": ["B7", "D4", "F1", "D5", "F4", "D3", "F5", "D2", "F6", "D1", "F7", "D0", "C7", "B3", "B1", "B2"], + "rows": ["D6", "D7", "B4", "B5", "F0"] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "animations": { + "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, + "multisplash": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "raindrops": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_simple": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 210, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 197, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 181, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 165, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 149, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 133, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 117, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 101, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 30, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 46, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 62, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 78, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 94, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 110, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 126, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 142, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 158, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 174, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 190, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 206, "y": 32, "flags": 4}, + {"matrix": [3, 14], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 197, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 38, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 78, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 104, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 200, + "val_steps": 20 + }, + "url": "https://srind.mysoho.com/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0005", + "vid": "0x5943" + }, + "ws2812": { + "pin": "B0" + }, + "layouts": { + "LAYOUT": { + "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": [0, 15], "x": 15.25, "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.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 4, "y": 4.25, "w": 2.75}, + {"matrix": [4, 7], "x": 6.75, "y": 4.25, "w": 1.25}, + {"matrix": [4, 9], "x": 8, "y": 4.25, "w": 2.25}, + {"matrix": [4, 10], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/brick65/keymaps/default/keymap.c b/keyboards/era/sirind/brick65/keymaps/default/keymap.c new file mode 100644 index 00000000000..f77a7aabff0 --- /dev/null +++ b/keyboards/era/sirind/brick65/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 PyuPyu + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_DEL, + 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_SCRL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_TILD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/era/sirind/brick65/keymaps/via/keymap.c b/keyboards/era/sirind/brick65/keymaps/via/keymap.c new file mode 100644 index 00000000000..0c895c84e41 --- /dev/null +++ b/keyboards/era/sirind/brick65/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2018-2024 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_DEL, + 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_LSCR, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_TILD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/era/sirind/brick65/keymaps/via/rules.mk b/keyboards/era/sirind/brick65/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/era/sirind/brick65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/era/sirind/brick65/readme.md b/keyboards/era/sirind/brick65/readme.md new file mode 100644 index 00000000000..8d8f07d7c52 --- /dev/null +++ b/keyboards/era/sirind/brick65/readme.md @@ -0,0 +1,26 @@ +# Brick65 + +![Brick65](https://i.imgur.com/qyQYWfjh.jpg) + +Brick65 is a 65% ANSI layout Custom Keyboard + +* Keyboard Maintainer: Pyupyu +* Hardware Supported: Brick65 +* Hardware Availability: Syryan + +## How to enter Bootloader Mode + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/brick65:default + +Flashing example for this keyboard: + + make era/sirind/brick65: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). diff --git a/keyboards/era/sirind/brick65/rules.mk b/keyboards/era/sirind/brick65/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/era/sirind/brick65/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/galile0/glyphkbd_v2/info.json b/keyboards/galile0/glyphkbd_v2/info.json new file mode 100644 index 00000000000..664b4c491ff --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/info.json @@ -0,0 +1,104 @@ +{ + "manufacturer": "galile0", + "keyboard_name": "glyphkbd_v2", + "maintainer": "galile0-designs", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B1", "A1", "B0", "A0", "C5", "C3", "C4", "C2", "A7", "C1", "A6", "C0", "A5", "B12", "B13", "B14"], + "rows": ["B10", "B2", "A2", "F0", "F1"] + }, + "processor": "STM32F072", + "url": "https://github.com/galile0-designs/glyphkbd", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4744" + }, + "layouts": { + "LAYOUT": { + "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.5, "y": 0}, + {"matrix": [0, 14], "x": 14.5, "y": 0}, + {"matrix": [0, 15], "x": 15.5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1}, + {"matrix": [1, 14], "x": 14.5, "y": 1}, + {"matrix": [1, 15], "x": 15.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"matrix": [2, 12], "x": 12, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + {"matrix": [3, 12], "x": 12, "y": 3}, + {"matrix": [3, 14], "x": 14.5, "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, "w": 2}, + {"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.5, "y": 4}, + {"matrix": [4, 14], "x": 14.5, "y": 4}, + {"matrix": [4, 15], "x": 15.5, "y": 4} + ] + } + } +} diff --git a/keyboards/galile0/glyphkbd_v2/keymaps/default/keymap.c b/keyboards/galile0/glyphkbd_v2/keymaps/default/keymap.c new file mode 100644 index 00000000000..15ad99b61fb --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/keymaps/default/keymap.c @@ -0,0 +1,105 @@ +/* + *Copyright 2024 Fabian Leijström (@galile0-designs) + * + *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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ BS │ │ INS │HOME │PGUP │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ DEL │ END │PGDN │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ENTER│ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │SHIFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │SHIFT│ │ UP │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │CTRL │ │ SYS │ ALT │LOWER│ SPACE │SPACE│RAISE│ ALT │ SYS │ │CTRL │ │LEFT │DOWN │RIGHT│ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [0] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + 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_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_NO, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_RALT, KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* FUNCTION LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │PAUSE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ PRT │ │ │ + * │PLAY │ │ │ │ │ │ │ │ │ │ │ │ │ │ SCR │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [1] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + KC_MPLY, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + + /* SYMBOLS LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ ` │ = │ + │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [2] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_GRV, KC_EQL, KC_PPLS, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/galile0/glyphkbd_v2/keymaps/via/keymap.c b/keyboards/galile0/glyphkbd_v2/keymaps/via/keymap.c new file mode 100644 index 00000000000..15ad99b61fb --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/keymaps/via/keymap.c @@ -0,0 +1,105 @@ +/* + *Copyright 2024 Fabian Leijström (@galile0-designs) + * + *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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ BS │ │ INS │HOME │PGUP │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ DEL │ END │PGDN │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ENTER│ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │SHIFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │SHIFT│ │ UP │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │CTRL │ │ SYS │ ALT │LOWER│ SPACE │SPACE│RAISE│ ALT │ SYS │ │CTRL │ │LEFT │DOWN │RIGHT│ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [0] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + 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_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_NO, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_RALT, KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* FUNCTION LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │PAUSE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ PRT │ │ │ + * │PLAY │ │ │ │ │ │ │ │ │ │ │ │ │ │ SCR │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [1] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + KC_MPLY, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + + /* SYMBOLS LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ ` │ = │ + │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [2] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_GRV, KC_EQL, KC_PPLS, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/galile0/glyphkbd_v2/keymaps/via/rules.mk b/keyboards/galile0/glyphkbd_v2/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/galile0/glyphkbd_v2/readme.md b/keyboards/galile0/glyphkbd_v2/readme.md new file mode 100644 index 00000000000..378238c38d4 --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/readme.md @@ -0,0 +1,27 @@ +# glyphkbd_v2 + +![glyphkbd_v2](https://i.imgur.com/9PxLaPlh.jpeg) + +5x13 ortholinear plus TKL nav and arrow clusters. + +* Keyboard Maintainer: [Fabian Leijström](https://github.com/galile0-designs) +* Hardware Supported: glyphkbd_v2 PCB +* Hardware Availability: [Github Repository](https://github.com/galile0-designs/glyphkbd) + +Make example for this keyboard (after setting up your build environment): + + make galile0/glyphkbd_v2:default + +Flashing example for this keyboard: + + make galile0/glyphkbd_v2: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/galile0/glyphkbd_v2/rules.mk b/keyboards/galile0/glyphkbd_v2/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/geistmaschine/geist/info.json b/keyboards/geistmaschine/geist/info.json index 571740b7163..079dd8d6d9a 100644 --- a/keyboards/geistmaschine/geist/info.json +++ b/keyboards/geistmaschine/geist/info.json @@ -9,7 +9,7 @@ "command": false, "console": false, "extrakey": true, - "mousekey": false, + "mousekey": true, "nkro": true, "encoder": true }, diff --git a/keyboards/geistmaschine/geist/keymaps/default/keymap.c b/keyboards/geistmaschine/geist/keymaps/default/keymap.c index 6d96c572ba3..19b4ba2210d 100644 --- a/keyboards/geistmaschine/geist/keymaps/default/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/default/keymap.c @@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TRNS, KC_DEL, + LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_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_ENT, KC_PGUP, 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_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, LT(1, KC_RGUI), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_MPLY, 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_TRNS, KC_INS, + KC_MPLY, 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_DEL, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_ON, NK_OFF, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, diff --git a/keyboards/geistmaschine/geist/keymaps/via/keymap.c b/keyboards/geistmaschine/geist/keymaps/via/keymap.c index 068f500fb01..f4d07036bda 100644 --- a/keyboards/geistmaschine/geist/keymaps/via/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/via/keymap.c @@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TRNS, KC_DEL, + LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_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_ENT, KC_PGUP, 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_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, LT(1, KC_RGUI), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_MPLY, 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_TRNS, KC_INS, + KC_MPLY, 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_DEL, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_ON, NK_OFF, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, diff --git a/keyboards/gray_studio/aero75/info.json b/keyboards/gray_studio/aero75/info.json index 06d11e8467b..f6de1b9f966 100644 --- a/keyboards/gray_studio/aero75/info.json +++ b/keyboards/gray_studio/aero75/info.json @@ -57,15 +57,15 @@ {"label": "F3", "matrix": [0, 3], "x": 3.5, "y": 0}, {"label": "F4", "matrix": [0, 4], "x": 4.5, "y": 0}, - {"label": "F5", "matrix": [0, 5], "x": 6, "y": 0}, - {"label": "F6", "matrix": [0, 6], "x": 7, "y": 0}, - {"label": "F7", "matrix": [0, 7], "x": 8, "y": 0}, - {"label": "F8", "matrix": [0, 8], "x": 9, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.75, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.75, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.75, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.75, "y": 0}, - {"label": "F9", "matrix": [0, 9], "x": 10.5, "y": 0}, - {"label": "F10", "matrix": [0, 10], "x": 11.5, "y": 0}, - {"label": "F11", "matrix": [0, 11], "x": 12.5, "y": 0}, - {"label": "F12", "matrix": [0, 13], "x": 13.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 10, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 13, "y": 0}, {"label": "PrtSc", "matrix": [0, 15], "x": 15, "y": 0}, diff --git a/keyboards/gray_studio/aero75/matrix_diagram.md b/keyboards/gray_studio/aero75/matrix_diagram.md index 64bb3af675c..d777c6cd447 100644 --- a/keyboards/gray_studio/aero75/matrix_diagram.md +++ b/keyboards/gray_studio/aero75/matrix_diagram.md @@ -1,9 +1,9 @@ # Matrix Diagram for GrayStudio Aero 75 Hotswap ``` -┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ -│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0D │ │0F │ -└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ +┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┐ +│00 │ │01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0A │0B │0D │ │0F │ +└───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┘ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1F │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ diff --git a/keyboards/handwired/jotlily60/info.json b/keyboards/handwired/jotlily60/info.json new file mode 100644 index 00000000000..65faa354a51 --- /dev/null +++ b/keyboards/handwired/jotlily60/info.json @@ -0,0 +1,104 @@ +{ + "manufacturer": "Jotix", + "keyboard_name": "jotlily60", + "maintainer" : "jotix", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/jotlily60", + "usb": { + "vid": "0x4A4F", + "pid": "0x2332", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "D0", "D4", "C6", "D7", "E6", "B4", "B5" ], + "rows": [ "F7", "B1", "B3", "B2", "B6" ], + }, + "split": { + "enabled": true, + "soft_serial_pin": "D3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.5}, + {"matrix": [0, 1], "x": 1, "y": 0.5}, + {"matrix": [0, 2], "x": 2, "y": 0.25}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + + {"matrix": [5, 5], "x": 10, "y": 0.25}, + {"matrix": [5, 4], "x": 11, "y": 0.25}, + {"matrix": [5, 3], "x": 12, "y": 0}, + {"matrix": [5, 2], "x": 13, "y": 0.25}, + {"matrix": [5, 1], "x": 14, "y": 0.5}, + {"matrix": [5, 0], "x": 15, "y": 0.5}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + + {"matrix": [6, 5], "x": 10, "y": 1.25}, + {"matrix": [6, 4], "x": 11, "y": 1.25}, + {"matrix": [6, 3], "x": 12, "y": 1}, + {"matrix": [6, 2], "x": 13, "y": 1.25}, + {"matrix": [6, 1], "x": 14, "y": 1.5}, + {"matrix": [6, 0], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.5}, + {"matrix": [2, 2], "x": 2, "y": 2.25}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.25}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + + {"matrix": [7, 5], "x": 10, "y": 2.25}, + {"matrix": [7, 4], "x": 11, "y": 2.25}, + {"matrix": [7, 3], "x": 12, "y": 2}, + {"matrix": [7, 2], "x": 13, "y": 2.25}, + {"matrix": [7, 1], "x": 14, "y": 2.5}, + {"matrix": [7, 0], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.5}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.25}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [3, 6], "x": 6, "y": 3.5}, + + {"matrix": [8, 6], "x": 9, "y": 3.5}, + {"matrix": [8, 5], "x": 10, "y": 3.25}, + {"matrix": [8, 4], "x": 11, "y": 3.25}, + {"matrix": [8, 3], "x": 12, "y": 3}, + {"matrix": [8, 2], "x": 13, "y": 3.25}, + {"matrix": [8, 1], "x": 14, "y": 3.5}, + {"matrix": [8, 0], "x": 15, "y": 3.5}, + + {"matrix": [4, 2], "x": 2, "y": 4.25}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4.25}, + {"matrix": [4, 5], "x": 5, "y": 4.5}, + {"matrix": [4, 6], "x": 6, "y": 4.75}, + + {"matrix": [9, 6], "x": 9, "y": 4.75}, + {"matrix": [9, 5], "x": 10, "y": 4.5}, + {"matrix": [9, 4], "x": 11, "y": 4.25}, + {"matrix": [9, 3], "x": 12, "y": 4}, + {"matrix": [9, 2], "x": 13, "y": 4.25} + ] + } + } +} diff --git a/keyboards/handwired/jotlily60/keymaps/default/keymap.c b/keyboards/handwired/jotlily60/keymaps/default/keymap.c new file mode 100644 index 00000000000..bccd8225770 --- /dev/null +++ b/keyboards/handwired/jotlily60/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +enum layers { + _QWERTY, + _FN, + _ADJUST +}; + +#define FN MO(_FN) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + * +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + * | esc | Q | W | E | R | T | | Y | U | I | O | P | tab | + * +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + * | caps | A | S | D | F | G | | H | J | K | L | ; | ' | + * +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + * | shift | Z | X | C | V | B | { | } | N | M | , | . | / | enter | + * +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + * | alt | super | ctrl | space | fn | fn | bspc | del | meh | ralt | + * +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + */ +[_QWERTY] = LAYOUT ( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB, + 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_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,KC_RCBR,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT, + KC_LALT,KC_LGUI,KC_LCTL,KC_SPC, FN, FN, KC_BSPC,KC_DEL, KC_MEH, KC_RALT +), + +/* +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + * | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | _ | + * +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + * |adjust | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | | + * +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + * | | F11 | F12 | F13 | F14 | F15 | | left | down | up | right | | | " | + * +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + * | | vol- | mute | vol+ | ` | ~ | [ | ] | home | end | pgup | pgdn | \ | | + * +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + * | | | | | | | | | | | + * +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + */ +[_FN] = LAYOUT ( + KC_PLUS,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_UNDS, + ADJUST, 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, KC_F14, KC_F15, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,KC_BSLS,KC_DQUO, + _______,KC_VOLD,KC_MUTE,KC_VOLU,KC_GRV, KC_TILD,KC_LBRC,KC_RBRC,KC_HOME,KC_END, KC_PGUP,KC_PGDN,KC_PIPE,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +), + +[_ADJUST] = LAYOUT ( + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,QK_BOOT,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,DB_TOGG,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +), +}; + diff --git a/keyboards/handwired/jotlily60/keymaps/via/keymap.c b/keyboards/handwired/jotlily60/keymaps/via/keymap.c new file mode 100644 index 00000000000..d498a72cf6f --- /dev/null +++ b/keyboards/handwired/jotlily60/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT ( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB, + 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_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,KC_RCBR,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT, + KC_LALT,KC_LGUI,KC_LCTL,KC_SPC, MO(1), MO(1), KC_BSPC,KC_DEL, KC_MEH, KC_RALT +), + +[1] = LAYOUT ( + KC_PLUS,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_UNDS, + MO(2), 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, KC_F14, KC_F15, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,KC_BSLS,KC_DQUO, + _______,KC_VOLD,KC_MUTE,KC_VOLU,KC_GRV, KC_TILD,KC_LBRC,KC_RBRC,KC_HOME,KC_END, KC_PGUP,KC_PGDN,KC_PIPE,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +), + +[2] = LAYOUT ( + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,QK_BOOT,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +) +}; diff --git a/keyboards/handwired/jotlily60/keymaps/via/rules.mk b/keyboards/handwired/jotlily60/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/handwired/jotlily60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/jotlily60/readme.md b/keyboards/handwired/jotlily60/readme.md new file mode 100644 index 00000000000..d0a8750d0ef --- /dev/null +++ b/keyboards/handwired/jotlily60/readme.md @@ -0,0 +1,55 @@ +# jotlily60 + +![jotlily60](https://i.imgur.com/I68WGmJh.jpg) + +A split keyboard kit made by jotix, inspired in the Lily58 keyboard. + +* Keyboard Maintainer: [jotix](https://github.com/jotix) +* Hardware Supported: Arduino Pro Micro + +--- + +### Arduino Pro Micro Pinout + +| Rows | 0 | 1 | 2 | 3 | 4 | +|-------------|----|----|----|----|----| +| Arduino pin | A0 | 15 | 14 | 16 | 10 | +| QMK pin | F7 | B1 | B3 | B2 | B6 | + +| Columns | 0 | 1 | 2 | 3 | 4 | 5 | 6 | +|-------------|----|----|----|----|----|----|----| +| Arduino pin | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| QMK pin | D0 | D4 | C6 | D7 | E6 | B4 | B5 | + +| Serial | | +|-------------|-----| +| Arduino pin | TX0 | +| QMK pin | D3 | + +--- + +### Compiling the Firmware + +Compile example for this keyboard (after setting up your build environment): + + qmk compile -kb handwired/jotlily60 -km default + +--- + +### The Defaukt Keymap + + +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + | esc | Q | W | E | R | T | | Y | U | I | O | P | tab | + +-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+ + | caps | A | S | D | F | G | | H | J | K | L | ; | ' | + +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + | shift | Z | X | C | V | B | { | } | N | M | , | . | / | enter | + +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + | alt | super | ctrl | space | fn | fn | bspc | del | meh | ralt | + +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ + +--- + +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). diff --git a/keyboards/handwired/jotlily60/rules.mk b/keyboards/handwired/jotlily60/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/jotlily60/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/petruziamini/info.json b/keyboards/handwired/petruziamini/info.json new file mode 100644 index 00000000000..dcd60f2dc7a --- /dev/null +++ b/keyboards/handwired/petruziamini/info.json @@ -0,0 +1,66 @@ +{ + "manufacturer": "LLLKST", + "keyboard_name": "PetruziaMini", + "maintainer": "LLLKST", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D7", "C6", "D4", "D0", "D1", "F4", "F5", "F6", "F7", "B1"], + "rows": ["B4", "E6", "B3", "B2"] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "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": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/handwired/petruziamini/keymaps/default/keymap.c b/keyboards/handwired/petruziamini/keymaps/default/keymap.c new file mode 100644 index 00000000000..c0972785d42 --- /dev/null +++ b/keyboards/handwired/petruziamini/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ │ D │ │ │ G │ │ I │ J │ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, + KC_A, KC_B, KC_C, KC_D, LT(1, KC_E), KC_F + ), + [1] = LAYOUT( + KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO +) +}; diff --git a/keyboards/handwired/petruziamini/readme.md b/keyboards/handwired/petruziamini/readme.md new file mode 100644 index 00000000000..1b303c49c63 --- /dev/null +++ b/keyboards/handwired/petruziamini/readme.md @@ -0,0 +1,26 @@ +# PetruziaMini + +![PetruziaMini](https://i.imgur.com/uk2BSazh.jpeg) + +36 key ortholinear keyboard intended to be mapped as a split keyboard. + +* Keyboard Maintainer: [LLLKST](https://github.com/LLLKST) +* Hardware Supported: *promicro compatible controller* +* Hardware Availability: [Aliexpress Pro Micro](https://www.aliexpress.us/item/3256805781371913.html) + + +Make example for this keyboard (after setting up your build environment): + + make handwired/petruziamini:default + +Flashing example for this keyboard: + + make handwired/petruziamini: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 with: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` (3,5) + (0,1) in the matrix \ No newline at end of file diff --git a/keyboards/handwired/petruziamini/rules.mk b/keyboards/handwired/petruziamini/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/petruziamini/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/technicpad/info.json b/keyboards/handwired/technicpad/info.json new file mode 100644 index 00000000000..92a0be7f27a --- /dev/null +++ b/keyboards/handwired/technicpad/info.json @@ -0,0 +1,38 @@ +{ + "manufacturer": "nwhirschfeld", + "keyboard_name": "TechnicPad", + "maintainer": "nwhirschfeld", + "build": { + "lto": true + }, + "development_board": "promicro", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "direct": [ + ["D1"], + ["D0"], + ["D4"], + ["C6"] + ] + }, + "url": "https://github.com/nwhirschfeld/TechnicPad", + "usb": { + "device_version": "0.0.1", + "pid": "0x5450", + "vid": "0x4E57" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "D1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "D0", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "D4", "matrix": [2, 0], "x": 1, "y": 0}, + {"label": "C6", "matrix": [3, 0], "x": 1, "y": 1} + ] + } + } +} diff --git a/keyboards/handwired/technicpad/keymaps/default/keymap.json b/keyboards/handwired/technicpad/keymaps/default/keymap.json new file mode 100644 index 00000000000..6d544a59466 --- /dev/null +++ b/keyboards/handwired/technicpad/keymaps/default/keymap.json @@ -0,0 +1,8 @@ +{ + "keyboard": "technicpad", + "keymap": "default", + "layers": [ + ["KC_A", "KC_B", "KC_C", "KC_D"] + ], + "layout": "LAYOUT" +} diff --git a/keyboards/handwired/technicpad/keymaps/via/keymap.json b/keyboards/handwired/technicpad/keymaps/via/keymap.json new file mode 100644 index 00000000000..845fff0dfba --- /dev/null +++ b/keyboards/handwired/technicpad/keymaps/via/keymap.json @@ -0,0 +1,13 @@ +{ + "keyboard": "technicpad", + "keymap": "via", + "config": { + "features": { + "via": true + } + }, + "layers": [ + ["KC_A", "KC_B", "KC_C", "KC_D"] + ], + "layout": "LAYOUT" +} diff --git a/keyboards/handwired/technicpad/readme.md b/keyboards/handwired/technicpad/readme.md new file mode 100644 index 00000000000..3ca28c984aa --- /dev/null +++ b/keyboards/handwired/technicpad/readme.md @@ -0,0 +1,27 @@ +# TechnicPad + +![TechnicPad](https://i.imgur.com/LPD0KSL.jpg) + +A 4% (2x2) macropad, that is compatible to technic building blocks. + +* Keyboard Maintainer: [Niclas Hirschfeld](https://github.com/nwhirschfeld) +* Hardware Supported: Pro Micro boards +* Hardware Availability: for now TechnicPad is handwired and uses an Arduino pro micro. [TechnicPad repository](https://github.com/nwhirschfeld/TechnicPad) + +Make example for this keyboard (after setting up your build environment): + + make handwired/technicpad:default + +Flashing example for this keyboard: + + make handwired/technicpad: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 upper left key and plug in the keyboard +* **Physical reset**: Short the _RST_ and _GND_ pins of the PCB +* **Keycode in layout**: Press the key mapped to QK_BOOT if it is available diff --git a/keyboards/handwired/technicpad/rules.mk b/keyboards/handwired/technicpad/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/technicpad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/jidohun/km113/config.h b/keyboards/jidohun/km113/config.h new file mode 100644 index 00000000000..aaf717eca42 --- /dev/null +++ b/keyboards/jidohun/km113/config.h @@ -0,0 +1,15 @@ +// Copyright 2023 wind (@yelishang) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* SPI Config */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +/* SPI Flash Config */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 + diff --git a/keyboards/jidohun/km113/halconf.h b/keyboards/jidohun/km113/halconf.h new file mode 100644 index 00000000000..6ff2f1ec677 --- /dev/null +++ b/keyboards/jidohun/km113/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2023 wind (@yelishang) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/jidohun/km113/info.json b/keyboards/jidohun/km113/info.json new file mode 100644 index 00000000000..05fb901d4c6 --- /dev/null +++ b/keyboards/jidohun/km113/info.json @@ -0,0 +1,269 @@ +{ + "manufacturer": "JIDOHUN", + "keyboard_name": "KM113", + "maintainer": "wind", + "bootloader": "wb32-dfu", + "diode_direction": "ROW2COL", + "eeprom": { + "wear_leveling": { + "backing_size": 4096, + "driver": "spi_flash" + } + }, + "encoder": { + "rotary": [ + {"pin_a": "A10", "pin_b": "A9"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C0", "C1", "C2", "C3", "A5", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9"], + "rows": ["A0", "A1", "A2", "A3", "A4", "C13"] + }, + "processor": "WB32FQ95", + "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, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [5, 8], "x": 119, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 134, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 149, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 164, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 179, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 194, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 224, "y": 51, "flags": 4}, + {"matrix": [4, 14], "x": 209, "y": 51, "flags": 4}, + {"matrix": [4, 13], "x": 194, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 179, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 164, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 149, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 119, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 105, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 90, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 75, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 60, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 45, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 30, "y": 51, "flags": 4}, + {"matrix": [3, 1], "x": 15, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 30, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 119, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 134, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 164, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 38, "flags": 4}, + {"matrix": [3, 14], "x": 209, "y": 38, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 209, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 194, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 179, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 164, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 149, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 134, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 119, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 105, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 90, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 60, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 15, "y": 26, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 134, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 149, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 164, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 179, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 194, "y": 13, "flags": 4}, + {"matrix": [0, 13], "x": 194, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 15, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 30, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 75, "y": 64, "flags": 4} + ], + "max_brightness": 108 + }, + "url": "http://www.frscn.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x3671", + "suspend_wakeup_delay": 1000, + "vid": "0x3555" + }, + "ws2812": { + "pin": "A8" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 17, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 16.5, "y": 2}, + {"matrix": [2, 15], "x": 17.5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 16.5, "y": 3}, + {"matrix": [3, 15], "x": 17.5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4.25}, + {"matrix": [4, 14], "x": 16.5, "y": 4}, + {"matrix": [4, 15], "x": 17.5, "y": 4}, + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 8], "x": 10, "y": 5}, + {"matrix": [5, 9], "x": 11, "y": 5}, + {"matrix": [5, 10], "x": 12, "y": 5}, + {"matrix": [5, 11], "x": 13.25, "y": 5.25}, + {"matrix": [5, 12], "x": 14.25, "y": 5.25}, + {"matrix": [5, 13], "x": 15.25, "y": 5.25}, + {"matrix": [5, 14], "x": 16.5, "y": 5}, + {"matrix": [5, 15], "x": 17.5, "y": 5} + ] + } + } +} diff --git a/keyboards/jidohun/km113/keymaps/default/keymap.c b/keyboards/jidohun/km113/keymaps/default/keymap.c new file mode 100644 index 00000000000..088adc8742c --- /dev/null +++ b/keyboards/jidohun/km113/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2023 wind (@yelishang) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_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_MUTE, + 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, TO(0), KC_HOME, + 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, TO(1), KC_END, + 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, TO(2), KC_PGUP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, TO(3), KC_PGDN + ), + + [1] = LAYOUT( + EE_CLR, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, _______, _______, + _______, _______, _______, _______, RGB_MOD, _______, _______, KC_PSCR, KC_PGUP, KC_DEL, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGDN, KC_END, _______, _______, _______, TO(1), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, TO(2), _______, + _______, GU_TOGG, _______, RGB_TOG, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI,TO(3), _______ + ), + + [2] = 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_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_MUTE, + 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, TO(0), KC_HOME, + 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, TO(1), KC_END, + 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, TO(2), KC_PGUP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, TO(3), KC_PGDN + ), + + [3] = 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_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_MUTE, + 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, TO(0), _______, + 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, TO(1), _______, + 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, TO(2), _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, TO(3), _______ + ) +}; diff --git a/keyboards/jidohun/km113/keymaps/via/keymap.c b/keyboards/jidohun/km113/keymaps/via/keymap.c new file mode 100644 index 00000000000..b87dc22614d --- /dev/null +++ b/keyboards/jidohun/km113/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +// Copyright 2023 wind (@yelishang) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_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_MUTE, + 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, TO(0), KC_HOME, + 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, TO(1), KC_END, + 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, TO(2), KC_PGUP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, TO(3), KC_PGDN + ), + + [1] = LAYOUT( + EE_CLR, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, _______, _______, + _______, _______, _______, _______, RGB_MOD, _______, _______, KC_PSCR, KC_PGUP, KC_DEL, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGDN, KC_END, _______, _______, _______, TO(1), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, TO(2), _______, + _______, GU_TOGG, _______, RGB_TOG, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI,TO(3), _______ + ), + + [2] = 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_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_MUTE, + 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, TO(0), KC_HOME, + 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, TO(1), KC_END, + 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, TO(2), KC_PGUP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, TO(3), KC_PGDN + ), + + [3] = 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_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_MUTE, + 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, TO(0), _______, + 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, TO(1), _______, + 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, TO(2), _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, TO(3), _______ + ) +}; + +/* encoder; start */ +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/jidohun/km113/keymaps/via/rules.mk b/keyboards/jidohun/km113/keymaps/via/rules.mk new file mode 100644 index 00000000000..f1adcab005e --- /dev/null +++ b/keyboards/jidohun/km113/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/jidohun/km113/mcuconf.h b/keyboards/jidohun/km113/mcuconf.h new file mode 100644 index 00000000000..bdf256bc1a1 --- /dev/null +++ b/keyboards/jidohun/km113/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 wind (@yelishang) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE diff --git a/keyboards/jidohun/km113/readme.md b/keyboards/jidohun/km113/readme.md new file mode 100644 index 00000000000..0951a474c0a --- /dev/null +++ b/keyboards/jidohun/km113/readme.md @@ -0,0 +1,23 @@ + +# KM113 + +* Keyboard Maintainer: [wind](https://github.com/yelishang) +* Hardware Supported: KM113 PCB + +Make example for this keyboard (after setting up your build environment): + + make jidohun/km113:default + +Flashing example for this keyboard: + + make jidohun/km113: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/jidohun/km113/rules.mk b/keyboards/jidohun/km113/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/jidohun/km113/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kb_elmo/aek2_usb/info.json b/keyboards/kb_elmo/aek2_usb/info.json index 8a091a494c1..884390278d1 100644 --- a/keyboards/kb_elmo/aek2_usb/info.json +++ b/keyboards/kb_elmo/aek2_usb/info.json @@ -134,22 +134,22 @@ {"matrix": [7, 11], "x": 19, "y": 5}, {"matrix": [6, 10], "x": 20, "y": 5}, {"matrix": [6, 9], "x": 21, "y": 5}, - {"matrix": [5, 0], "x": 22, "y": 5, "h": 2}, - - {"matrix": [5, 1], "x": 0, "y": 6, "w": 1.5}, - {"matrix": [5, 2], "x": 1.5, "y": 6, "w": 1.25}, - {"matrix": [5, 5], "x": 2.75, "y": 6, "w": 1.5}, - {"matrix": [5, 10], "x": 4.25, "y": 6, "w": 6.5}, - {"matrix": [5, 11], "x": 10.75, "y": 6, "w": 1.5}, - {"matrix": [5, 13], "x": 12.25, "y": 6, "w": 1.25}, - {"matrix": [5, 7], "x": 13.5, "y": 6, "w": 1.5}, - - {"matrix": [5, 9], "x": 15.5, "y": 6}, - {"matrix": [5, 6], "x": 16.5, "y": 6}, - {"matrix": [7, 10], "x": 17.5, "y": 6}, - - {"matrix": [7, 9], "x": 19, "y": 6, "w": 2}, - {"matrix": [7, 8], "x": 21, "y": 6} + + {"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.25}, + {"matrix": [5, 2], "x": 2.75, "y": 6, "w": 1.5}, + {"matrix": [5, 5], "x": 4.25, "y": 6, "w": 6.5}, + {"matrix": [5, 10], "x": 10.75, "y": 6, "w": 1.5}, + {"matrix": [5, 11], "x": 12.25, "y": 6, "w": 1.25}, + {"matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + + {"matrix": [5, 7], "x": 15.5, "y": 6}, + {"matrix": [5, 9], "x": 16.5, "y": 6}, + {"matrix": [5, 6], "x": 17.5, "y": 6}, + + {"matrix": [7, 10], "x": 19, "y": 6, "w": 2}, + {"matrix": [7, 9], "x": 21, "y": 6}, + {"matrix": [7, 8], "x": 22, "y": 5, "h": 2} ] } } diff --git a/keyboards/kb_elmo/bm42/info.json b/keyboards/kb_elmo/bm42/info.json new file mode 100644 index 00000000000..a06019ca0bc --- /dev/null +++ b/keyboards/kb_elmo/bm42/info.json @@ -0,0 +1,72 @@ +{ + "manufacturer": "kb_elmo", + "keyboard_name": "BM42", + "url": "https://github.com/kb-elmo/bm42", + "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0xDC9B", + "device_version": "0.0.1" + }, + "processor": "atmega32u2", + "bootloader": "atmel-dfu", + "matrix_pins": { + "cols": ["C5", "D1", "B5", "B4", "B3", "B2", "B1", "B0", "D6", "D5", "D4"], + "rows": ["D2", "D3", "C7", "C6"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "layouts": { + "LAYOUT": { + "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": [3, 10], "x": 11, "y": 0}, + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1, "w": 1.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": [3, 9], "x": 10.75, "y": 2, "w": 1.25}, + {"matrix": [3, 1], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 1.25, "y": 3}, + {"matrix": [3, 3], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3, "w": 2}, + {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 7], "x": 9.75, "y": 3}, + {"matrix": [3, 8], "x": 10.75, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/kb_elmo/bm42/keymaps/default/keymap.c b/keyboards/kb_elmo/bm42/keymaps/default/keymap.c new file mode 100644 index 00000000000..77dac80a1e1 --- /dev/null +++ b/keyboards/kb_elmo/bm42/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 kb-elmo (@kb-elmo) +// 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_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2) + ), + [1] = LAYOUT( + 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_GRV, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/kb_elmo/bm42/keymaps/via/keymap.c b/keyboards/kb_elmo/bm42/keymaps/via/keymap.c new file mode 100644 index 00000000000..77dac80a1e1 --- /dev/null +++ b/keyboards/kb_elmo/bm42/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 kb-elmo (@kb-elmo) +// 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_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2) + ), + [1] = LAYOUT( + 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_GRV, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/kb_elmo/bm42/keymaps/via/rules.mk b/keyboards/kb_elmo/bm42/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/kb_elmo/bm42/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kb_elmo/bm42/readme.md b/keyboards/kb_elmo/bm42/readme.md new file mode 100644 index 00000000000..422d6080c5d --- /dev/null +++ b/keyboards/kb_elmo/bm42/readme.md @@ -0,0 +1,28 @@ +# BM42 + +![BM42](https://i.imgur.com/DljDoaTh.jpeg) + +A simple drop-in replacement PCB for the KPRepublic BM43 keyboard. + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: BM42 rev.1 PCB +* Hardware Availability: [Open source project](https://github.com/kb-elmo/bm42) + +Make example for this keyboard (after setting up your build environment): + + make kb_elmo/bm42:default + +Flashing example for this keyboard: + + make kb_elmo/bm42: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 top left key and plug in the keyboard +* **Physical reset**: Briefly short the two contacts labeled "RESET" on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kb_elmo/bm42/rules.mk b/keyboards/kb_elmo/bm42/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kb_elmo/bm42/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kb_elmo/dizzy40/info.json b/keyboards/kb_elmo/dizzy40/info.json new file mode 100644 index 00000000000..0bac157c443 --- /dev/null +++ b/keyboards/kb_elmo/dizzy40/info.json @@ -0,0 +1,91 @@ +{ + "manufacturer": "kb_elmo", + "keyboard_name": "Dizzy40", + "url": "https://github.com/kb-elmo/dizzy40", + "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x7BB2", + "device_version": "0.0.1" + }, + "processor": "atmega32u2", + "bootloader": "atmel-dfu", + "matrix_pins": { + "cols": ["C6", "C7", "B7", "B6", "B5", "D2", "B1", "B0", "D3", "D4", "D5"], + "rows": ["C4", "C5", "C2", "B2"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgblight": true, + "nkro": false + }, + "rgblight": { + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "B4" + }, + "layouts": { + "LAYOUT": { + "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": [3, 10], "x": 11, "y": 0}, + {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1, "w": 1.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": [3, 9], "x": 10.75, "y": 2, "w": 1.25}, + {"matrix": [3, 1], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 1.25, "y": 3}, + {"matrix": [3, 3], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3, "w": 2}, + {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 7], "x": 9.75, "y": 3}, + {"matrix": [3, 8], "x": 10.75, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/kb_elmo/dizzy40/keymaps/default/keymap.c b/keyboards/kb_elmo/dizzy40/keymaps/default/keymap.c new file mode 100644 index 00000000000..77dac80a1e1 --- /dev/null +++ b/keyboards/kb_elmo/dizzy40/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 kb-elmo (@kb-elmo) +// 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_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2) + ), + [1] = LAYOUT( + 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_GRV, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/kb_elmo/dizzy40/keymaps/via/keymap.c b/keyboards/kb_elmo/dizzy40/keymaps/via/keymap.c new file mode 100644 index 00000000000..77dac80a1e1 --- /dev/null +++ b/keyboards/kb_elmo/dizzy40/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 kb-elmo (@kb-elmo) +// 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_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2) + ), + [1] = LAYOUT( + 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_GRV, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/kb_elmo/dizzy40/keymaps/via/rules.mk b/keyboards/kb_elmo/dizzy40/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/kb_elmo/dizzy40/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kb_elmo/dizzy40/readme.md b/keyboards/kb_elmo/dizzy40/readme.md new file mode 100644 index 00000000000..0fb02c36ae7 --- /dev/null +++ b/keyboards/kb_elmo/dizzy40/readme.md @@ -0,0 +1,28 @@ +# Dizzy40 + +![Dizzy40](https://i.imgur.com/TNXHaUGh.jpeg) + +A simple drop-in replacement PCB for the KPRepublic Daisy40 keyboard. + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Dizzy40 rev.1 PCB +* Hardware Availability: [Open source project](https://github.com/kb-elmo/dizzy40) + +Make example for this keyboard (after setting up your build environment): + + make kb_elmo/dizzy40:default + +Flashing example for this keyboard: + + make kb_elmo/dizzy40: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 top left key and plug in the keyboard +* **Physical reset**: Briefly short the two contacts labeled "RESET" on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kb_elmo/dizzy40/rules.mk b/keyboards/kb_elmo/dizzy40/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kb_elmo/dizzy40/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kb_elmo/eliza/info.json b/keyboards/kb_elmo/eliza/info.json new file mode 100644 index 00000000000..37c12b5ca97 --- /dev/null +++ b/keyboards/kb_elmo/eliza/info.json @@ -0,0 +1,71 @@ +{ + "manufacturer": "kb_elmo", + "keyboard_name": "Eliza", + "url": "https://github.com/kb-elmo/eliza", + "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0xC762", + "device_version": "0.0.1" + }, + "processor": "atmega32u2", + "bootloader": "atmel-dfu", + "matrix_pins": { + "cols": ["C7", "B7", "B6", "B5", "B4", "B3", "D1", "B1", "B0", "D6", "D5", "D4"], + "rows": ["D0", "D2", "B2", "D3"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0.35, "y": 0}, + {"matrix": [0, 1], "x": 1.35, "y": 0}, + {"matrix": [0, 2], "x": 2.65, "y": 0}, + {"matrix": [0, 3], "x": 3.65, "y": 0}, + {"matrix": [0, 4], "x": 4.65, "y": 0}, + {"matrix": [0, 5], "x": 5.65, "y": 0}, + {"matrix": [0, 6], "x": 7.9, "y": 0}, + {"matrix": [0, 7], "x": 8.9, "y": 0}, + {"matrix": [0, 8], "x": 9.9, "y": 0}, + {"matrix": [0, 9], "x": 10.9, "y": 0}, + {"matrix": [0, 10], "x": 12.2, "y": 0}, + {"matrix": [0, 11], "x": 13.2, "y": 0}, + {"matrix": [1, 0], "x": 0.2, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.45, "y": 1}, + {"matrix": [1, 2], "x": 2.9, "y": 1}, + {"matrix": [1, 3], "x": 3.9, "y": 1}, + {"matrix": [1, 4], "x": 4.9, "y": 1}, + {"matrix": [1, 5], "x": 5.9, "y": 1}, + {"matrix": [1, 6], "x": 8.15, "y": 1}, + {"matrix": [1, 7], "x": 9.15, "y": 1}, + {"matrix": [1, 8], "x": 10.15, "y": 1}, + {"matrix": [1, 9], "x": 11.15, "y": 1}, + {"matrix": [1, 11], "x": 12.6, "y": 1, "w": 1.75}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 3.4, "y": 2}, + {"matrix": [2, 3], "x": 4.4, "y": 2}, + {"matrix": [2, 4], "x": 5.4, "y": 2}, + {"matrix": [2, 5], "x": 6.4, "y": 2}, + {"matrix": [2, 6], "x": 7.65, "y": 2}, + {"matrix": [2, 7], "x": 8.65, "y": 2}, + {"matrix": [2, 8], "x": 9.65, "y": 2}, + {"matrix": [2, 9], "x": 10.65, "y": 2}, + {"matrix": [2, 10], "x": 12.3, "y": 2}, + {"matrix": [2, 11], "x": 13.3, "y": 2, "w": 1.25}, + {"matrix": [3, 0], "x": 0.2, "y": 3, "w": 1.5}, + {"matrix": [3, 2], "x": 3.15, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 4.4, "y": 3, "w": 2.75}, + {"matrix": [3, 7], "x": 7.9, "y": 3, "w": 2.25}, + {"matrix": [3, 9], "x": 10.15, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 12.85, "y": 3, "w": 1.5} + ] + } + } +} diff --git a/keyboards/kb_elmo/eliza/keymaps/default/keymap.c b/keyboards/kb_elmo/eliza/keymaps/default/keymap.c new file mode 100644 index 00000000000..9a8b1e1965d --- /dev/null +++ b/keyboards/kb_elmo/eliza/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 kb-elmo (@kb-elmo) +// 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_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_LCTL, KC_LALT, KC_SPC, MO(1), KC_RALT, MO(2) + ), + [1] = LAYOUT( + 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_GRV, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/kb_elmo/eliza/keymaps/via/keymap.c b/keyboards/kb_elmo/eliza/keymaps/via/keymap.c new file mode 100644 index 00000000000..9a8b1e1965d --- /dev/null +++ b/keyboards/kb_elmo/eliza/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 kb-elmo (@kb-elmo) +// 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_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_LCTL, KC_LALT, KC_SPC, MO(1), KC_RALT, MO(2) + ), + [1] = LAYOUT( + 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_GRV, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/kb_elmo/eliza/keymaps/via/rules.mk b/keyboards/kb_elmo/eliza/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/kb_elmo/eliza/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kb_elmo/eliza/readme.md b/keyboards/kb_elmo/eliza/readme.md new file mode 100644 index 00000000000..fd8b9e74e52 --- /dev/null +++ b/keyboards/kb_elmo/eliza/readme.md @@ -0,0 +1,28 @@ +# Eliza + +![Eliza](https://i.imgur.com/OGpPhReh.jpeg) + +40% alice-style ergo keyboard with a seamless 3D printed gasket-mount case. + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Eliza rev.1 PCB +* Hardware Availability: [Open source project](https://github.com/kb-elmo/eliza) + +Make example for this keyboard (after setting up your build environment): + + make kb_elmo/eliza:default + +Flashing example for this keyboard: + + make kb_elmo/eliza: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 top left key and plug in the keyboard +* **Physical reset**: Briefly short the two contacts labeled "RESET" on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kb_elmo/eliza/rules.mk b/keyboards/kb_elmo/eliza/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kb_elmo/eliza/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kb_elmo/gamehand/info.json b/keyboards/kb_elmo/gamehand/info.json new file mode 100644 index 00000000000..39795bf2502 --- /dev/null +++ b/keyboards/kb_elmo/gamehand/info.json @@ -0,0 +1,61 @@ +{ + "manufacturer": "kb-elmo", + "keyboard_name": "GameHand", + "url": "https://github.com/kb-elmo/gamehand", + "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x4D90", + "device_version": "0.0.1", + "force_nkro": true + }, + "processor": "atmega32u2", + "bootloader": "atmel-dfu", + "matrix_pins": { + "cols": ["B2", "B1", "B0", "B7", "C7", "C6"], + "rows": ["D6", "D5", "D4", "D3", "D2"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + }, + "build": { + "debounce_type": "sym_defer_pk" + }, + "layouts": { + "LAYOUT": { + "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": [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": [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": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 3, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4.5, "y": 4, "w": 2} + ] + } + } +} diff --git a/keyboards/kb_elmo/gamehand/keymaps/default/keymap.c b/keyboards/kb_elmo/gamehand/keymaps/default/keymap.c new file mode 100644 index 00000000000..d22614cb0b2 --- /dev/null +++ b/keyboards/kb_elmo/gamehand/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, + KC_LCTL, KC_M, KC_H, KC_SPC + ), + [1] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT + ) +}; diff --git a/keyboards/kb_elmo/gamehand/keymaps/via/keymap.c b/keyboards/kb_elmo/gamehand/keymaps/via/keymap.c new file mode 100644 index 00000000000..d9e5dc747c6 --- /dev/null +++ b/keyboards/kb_elmo/gamehand/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, + KC_LCTL, KC_M, KC_H, KC_SPC + ), + [1] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT + ), +}; diff --git a/keyboards/kb_elmo/gamehand/keymaps/via/rules.mk b/keyboards/kb_elmo/gamehand/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/kb_elmo/gamehand/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kb_elmo/gamehand/readme.md b/keyboards/kb_elmo/gamehand/readme.md new file mode 100644 index 00000000000..a78e1ee205c --- /dev/null +++ b/keyboards/kb_elmo/gamehand/readme.md @@ -0,0 +1,28 @@ +# GameHand + +![gamehand](https://i.imgur.com/ia3bcUBh.jpg) + +A left-hand gaming keypad with a 3D printed case + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: GameHand rev.1 PCB +* Hardware Availability: [OpenSource Project](https://github.com/kb-elmo/GameHand) + +Make example for this keyboard (after setting up your build environment): + + make kb_elmo/gamehand:default + +Flashing example for this keyboard: + + make kb_elmo/gamehand: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 top left key and plug in the keyboard +* **Physical reset**: Briefly short the two contacts labeled "RESET" on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kb_elmo/gamehand/rules.mk b/keyboards/kb_elmo/gamehand/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kb_elmo/gamehand/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kbdfans/kbd19x/info.json b/keyboards/kbdfans/kbd19x/info.json index c37e3587e25..f2b28e4a086 100644 --- a/keyboards/kbdfans/kbd19x/info.json +++ b/keyboards/kbdfans/kbd19x/info.json @@ -46,6 +46,130 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { + "LAYOUT_all": { + "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": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "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": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "x": 18.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "x": 18.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + {"matrix": [3, 12], "x": 18.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5}, + {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 9], "x": 3.5, "y": 5.5, "w": 6.25}, + {"matrix": [5, 5], "x": 9.75, "y": 5.5}, + {"matrix": [5, 6], "x": 10.75, "y": 5.5}, + {"matrix": [5, 7], "x": 11.75, "y": 5.5, "w": 1.25}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5}, + {"matrix": [5, 12], "x": 18.5, "y": 5.5} + ] + }, "LAYOUT_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -85,7 +209,367 @@ {"matrix": [1, 6], "x": 10, "y": 1.5}, {"matrix": [1, 7], "x": 11, "y": 1.5}, {"matrix": [1, 8], "x": 12, "y": 1.5}, - {"matrix": [7, 1], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [7, 1], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "x": 18.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5}, + {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 9], "x": 3.5, "y": 5.5, "w": 6.25}, + {"matrix": [5, 5], "x": 9.75, "y": 5.5}, + {"matrix": [5, 6], "x": 10.75, "y": 5.5}, + {"matrix": [5, 7], "x": 11.75, "y": 5.5, "w": 1.25}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "LAYOUT_ansi_split_bs": { + "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": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "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": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "x": 18.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "x": 18.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5}, + {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 9], "x": 3.5, "y": 5.5, "w": 6.25}, + {"matrix": [5, 5], "x": 9.75, "y": 5.5}, + {"matrix": [5, 6], "x": 10.75, "y": 5.5}, + {"matrix": [5, 7], "x": 11.75, "y": 5.5, "w": 1.25}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "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": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "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": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "x": 18.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 1], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "x": 18.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "LAYOUT_ansi_wkl_split_bs": { + "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": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "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": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "x": 18.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, {"matrix": [1, 9], "x": 15.5, "y": 1.5}, {"matrix": [1, 10], "x": 16.5, "y": 1.5}, @@ -150,13 +634,11 @@ {"matrix": [4, 11], "x": 17.5, "y": 4.5}, {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5}, - {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 9], "x": 3.5, "y": 5.5, "w": 6.25}, - {"matrix": [5, 5], "x": 9.75, "y": 5.5}, - {"matrix": [5, 6], "x": 10.75, "y": 5.5}, - {"matrix": [5, 7], "x": 11.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, {"matrix": [5, 8], "x": 13.25, "y": 5.75}, {"matrix": [5, 3], "x": 14.25, "y": 5.75}, @@ -286,7 +768,7 @@ {"matrix": [5, 11], "x": 17.5, "y": 5.5} ] }, - "LAYOUT_all": { + "LAYOUT_iso_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -346,12 +828,10 @@ {"matrix": [2, 6], "x": 10.5, "y": 2.5}, {"matrix": [2, 7], "x": 11.5, "y": 2.5}, {"matrix": [2, 8], "x": 12.5, "y": 2.5}, - {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 9], "x": 15.5, "y": 2.5}, {"matrix": [2, 10], "x": 16.5, "y": 2.5}, {"matrix": [2, 11], "x": 17.5, "y": 2.5}, - {"matrix": [2, 12], "x": 18.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, {"matrix": [3, 1], "x": 1.75, "y": 3.5}, @@ -365,12 +845,12 @@ {"matrix": [3, 5], "x": 9.75, "y": 3.5}, {"matrix": [3, 6], "x": 10.75, "y": 3.5}, {"matrix": [3, 7], "x": 11.75, "y": 3.5}, - {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 3.5}, + {"matrix": [3, 8], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, {"matrix": [3, 9], "x": 15.5, "y": 3.5}, {"matrix": [3, 10], "x": 16.5, "y": 3.5}, {"matrix": [3, 11], "x": 17.5, "y": 3.5}, - {"matrix": [3, 12], "x": 18.5, "y": 3.5}, {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4.5}, @@ -391,7 +871,7 @@ {"matrix": [4, 9], "x": 15.5, "y": 4.5}, {"matrix": [4, 10], "x": 16.5, "y": 4.5}, {"matrix": [4, 11], "x": 17.5, "y": 4.5}, - {"matrix": [4, 12], "x": 18.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, {"matrix": [5, 1], "x": 1.25, "y": 5.5}, @@ -406,8 +886,244 @@ {"matrix": [5, 4], "x": 15.25, "y": 5.75}, {"matrix": [5, 10], "x": 16.5, "y": 5.5}, - {"matrix": [5, 11], "x": 17.5, "y": 5.5}, - {"matrix": [5, 12], "x": 18.5, "y": 5.5} + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "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": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "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": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "x": 18.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 1], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "x": 18.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [7, 3], "x": 12.75, "y": 3.5}, + {"matrix": [3, 8], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "LAYOUT_iso_wkl_split_bs": { + "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": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "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": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "x": 18.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "x": 18.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [7, 3], "x": 12.75, "y": 3.5}, + {"matrix": [3, 8], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} ] } } diff --git a/keyboards/kbdfans/kbd19x/matrix_diagram.md b/keyboards/kbdfans/kbd19x/matrix_diagram.md new file mode 100644 index 00000000000..5c7aa98557b --- /dev/null +++ b/keyboards/kbdfans/kbd19x/matrix_diagram.md @@ -0,0 +1,28 @@ +# Matrix Diagram for KBDfans KBD19x + +``` +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┬───┐ +│00 ││01 │02 │03 │04 ││60 │61 │62 │63 ││05 │06 │07 │08 ││72 │ │09 │0A │0B │0C │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │64 │65 │66 │67 │15 │16 │17 │18 │70 │71 │ │19 │1A │1B │1C │ │71 │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┼───┤ └─┬─────┤ ┌───┐ +│20 │21 │22 │23 │24 │68 │69 │6A │6B │25 │26 │27 │28 │73 │ │29 │2A │2B │2C │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐38 │ ISO Enter │2C │ 2u Numpad Plus +│30 │31 │32 │33 │34 │6C │75 │76 │77 │35 │36 │37 │38 │ │39 │3A │3B │3C │ │73 │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘ ├───┤ +│40 │41 │42 │43 │44 │78 │79 │7A │7B │45 │46 │47 │48 │┌───┐│49 │4A │4B │4C │ │ │ +├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│74 │└───┼───┼───┼───┤ │4C │ 2u Numpad Enter +│50 │51 │52 │59 │55 │56 │57 │┌───┼───┼───┐│5A │5B │5C │ │ │ +└────┴───┴────┴────────────────────────┴───┴───┴────┘│58 │53 │54 │└───┴───┴───┘ └───┘ + └───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌────┬───┬────┬───────────────────────┬────┬───┬────┐ +│50 │51 │52 │59 │55 │56 │57 │ 6u Space +└────┴───┴────┴───────────────────────┴────┴───┴────┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│50 │52 │59 │55 │57 │ WKL (7u Space) +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/kbdfans/kbd75/readme.md b/keyboards/kbdfans/kbd75/readme.md index 60e71fdc943..834a70ce813 100644 --- a/keyboards/kbdfans/kbd75/readme.md +++ b/keyboards/kbdfans/kbd75/readme.md @@ -1,20 +1,18 @@ # KBD75 -The KBD75 was sold through various rounds, with various PCB changes between them. +The KBD75 was sold through various rounds, with various PCB changes between them. * **Round 1 (2017)**: Black PCB - Bootmapper Client, atmega32a MCU (Use [Winkeyless.kr B.mini](../../winkeyless/bmini/) firmware) * **Round 2 (2018)**: White PCB - Bootmapper Client, atmega32a MCU (Use [ymdk/ymd75/rev1](../../ymdk/ymd75/rev1/) firmware) -* **Round 3-5 (2018)**: White PCB - QMK Firmware, atmega32u4 MCU (Use KBD75 rev1 or rev2(without numpad support)) +* **Round 3-5 (2018)**: White PCB - QMK Firmware, atmega32u4 MCU (Use KBD75 rev1 or rev2(without numpad support)) * **Round 6 (2019)**: White PCB with USB C - QMK Firmware, atmega32u4 MCU (Use KBD75 rev1 or rev2(with numpad support)) * **V2 (2019-)**: Same as **Round 6** (above). -**Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** +**Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the others.** * Keyboard Maintainer: [The QMK Community](https://github.com/qmk) * Hardware Supported: KBD75 PCB [rev1](./rev1) and [rev2](./rev2) -* Hardware Availability: - * [KBD75 rev2 Kit – KBDfans.com](https://kbdfans.com/collections/75-diy-kit/products/kbd75v2-custom-keyboard-diy-kit) - * [KBD75 rev2 PCB – KBDfans.com](https://kbdfans.com/collections/pcb/products/kbdfans-75-pcb-75) +* Hardware Availability: no longer available Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/kbdfans/kbd75/rev1/info.json b/keyboards/kbdfans/kbd75/rev1/info.json index d9d149f1e1a..efbfbe60ddc 100644 --- a/keyboards/kbdfans/kbd75/rev1/info.json +++ b/keyboards/kbdfans/kbd75/rev1/info.json @@ -239,7 +239,7 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_iso": { + "LAYOUT_75_ansi_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -271,7 +271,8 @@ {"matrix": [1, 10], "x": 10, "y": 1}, {"matrix": [1, 11], "x": 11, "y": 1}, {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"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, "w": 1.5}, @@ -287,6 +288,7 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -301,12 +303,10 @@ {"matrix": [3, 10], "x": 9.75, "y": 3}, {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, - {"matrix": [2, 14], "x": 12.75, "y": 3}, - {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, {"matrix": [4, 2], "x": 2.25, "y": 4}, {"matrix": [4, 3], "x": 3.25, "y": 4}, {"matrix": [4, 4], "x": 4.25, "y": 4}, @@ -333,6 +333,191 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, + "LAYOUT_75_ansi_rwkl": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_ansi_rwkl_split_bs": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [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, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, "LAYOUT_75_ansi_wkl": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -424,7 +609,7 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_iso_wkl": { + "LAYOUT_75_ansi_wkl_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -456,7 +641,8 @@ {"matrix": [1, 10], "x": 10, "y": 1}, {"matrix": [1, 11], "x": 11, "y": 1}, {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"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, "w": 1.5}, @@ -472,7 +658,7 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, - {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -487,11 +673,10 @@ {"matrix": [3, 10], "x": 9.75, "y": 3}, {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, - {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, {"matrix": [4, 2], "x": 2.25, "y": 4}, {"matrix": [4, 3], "x": 3.25, "y": 4}, {"matrix": [4, 4], "x": 4.25, "y": 4}, @@ -516,7 +701,7 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_ansi_rwkl": { + "LAYOUT_75_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -564,7 +749,6 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -579,10 +763,12 @@ {"matrix": [3, 10], "x": 9.75, "y": 3}, {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, {"matrix": [4, 2], "x": 2.25, "y": 4}, {"matrix": [4, 3], "x": 3.25, "y": 4}, {"matrix": [4, 4], "x": 4.25, "y": 4}, @@ -601,14 +787,15 @@ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, {"matrix": [5, 13], "x": 13, "y": 5}, {"matrix": [5, 14], "x": 14, "y": 5}, {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_iso_rwkl": { + "LAYOUT_75_iso_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -640,7 +827,8 @@ {"matrix": [1, 10], "x": 10, "y": 1}, {"matrix": [1, 11], "x": 11, "y": 1}, {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"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, "w": 1.5}, @@ -656,7 +844,6 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, - {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -672,6 +859,7 @@ {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, {"matrix": [3, 15], "x": 15, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, @@ -694,6 +882,379 @@ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_rwkl": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_rwkl_split_bs": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [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, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_wkl": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_wkl_split_bs": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [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, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, {"matrix": [5, 13], "x": 13, "y": 5}, diff --git a/keyboards/kbdfans/kbd75/rev1/matrix_diagram.md b/keyboards/kbdfans/kbd75/rev1/matrix_diagram.md new file mode 100644 index 00000000000..82bc199b538 --- /dev/null +++ b/keyboards/kbdfans/kbd75/rev1/matrix_diagram.md @@ -0,0 +1,32 @@ +# Matrix Diagram for KBDfans KBD75 rev1 + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │1E │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ +│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │2F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐3D │ ISO Enter +│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3F │ │2E │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4D │4E │4F │ +├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│50 │51 │53 │54 │56 │58 │5A │5B │5C │5D │5E │5F │ +└────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌────┬────┬────┬────────────────────────┬───┬───┬───┐ +│50 │51 │53 │56 │5A │5B │5C │ Standard +└────┴────┴────┴────────────────────────┴───┴───┴───┘ +┌────┬────┬────┬────────────────────────┬─────┬─────┐ +│50 │51 │53 │56 │5A │5C │ RWKL +└────┴────┴────┴────────────────────────┴─────┴─────┘ +┌─────┬─────┬───────────────────────────┬───┬───┬───┐ +│50 │51 │56 │5A │5B │5C │ LWKL +└─────┴─────┴───────────────────────────┴───┴───┴───┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│50 │51 │56 │5A │5C │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/kbdfans/kbd75/rev2/info.json b/keyboards/kbdfans/kbd75/rev2/info.json index 7cf43b93a76..12a1737eadd 100644 --- a/keyboards/kbdfans/kbd75/rev2/info.json +++ b/keyboards/kbdfans/kbd75/rev2/info.json @@ -239,7 +239,7 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_iso": { + "LAYOUT_75_ansi_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -271,7 +271,8 @@ {"matrix": [1, 10], "x": 10, "y": 1}, {"matrix": [1, 11], "x": 11, "y": 1}, {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"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, "w": 1.5}, @@ -287,6 +288,7 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -301,12 +303,10 @@ {"matrix": [3, 10], "x": 9.75, "y": 3}, {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, - {"matrix": [2, 14], "x": 12.75, "y": 3}, - {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, {"matrix": [4, 2], "x": 2.25, "y": 4}, {"matrix": [4, 3], "x": 3.25, "y": 4}, {"matrix": [4, 4], "x": 4.25, "y": 4}, @@ -333,6 +333,191 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, + "LAYOUT_75_ansi_rwkl": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_ansi_rwkl_split_bs": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [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, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, "LAYOUT_75_ansi_wkl": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -424,7 +609,7 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_iso_wkl": { + "LAYOUT_75_ansi_wkl_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -456,7 +641,8 @@ {"matrix": [1, 10], "x": 10, "y": 1}, {"matrix": [1, 11], "x": 11, "y": 1}, {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"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, "w": 1.5}, @@ -472,7 +658,7 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, - {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -487,11 +673,10 @@ {"matrix": [3, 10], "x": 9.75, "y": 3}, {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, - {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, {"matrix": [4, 2], "x": 2.25, "y": 4}, {"matrix": [4, 3], "x": 3.25, "y": 4}, {"matrix": [4, 4], "x": 4.25, "y": 4}, @@ -516,7 +701,7 @@ {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_ansi_rwkl": { + "LAYOUT_75_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -564,7 +749,6 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -579,10 +763,12 @@ {"matrix": [3, 10], "x": 9.75, "y": 3}, {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, {"matrix": [4, 2], "x": 2.25, "y": 4}, {"matrix": [4, 3], "x": 3.25, "y": 4}, {"matrix": [4, 4], "x": 4.25, "y": 4}, @@ -601,14 +787,15 @@ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, {"matrix": [5, 13], "x": 13, "y": 5}, {"matrix": [5, 14], "x": 14, "y": 5}, {"matrix": [5, 15], "x": 15, "y": 5} ] }, - "LAYOUT_75_iso_rwkl": { + "LAYOUT_75_iso_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -640,7 +827,8 @@ {"matrix": [1, 10], "x": 10, "y": 1}, {"matrix": [1, 11], "x": 11, "y": 1}, {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"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, "w": 1.5}, @@ -656,7 +844,6 @@ {"matrix": [2, 11], "x": 10.5, "y": 2}, {"matrix": [2, 12], "x": 11.5, "y": 2}, {"matrix": [2, 13], "x": 12.5, "y": 2}, - {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, {"matrix": [2, 15], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -672,6 +859,7 @@ {"matrix": [3, 11], "x": 10.75, "y": 3}, {"matrix": [3, 12], "x": 11.75, "y": 3}, {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, {"matrix": [3, 15], "x": 15, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, @@ -694,6 +882,379 @@ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_rwkl": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_rwkl_split_bs": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [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, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_wkl": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_wkl_split_bs": { + "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": [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, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [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, "w": 1.5}, + {"matrix": [2, 2], "x": 1.5, "y": 2}, + {"matrix": [2, 3], "x": 2.5, "y": 2}, + {"matrix": [2, 4], "x": 3.5, "y": 2}, + {"matrix": [2, 5], "x": 4.5, "y": 2}, + {"matrix": [2, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2}, + {"matrix": [2, 11], "x": 10.5, "y": 2}, + {"matrix": [2, 12], "x": 11.5, "y": 2}, + {"matrix": [2, 13], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 2], "x": 1.75, "y": 3}, + {"matrix": [3, 3], "x": 2.75, "y": 3}, + {"matrix": [3, 4], "x": 3.75, "y": 3}, + {"matrix": [3, 5], "x": 4.75, "y": 3}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 7], "x": 6.75, "y": 3}, + {"matrix": [3, 8], "x": 7.75, "y": 3}, + {"matrix": [3, 9], "x": 8.75, "y": 3}, + {"matrix": [3, 10], "x": 9.75, "y": 3}, + {"matrix": [3, 11], "x": 10.75, "y": 3}, + {"matrix": [3, 12], "x": 11.75, "y": 3}, + {"matrix": [2, 14], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, {"matrix": [5, 13], "x": 13, "y": 5}, diff --git a/keyboards/kbdfans/kbd75/rev2/matrix_diagram.md b/keyboards/kbdfans/kbd75/rev2/matrix_diagram.md new file mode 100644 index 00000000000..0de62fbefde --- /dev/null +++ b/keyboards/kbdfans/kbd75/rev2/matrix_diagram.md @@ -0,0 +1,35 @@ +# Matrix Diagram for KBDfans KBD75 rev2 + +``` + ┌───────┬───────┐ + Numpad 2u Backspace │1C │1E │ 2u Backspace + └───────┴───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌───┬───┬─────┐ ┌─────┬───┬───┐ ┌─────┬───┬───┐ +│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │2F │ │2C │2D │ │ │2C │2D │2E │ │ │2D │2E │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┬──┴┬──┴┐3D │ ┌──┴─────┼───┼───┤ ┌──┴┐3B ├───┼───┤ +│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3F │ │3B │3C │2E │ │ │3B │3C │3D │ │2C │ │3C │3D │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴───┴───┴────┘ └────────┴───┴───┘ └───┴────┴───┴───┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4D │4E │4F │ ISO Enter Numpad ANSI Enter Numpad ISO Enter +├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│50 │51 │53 │54 │56 │58 │5A │5B │5C │5D │5E │5F │ +└────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘ +┌────────┐ ┌──────┬───┬───┐ +│40 │ 2.25u LShift │4A │4B │4D │ Numpad RShift (1/1/1.75u) +└────────┘ └──────┴───┴───┘ +┌────┬────┬────┬────────────────────────┬───┬───┬───┐ +│50 │51 │53 │56 │5A │5B │5C │ Standard +└────┴────┴────┴────────────────────────┴───┴───┴───┘ +┌────┬────┬────┬────────────────────────┬─────┬─────┐ +│50 │51 │53 │56 │5A │5C │ RWKL +└────┴────┴────┴────────────────────────┴─────┴─────┘ +┌─────┬─────┬───────────────────────────┬───┬───┬───┐ +│50 │51 │56 │5A │5B │5C │ LWKL +└─────┴─────┴───────────────────────────┴───┴───┴───┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│50 │51 │56 │5A │5C │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/magic_force/mf17/info.json b/keyboards/magic_force/mf17/info.json index 2619c5f8b41..705318e71e0 100644 --- a/keyboards/magic_force/mf17/info.json +++ b/keyboards/magic_force/mf17/info.json @@ -74,23 +74,23 @@ }, "driver": "ws2812", "layout": [ - {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, - {"flags": 1, "matrix": [0, 1], "x": 75, "y": 0}, - {"flags": 1, "matrix": [0, 2], "x": 150, "y": 0}, - {"flags": 1, "matrix": [0, 3], "x": 224, "y": 0}, - {"flags": 1, "matrix": [1, 0], "x": 0, "y": 16}, - {"flags": 1, "matrix": [1, 1], "x": 75, "y": 16}, - {"flags": 1, "matrix": [1, 2], "x": 150, "y": 16}, + {"flags": 1, "matrix": [4, 1], "x": 37, "y": 64}, + {"flags": 1, "matrix": [4, 2], "x": 150, "y": 64}, + {"flags": 1, "matrix": [4, 3], "x": 224, "y": 56}, + {"flags": 1, "matrix": [3, 0], "x": 0, "y": 48}, + {"flags": 1, "matrix": [3, 1], "x": 75, "y": 48}, + {"flags": 1, "matrix": [3, 2], "x": 150, "y": 48}, {"flags": 1, "matrix": [2, 0], "x": 0, "y": 32}, {"flags": 1, "matrix": [2, 1], "x": 75, "y": 32}, {"flags": 1, "matrix": [2, 2], "x": 150, "y": 32}, {"flags": 1, "matrix": [2, 3], "x": 224, "y": 24}, - {"flags": 1, "matrix": [3, 0], "x": 0, "y": 48}, - {"flags": 1, "matrix": [3, 1], "x": 75, "y": 48}, - {"flags": 1, "matrix": [3, 2], "x": 150, "y": 48}, - {"flags": 1, "matrix": [4, 0], "x": 32, "y": 64}, - {"flags": 1, "matrix": [4, 1], "x": 150, "y": 64}, - {"flags": 1, "matrix": [4, 2], "x": 224, "y": 64} + {"flags": 1, "matrix": [1, 0], "x": 0, "y": 16}, + {"flags": 1, "matrix": [1, 1], "x": 75, "y": 16}, + {"flags": 1, "matrix": [1, 2], "x": 150, "y": 16}, + {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, + {"flags": 1, "matrix": [0, 1], "x": 75, "y": 0}, + {"flags": 1, "matrix": [0, 2], "x": 150, "y": 0}, + {"flags": 1, "matrix": [0, 3], "x": 224, "y": 0} ], "max_brightness": 180, "sleep": true diff --git a/keyboards/marshkeys/flowerpad/info.json b/keyboards/marshkeys/flowerpad/info.json new file mode 100644 index 00000000000..79e69c7a031 --- /dev/null +++ b/keyboards/marshkeys/flowerpad/info.json @@ -0,0 +1,37 @@ +{ + "manufacturer": "marshkeys.com", + "keyboard_name": "Flowerpad", + "maintainer": "Ethirallan", + "bootmagic": { + "matrix": [0, 1] + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["F7", "F6", "F5"], + "rows": ["C6", "D4", "D0"] + }, + "url": "marshkeys.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x466C", + "vid": "0x4D61" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 1}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 1, "y": 2}, + {"matrix": [2, 0], "x": 2, "y": 0}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/marshkeys/flowerpad/keymaps/default/keymap.c b/keyboards/marshkeys/flowerpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..73817ffc95b --- /dev/null +++ b/keyboards/marshkeys/flowerpad/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 Benjamin Božič + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * -------- + * | MUTE | + * |------+------+------| + * | PREV | PLAY | NEXT | + * |------+------+------| + * | VOL- | | VOL+ | + * -------- -------- + */ + LAYOUT( + KC_MUTE, + KC_MPRV, KC_MPLY, KC_MNXT, + KC_VOLD, KC_VOLU + ), +}; diff --git a/keyboards/marshkeys/flowerpad/keymaps/via/keymap.c b/keyboards/marshkeys/flowerpad/keymaps/via/keymap.c new file mode 100644 index 00000000000..73817ffc95b --- /dev/null +++ b/keyboards/marshkeys/flowerpad/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 Benjamin Božič + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * -------- + * | MUTE | + * |------+------+------| + * | PREV | PLAY | NEXT | + * |------+------+------| + * | VOL- | | VOL+ | + * -------- -------- + */ + LAYOUT( + KC_MUTE, + KC_MPRV, KC_MPLY, KC_MNXT, + KC_VOLD, KC_VOLU + ), +}; diff --git a/keyboards/marshkeys/flowerpad/keymaps/via/rules.mk b/keyboards/marshkeys/flowerpad/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/marshkeys/flowerpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/marshkeys/flowerpad/readme.md b/keyboards/marshkeys/flowerpad/readme.md new file mode 100644 index 00000000000..859db5fc664 --- /dev/null +++ b/keyboards/marshkeys/flowerpad/readme.md @@ -0,0 +1,23 @@ +# Flowerpad + +![flowerpad](https://i.imgur.com/SRo0iWLh.jpeg) + +A flourishing 6-key macropad that will catch your eye. + +* Keyboard Maintainer: [Benjamin Božič](https://github.com/Ethirallan) +* Hardware Supported: Onboard ATmega32u4, Flowerpad PCB v1, hotswap v1 +* Hardware Availability: marshkeys.com + +Make example for this keyboard (after setting up your build environment): + + make marshkeys/flowerpad:default + +Flashing example for this keyboard: + + make marshkeys/flowerpad: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 by holding down the top key (where the usb connects) and plug in the keyboard diff --git a/keyboards/marshkeys/flowerpad/rules.mk b/keyboards/marshkeys/flowerpad/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/marshkeys/flowerpad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/mntre_v3/info.json b/keyboards/mntre_v3/info.json index eeef7575ff1..d9cee6aede8 100644 --- a/keyboards/mntre_v3/info.json +++ b/keyboards/mntre_v3/info.json @@ -75,45 +75,45 @@ {"matrix": [2, 13], "x": 13.5, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, - {"matrix": [3, 11], "x": 11, "y": 3}, - {"matrix": [3, 12], "x": 12, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 1.75}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4}, - {"matrix": [4, 3], "x": 3.5, "y": 4}, - {"matrix": [4, 4], "x": 4.5, "y": 4}, - {"matrix": [4, 5], "x": 5.5, "y": 4}, - {"matrix": [4, 6], "x": 6.5, "y": 4}, - {"matrix": [4, 7], "x": 7.5, "y": 4}, - {"matrix": [4, 8], "x": 8.5, "y": 4}, - {"matrix": [4, 9], "x": 9.5, "y": 4}, - {"matrix": [4, 10], "x": 10.5, "y": 4}, - {"matrix": [4, 11], "x": 11.5, "y": 4}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4}, + {"matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.25}, {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, - {"matrix": [5, 2], "x": 3, "y": 5, "w": 1.5}, - {"matrix": [5, 3], "x": 4.5, "y": 5, "w": 1.5}, - {"matrix": [5, 4], "x": 6, "y": 5,"w": 2}, - {"matrix": [5, 5], "x": 7, "y": 5,"w": 1.5}, - {"matrix": [5, 6], "x": 8, "y": 5}, - {"matrix": [5, 7], "x": 9.5, "y": 5}, - {"matrix": [5, 8], "x": 10.5, "y": 5}, - {"matrix": [5, 9], "x": 11.5, "y": 5}, - {"matrix": [5, 10], "x": 12.5, "y": 5,"w": 1.25} + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.5}, + {"matrix": [5, 2], "x": 2.75, "y": 5, "w": 1.5}, + {"matrix": [5, 3], "x": 4.25, "y": 5, "w": 1.5}, + {"matrix": [5, 4], "x": 5.75, "y": 5,"w": 2}, + {"matrix": [5, 5], "x": 7.75, "y": 5,"w": 1.5}, + {"matrix": [5, 6], "x": 9.25, "y": 5}, + {"matrix": [5, 7], "x": 10.25, "y": 5}, + {"matrix": [5, 8], "x": 11.25, "y": 5}, + {"matrix": [5, 9], "x": 12.25, "y": 5}, + {"matrix": [5, 10], "x": 13.25, "y": 5,"w": 1.25} ] } } diff --git a/keyboards/orthograph/info.json b/keyboards/orthograph/info.json index 19d3f6b2fbb..ad37b0c723c 100644 --- a/keyboards/orthograph/info.json +++ b/keyboards/orthograph/info.json @@ -140,90 +140,100 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "label":"Esc", "x":0.75, "y":0, "w":1.5}, - {"matrix": [0, 1], "label":"F1", "x":2.25, "y":0}, - {"matrix": [0, 2], "label":"F2", "x":3.25, "y":0}, - {"matrix": [0, 3], "label":"F3", "x":4.25, "y":0}, - {"matrix": [0, 4], "label":"F4", "x":5.25, "y":0}, - {"matrix": [0, 5], "label":"F5", "x":6.25, "y":0}, - {"matrix": [6, 0], "label":"F6", "x":12.5, "y":0}, - {"matrix": [6, 1], "label":"F7", "x":13.5, "y":0}, - {"matrix": [6, 2], "label":"F8", "x":14.5, "y":0}, - {"matrix": [6, 3], "label":"F9", "x":15.5, "y":0}, - {"matrix": [6, 4], "label":"F10", "x":16.5, "y":0}, - {"matrix": [6, 5], "label":"F11", "x":17.5, "y":0}, - {"matrix": [6, 6], "label":"F12", "x":18.5, "y":0}, - {"matrix": [1, 0], "label":"~", "x":0.75, "y":1, "w":1.5}, - {"matrix": [1, 1], "label":"1", "x":2.25, "y":1}, - {"matrix": [1, 2], "label":"2", "x":3.25, "y":1}, - {"matrix": [1, 3], "label":"3", "x":4.25, "y":1}, - {"matrix": [1, 4], "label":"4", "x":5.25, "y":1}, - {"matrix": [1, 5], "label":"5", "x":6.25, "y":1}, - {"matrix": [7, 0], "label":"^", "x":12.5, "y":1}, - {"matrix": [7, 1], "label":"&", "x":13.5, "y":1}, - {"matrix": [7, 2], "label":"*", "x":14.5, "y":1}, - {"matrix": [7, 3], "label":"(", "x":15.5, "y":1}, - {"matrix": [7, 4], "label":")", "x":16.5, "y":1}, - {"matrix": [7, 5], "label":"_", "x":17.5, "y":1}, - {"matrix": [7, 6], "label":"+", "x":18.5, "y":1}, - {"matrix": [7, 7], "label":"Backspace", "x":19.5, "y":1, "w":1.5}, - {"matrix": [2, 0], "label":"Tab", "x":0.75, "y":2, "w":1.5}, - {"matrix": [2, 1], "label":"Q", "x":2.25, "y":2}, - {"matrix": [2, 2], "label":"W", "x":3.25, "y":2}, - {"matrix": [2, 3], "label":"E", "x":4.25, "y":2}, - {"matrix": [2, 4], "label":"R", "x":5.25, "y":2}, - {"matrix": [2, 5], "label":"T", "x":6.25, "y":2}, - {"matrix": [8, 0], "label":"Y", "x":12.5, "y":2}, - {"matrix": [8, 1], "label":"U", "x":13.5, "y":2}, - {"matrix": [8, 2], "label":"I", "x":14.5, "y":2}, - {"matrix": [8, 3], "label":"O", "x":15.5, "y":2}, - {"matrix": [8, 4], "label":"P", "x":16.5, "y":2}, - {"matrix": [8, 5], "label":"{", "x":17.5, "y":2}, - {"matrix": [8, 6], "label":"}", "x":18.5, "y":2}, - {"matrix": [8, 7], "label":"|", "x":19.5, "y":2, "w":1.5}, - {"matrix": [3, 0], "label":"Caps", "x":0.75, "y":3, "w":1.5}, - {"matrix": [3, 1], "label":"A", "x":2.25, "y":3}, - {"matrix": [3, 2], "label":"S", "x":3.25, "y":3}, - {"matrix": [3, 3], "label":"D", "x":4.25, "y":3}, - {"matrix": [3, 4], "label":"F", "x":5.25, "y":3}, - {"matrix": [3, 5], "label":"G", "x":6.25, "y":3}, - {"matrix": [9, 0], "label":"H", "x":12.5, "y":3}, - {"matrix": [9, 1], "label":"J", "x":13.5, "y":3}, - {"matrix": [9, 2], "label":"K", "x":14.5, "y":3}, - {"matrix": [9, 3], "label":"L", "x":15.5, "y":3}, - {"matrix": [9, 4], "label":":", "x":16.5, "y":3}, - {"matrix": [9, 5], "label":"\"", "x":17.5, "y":3}, - {"matrix": [9, 6], "label":"Enter", "x":18.5, "y":3, "w":2.25}, - {"matrix": [4, 0], "label":"Shift", "x":0.75, "y":4, "w":1.5}, - {"matrix": [4, 1], "label":"Z", "x":2.25, "y":4}, - {"matrix": [4, 2], "label":"X", "x":3.25, "y":4}, - {"matrix": [4, 3], "label":"C", "x":4.25, "y":4}, - {"matrix": [4, 4], "label":"V", "x":5.25, "y":4}, - {"matrix": [4, 5], "label":"B", "x":6.25, "y":4}, - {"matrix": [10, 0], "label":"N", "x":12.5, "y":4}, - {"matrix": [10, 1], "label":"M", "x":13.5, "y":4}, - {"matrix": [10, 2], "label":"<", "x":14.5, "y":4}, - {"matrix": [10, 3], "label":">", "x":15.5, "y":4}, - {"matrix": [10, 4], "label":"?", "x":16.5, "y":4}, - {"matrix": [10, 5], "label":"Shift", "x":17.5, "y":4, "w":1.5}, - {"matrix": [10, 6], "label":"\u2191", "x":19, "y":4}, - {"matrix": [10, 7], "label":"mx", "x":20, "y":4}, - {"matrix": [5, 0], "label":"Ctrl", "x":1, "y":5, "w":1.25}, - {"matrix": [5, 1], "label":"Win", "x":2.25, "y":5, "w":1.25}, - {"matrix": [5, 2], "label":"Alt", "x":3.5, "y":5, "w":1.25}, - {"matrix": [5, 3], "label":"Menu", "x":4.75, "y":5, "w":1.25}, - {"matrix": [5, 4], "label":"space", "x":0, "y":4.75, "h":2}, - {"matrix": [5, 5], "label":"fn", "x":1, "y":4.75, "h":2}, - {"matrix": [11, 0], "label":"space2", "x":-2, "y":4.5, "h":2}, - {"matrix": [11, 1], "label":"fn", "x":-1.0, "y":4.5, "h":2}, - {"matrix": [11, 2], "label":"Alt", "x":14.25, "y":5, "w":1.25}, - {"matrix": [11, 3], "label":"Win", "x":15.5, "y":5, "w":1.25}, - {"matrix": [11, 4], "label":"Ctrl", "x":16.75, "y":5, "w":1.25}, - {"matrix": [11, 5], "label":"\u2190", "x":18, "y":5}, - {"matrix": [11, 6], "label":"\u2193", "x":19, "y":5}, - {"matrix": [11, 7], "label":"\u2192", "x":20, "y":5} + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "label": "F1", "x": 1.5, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.5, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.5, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.5, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [6, 0], "label": "F6", "x": 11.75, "y": 0}, + {"matrix": [6, 1], "label": "F7", "x": 12.75, "y": 0}, + {"matrix": [6, 2], "label": "F8", "x": 13.75, "y": 0}, + {"matrix": [6, 3], "label": "F9", "x": 14.75, "y": 0}, + {"matrix": [6, 4], "label": "F10", "x": 15.75, "y": 0}, + {"matrix": [6, 5], "label": "F11", "x": 16.75, "y": 0}, + {"matrix": [6, 6], "label": "F12", "x": 17.75, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "label": "1", "x": 1.5, "y": 1}, + {"matrix": [1, 2], "label": "2", "x": 2.5, "y": 1}, + {"matrix": [1, 3], "label": "3", "x": 3.5, "y": 1}, + {"matrix": [1, 4], "label": "4", "x": 4.5, "y": 1}, + {"matrix": [1, 5], "label": "5", "x": 5.5, "y": 1}, + + {"matrix": [7, 0], "label": "^", "x": 11.75, "y": 1}, + {"matrix": [7, 1], "label": "&", "x": 12.75, "y": 1}, + {"matrix": [7, 2], "label": "*", "x": 13.75, "y": 1}, + {"matrix": [7, 3], "label": "(", "x": 14.75, "y": 1}, + {"matrix": [7, 4], "label": ")", "x": 15.75, "y": 1}, + {"matrix": [7, 5], "label": "_", "x": 16.75, "y": 1}, + {"matrix": [7, 6], "label": "+", "x": 17.75, "y": 1}, + {"matrix": [7, 7], "label": "Backspace", "x": 18.75, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2}, + + {"matrix": [8, 0], "label": "Y", "x": 11.75, "y": 2}, + {"matrix": [8, 1], "label": "U", "x": 12.75, "y": 2}, + {"matrix": [8, 2], "label": "I", "x": 13.75, "y": 2}, + {"matrix": [8, 3], "label": "O", "x": 14.75, "y": 2}, + {"matrix": [8, 4], "label": "P", "x": 15.75, "y": 2}, + {"matrix": [8, 5], "label": "{", "x": 16.75, "y": 2}, + {"matrix": [8, 6], "label": "}", "x": 17.75, "y": 2}, + {"matrix": [8, 7], "label": "|", "x": 18.75, "y": 2, "w": 1.5}, + + {"matrix": [3, 0], "label": "Caps", "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 1], "label": "A", "x": 1.5, "y": 3}, + {"matrix": [3, 2], "label": "S", "x": 2.5, "y": 3}, + {"matrix": [3, 3], "label": "D", "x": 3.5, "y": 3}, + {"matrix": [3, 4], "label": "F", "x": 4.5, "y": 3}, + {"matrix": [3, 5], "label": "G", "x": 5.5, "y": 3}, + + {"matrix": [9, 0], "label": "H", "x": 11.75, "y": 3}, + {"matrix": [9, 1], "label": "J", "x": 12.75, "y": 3}, + {"matrix": [9, 2], "label": "K", "x": 13.75, "y": 3}, + {"matrix": [9, 3], "label": "L", "x": 14.75, "y": 3}, + {"matrix": [9, 4], "label": ":", "x": 15.75, "y": 3}, + {"matrix": [9, 5], "label": "\"", "x": 16.75, "y": 3}, + {"matrix": [9, 6], "label": "Enter", "x": 17.75, "y": 3, "w": 2.25}, + + {"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "label": "Z", "x": 1.5, "y": 4}, + {"matrix": [4, 2], "label": "X", "x": 2.5, "y": 4}, + {"matrix": [4, 3], "label": "C", "x": 3.5, "y": 4}, + {"matrix": [4, 4], "label": "V", "x": 4.5, "y": 4}, + {"matrix": [4, 5], "label": "B", "x": 5.5, "y": 4}, + + {"matrix": [10, 0], "label": "N", "x": 11.75, "y": 4}, + {"matrix": [10, 1], "label": "M", "x": 12.75, "y": 4}, + {"matrix": [10, 2], "label": "<", "x": 13.75, "y": 4}, + {"matrix": [10, 3], "label": ">", "x": 14.75, "y": 4}, + {"matrix": [10, 4], "label": "?", "x": 15.75, "y": 4}, + {"matrix": [10, 5], "label": "Shift", "x": 16.75, "y": 4, "w": 1.5}, + {"matrix": [10, 6], "label": "\u2191", "x": 18.25, "y": 4}, + {"matrix": [10, 7], "label": "mx", "x": 19.25, "y": 4}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0.25, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.5, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.75, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "label": "Menu", "x": 4, "y": 5, "w": 1.25}, + {"matrix": [5, 4], "label": "space", "x": 5.5, "y": 5.25, "h": 2}, + {"matrix": [5, 5], "label": "fn", "x": 6.5, "y": 5.25, "h": 2}, + + {"matrix": [11, 0], "label": "space2", "x": 11.25, "y": 5.25, "h": 2}, + {"matrix": [11, 1], "label": "fn", "x": 12.25, "y": 5.25, "h": 2}, + {"matrix": [11, 2], "label": "Alt", "x": 13.5, "y": 5, "w": 1.25}, + {"matrix": [11, 3], "label": "Win", "x": 14.75, "y": 5, "w": 1.25}, + {"matrix": [11, 4], "label": "Ctrl", "x": 16, "y": 5, "w": 1.25}, + {"matrix": [11, 5], "label": "\u2190", "x": 17.25, "y": 5}, + {"matrix": [11, 6], "label": "\u2193", "x": 18.25, "y": 5}, + {"matrix": [11, 7], "label": "\u2192", "x": 19.25, "y": 5} ] } } -} \ No newline at end of file +} diff --git a/keyboards/pizzakeyboards/slice65/board.h b/keyboards/pizzakeyboards/slice65/board.h new file mode 100644 index 00000000000..ba17e3b15ec --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/board.h @@ -0,0 +1,20 @@ +/* +Copyright 2022 Christoph Baumann + +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 . +*/ +#pragma once + +#define STM32_HSECLK 16000000 +#include_next diff --git a/keyboards/pizzakeyboards/slice65/info.json b/keyboards/pizzakeyboards/slice65/info.json new file mode 100644 index 00000000000..a6ae5a169f8 --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/info.json @@ -0,0 +1,105 @@ +{ + "manufacturer": "Pizzakeyboards", + "keyboard_name": "Slice65", + "maintainer": "mm0nte", + "bootloader": "stm32-dfu", + "debounce": 10, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C14", "C13", "C15", "B6", "B5", "B4", "C4", "A7"], + "rows": ["C11", "C12", "B3", "D2", "A1", "A2", "A5", "A4", "B1", "B0"] + }, + "processor": "STM32F303", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "url": "www.keyboards.pizza", + "usb": { + "device_version": "1.0.0", + "pid": "0x707C", + "vid": "0x504B" + }, + "community_layouts": ["65_ansi_blocker"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "3", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "5", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "7", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "9", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "-", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 6], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"label": "Home", "matrix": [0, 7], "x": 15, "y": 0}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [3, 5], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [2, 6], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [2, 7], "x": 15, "y": 1}, + {"label": "Capslock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [4, 5], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [5, 5], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "PgUp", "matrix": [4, 7], "x": 15, "y": 2}, + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [7, 4], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [6, 5], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [7, 5], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [7, 6], "x": 14, "y": 3}, + {"label": "PgDn", "matrix": [6, 7], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [8, 6], "x": 13, "y": 4}, + {"label": "Down", "matrix": [9, 6], "x": 14, "y": 4}, + {"label": "Right", "matrix": [8, 7], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/pizzakeyboards/slice65/keymaps/default/keymap.c b/keyboards/pizzakeyboards/slice65/keymaps/default/keymap.c new file mode 100644 index 00000000000..ed1ea2f0c68 --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +/* Copyright 2021 Christoph Baumann + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + 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_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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), +}; diff --git a/keyboards/pizzakeyboards/slice65/keymaps/via/keymap.c b/keyboards/pizzakeyboards/slice65/keymaps/via/keymap.c new file mode 100644 index 00000000000..904340ceec2 --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/keymaps/via/keymap.c @@ -0,0 +1,26 @@ +/* Copyright 2022 Christoph Baumann + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + 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_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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ) +}; diff --git a/keyboards/pizzakeyboards/slice65/keymaps/via/rules.mk b/keyboards/pizzakeyboards/slice65/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/pizzakeyboards/slice65/ld/STM32F303xB.ld b/keyboards/pizzakeyboards/slice65/ld/STM32F303xB.ld new file mode 100644 index 00000000000..8ad8b0911cc --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/ld/STM32F303xB.ld @@ -0,0 +1,86 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + Copyright (C) 2022 Christoph Baumann + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F303xC memory setup. + */ +MEMORY +{ + flash0 (rx) : org = 0x08000000, len = 128k + flash1 (rx) : org = 0x00000000, len = 0 + flash2 (rx) : org = 0x00000000, len = 0 + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = 32k + ram1 (wx) : org = 0x00000000, len = 0 + ram2 (wx) : org = 0x00000000, len = 0 + ram3 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x10000000, len = 8k + ram5 (wx) : org = 0x00000000, len = 0 + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/pizzakeyboards/slice65/mcuconf.h b/keyboards/pizzakeyboards/slice65/mcuconf.h new file mode 100644 index 00000000000..aa059c91708 --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/mcuconf.h @@ -0,0 +1,22 @@ +/* +Copyright 2022 Christoph Baumann + +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 . +*/ +#pragma once + +#include_next + +#undef STM32_PREDIV_VALUE +#define STM32_PREDIV_VALUE 2 diff --git a/keyboards/pizzakeyboards/slice65/readme.md b/keyboards/pizzakeyboards/slice65/readme.md new file mode 100644 index 00000000000..591f51b49e8 --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/readme.md @@ -0,0 +1,27 @@ +# Pizza Keyboards (V2) Slice65 + +![Pizza V2](https://i.imgur.com/RfqnpVlh.jpeg) + +A 65% keyboard kit made and sold by [pizza keyboards](https://keyboards.pizza). + +* Keyboard Maintainer: [mm0nte](https://github.com/mm0nte) +* Hardware Supported: Pizza V2 Slice65 (Hotswap) PCB +* Hardware Availability: [Pizza Keyboards Store](https://keyboards.pizza/collections/store) + +Make example for this keyboard (after setting up your build environment): + + make pizzakeyboards/slice65:default + +Flashing example for this keyboard: + + make pizzakeyboards/slice65: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/pizzakeyboards/slice65/rules.mk b/keyboards/pizzakeyboards/slice65/rules.mk new file mode 100644 index 00000000000..a36398ce434 --- /dev/null +++ b/keyboards/pizzakeyboards/slice65/rules.mk @@ -0,0 +1 @@ +MCU_LDSCRIPT = STM32F303xB diff --git a/keyboards/pmk/posey_split/config.h b/keyboards/pmk/posey_split/config.h new file mode 100644 index 00000000000..f115e5fc2c6 --- /dev/null +++ b/keyboards/pmk/posey_split/config.h @@ -0,0 +1,18 @@ +// Copyright 2023 Javier Oliver (@joliverMI) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/*Split keyboard configuration*/ +// Hardware Settings +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP1 +#define SERIAL_USART_RX_PIN GP0 + +// Communication Settings +#define FORCED_SYNC_THROTTLE_MS 1000 +#define SPLIT_MAX_CONNECTION_ERRORS 5 +#define SPLIT_CONNECTION_CHECK_TIMEOUT 2000 + +// RGB Configuration +#define RGBLIGHT_EFFECT_BREATHE_CENTER 2.0 //1.0 to 2.7 \ No newline at end of file diff --git a/keyboards/pmk/posey_split/v4/info.json b/keyboards/pmk/posey_split/v4/info.json new file mode 100644 index 00000000000..016c4d7122e --- /dev/null +++ b/keyboards/pmk/posey_split/v4/info.json @@ -0,0 +1,145 @@ +{ + "manufacturer": "Posey's Mechanical Keyboards", + "keyboard_name": "posey_split_v4", + "maintainer": "joliverMI", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "rgblight": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], + "rows": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"] + }, + "processor": "RP2040", + "ws2812": { + "pin": "GP17", + "driver": "vendor" + }, + "rgblight": { + "animations": { + "breathing": true + }, + "layers": { + "enabled": true, + "max": 4 + }, + "led_count": 1, + "sleep": true, + "split": true, + "split_count": [1, 0] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP18" + } + }, + "tags": ["split"], + "url": "poseysmechanicalkeyboards.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x4A4F" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "LED", "x": 1, "y": 0}, + {"matrix": [0, 2], "label": "F1", "x": 2, "y": 0}, + {"matrix": [0, 3], "label": "F2", "x": 3, "y": 0}, + {"matrix": [0, 4], "label": "F3", "x": 4, "y": 0}, + {"matrix": [0, 5], "label": "F4", "x": 5, "y": 0}, + {"matrix": [0, 6], "label": "F5", "x": 6, "y": 0}, + {"matrix": [0, 7], "label": "F6", "x": 7, "y": 0}, + {"matrix": [6, 0], "label": "Layer", "x": 9.294, "y": 0}, + {"matrix": [6, 1], "label": "F7", "x": 10.294, "y": 0}, + {"matrix": [6, 2], "label": "F8", "x": 11.294, "y": 0}, + {"matrix": [6, 3], "label": "F9", "x": 12.294, "y": 0}, + {"matrix": [6, 4], "label": "F10", "x": 13.294, "y": 0}, + {"matrix": [6, 5], "label": "F11", "x": 14.294, "y": 0}, + {"matrix": [6, 6], "label": "Pause", "x": 15.294, "y": 0}, + {"matrix": [6, 7], "label": "Delete", "x": 16.294, "y": 0}, + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1}, + {"matrix": [1, 1], "label": "1", "x": 1, "y": 1}, + {"matrix": [1, 2], "label": "2", "x": 2, "y": 1}, + {"matrix": [1, 3], "label": "3", "x": 3, "y": 1}, + {"matrix": [1, 4], "label": "4", "x": 4, "y": 1}, + {"matrix": [1, 5], "label": "5", "x": 5, "y": 1}, + {"matrix": [1, 6], "label": "6", "x": 6, "y": 1}, + {"matrix": [1, 7], "label": "7", "x": 7, "y": 1}, + {"matrix": [7, 0], "label": "&", "x": 9.294, "y": 1}, + {"matrix": [7, 1], "label": "*", "x": 10.294, "y": 1}, + {"matrix": [7, 2], "label": "(", "x": 11.294, "y": 1}, + {"matrix": [7, 3], "label": ")", "x": 12.294, "y": 1}, + {"matrix": [7, 4], "label": "_", "x": 13.294, "y": 1}, + {"matrix": [7, 5], "label": "+", "x": 14.294, "y": 1}, + {"matrix": [7, 6], "label": "Backspace", "x": 15.294, "y": 1, "w": 2}, + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2}, + {"matrix": [8, 0], "label": "Y", "x": 8.794, "y": 2}, + {"matrix": [8, 1], "label": "U", "x": 9.794, "y": 2}, + {"matrix": [8, 2], "label": "I", "x": 10.794, "y": 2}, + {"matrix": [8, 3], "label": "O", "x": 11.794, "y": 2}, + {"matrix": [8, 4], "label": "P", "x": 12.794, "y": 2}, + {"matrix": [8, 5], "label": "{", "x": 13.794, "y": 2}, + {"matrix": [8, 6], "label": "}", "x": 14.794, "y": 2}, + {"matrix": [8, 7], "label": "|", "x": 15.794, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3}, + {"matrix": [9, 0], "label": "H", "x": 9.044, "y": 3}, + {"matrix": [9, 1], "label": "J", "x": 10.044, "y": 3}, + {"matrix": [9, 2], "label": "K", "x": 11.044, "y": 3}, + {"matrix": [9, 3], "label": "L", "x": 12.044, "y": 3}, + {"matrix": [9, 4], "label": ":", "x": 13.044, "y": 3}, + {"matrix": [9, 5], "label": "\"", "x": 14.044, "y": 3}, + {"matrix": [9, 6], "label": "Enter", "x": 15.044, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 1], "label": "Z", "x": 2.25, "y": 4}, + {"matrix": [4, 2], "label": "X", "x": 3.25, "y": 4}, + {"matrix": [4, 3], "label": "C", "x": 4.25, "y": 4}, + {"matrix": [4, 4], "label": "V", "x": 5.25, "y": 4}, + {"matrix": [4, 5], "label": "B", "x": 6.25, "y": 4}, + {"matrix": [4, 6], "label": "N", "x": 7.25, "y": 4}, + {"matrix": [10, 0], "label": "B", "x": 8.544, "y": 4}, + {"matrix": [10, 1], "label": "N", "x": 9.544, "y": 4}, + {"matrix": [10, 2], "label": "M", "x": 10.544, "y": 4}, + {"matrix": [10, 3], "label": "<", "x": 11.544, "y": 4}, + {"matrix": [10, 4], "label": ">", "x": 12.544, "y": 4}, + {"matrix": [10, 5], "label": "?", "x": 13.544, "y": 4}, + {"matrix": [10, 6], "label": "Shift", "x": 14.544, "y": 4, "w": 2.75}, + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "label": "L2", "x": 3.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "label": "Space", "x": 5.5, "y": 5, "w": 2.75}, + {"matrix": [11, 1], "label": "Space", "x": 8.794, "y": 5, "w": 2.25}, + {"matrix": [11, 2], "label": "Space", "x": 11.044, "y": 5, "w": 1.25}, + {"matrix": [11, 3], "label": "L2", "x": 12.294, "y": 5, "w": 1.25}, + {"matrix": [11, 4], "label": "Win", "x": 13.544, "y": 5, "w": 1.25}, + {"matrix": [11, 5], "label": "Menu", "x": 14.794, "y": 5, "w": 1.25}, + {"matrix": [11, 7], "label": "Ctrl", "x": 16.044, "y": 5, "w": 1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/pmk/posey_split/v4/keymaps/default/keymap.c b/keyboards/pmk/posey_split/v4/keymaps/default/keymap.c new file mode 100644 index 00000000000..3a607c0296c --- /dev/null +++ b/keyboards/pmk/posey_split/v4/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +// Copyright 2024 Javier Oliver (@joliverMI) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _QWERTY, + _NAV, + _SYMB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│LED│F1 │F2 │F3 │F4 │F5 │F6 │ │L1 │F7 │F8 │F9 │F10│F11│PAS│Del│ 16 + * ├───┼───┼───┼───┼───┼───┼───┴───┤ ├───┴───┼───┼───┼───┼───┼───┴───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ │7 │8 │ 9 │ 0 │ - │ = │ Backsp│ 15 + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ 15 + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ │ H │J │ K │ L │ ; │ ' │ Enter │ 14 + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ │ B │ N │ M │ , │ . │ / │ Shift │ 14 + * ├────┬───┴┬──┴┬──┴───┴┬──┴───┴───┤ └┬──┴───┴─┬─┴──┬┴───┴───┴┬─────────┤ + * │Ctrl│GUI │L2 │Alt │ │ │ | L3 │ Alt│ GUI│Menu│Ctrl│ 11 + * └────┴────┴───┴───────┴──────────┘ └────────┴────┴────┴────┴────┴────┘ + */ + [_QWERTY] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_LCTL, KC_LGUI, MO(_NAV), KC_LALT, KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_NAV] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_LEFT, KC_DOWN, KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_SYMB] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, 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, QK_CLEAR_EEPROM, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ) +}; diff --git a/keyboards/pmk/posey_split/v4/keymaps/via/keymap.c b/keyboards/pmk/posey_split/v4/keymaps/via/keymap.c new file mode 100644 index 00000000000..ffe726ead71 --- /dev/null +++ b/keyboards/pmk/posey_split/v4/keymaps/via/keymap.c @@ -0,0 +1,73 @@ +// Copyright 2024 Javier Oliver (@joliverMI) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _QWERTY, + _NAV, + _SYMB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│LED│F1 │F2 │F3 │F4 │F5 │F6 │ │L1 │F7 │F8 │F9 │F10│F11│PAS│Del│ 16 + * ├───┼───┼───┼───┼───┼───┼───┴───┤ ├───┴───┼───┼───┼───┼───┼───┴───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ │7 │8 │ 9 │ 0 │ - │ = │ Backsp│ 15 + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ 15 + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ │ H │J │ K │ L │ ; │ ' │ Enter │ 14 + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ │ B │ N │ M │ , │ . │ / │ Shift │ 14 + * ├────┬───┴┬──┴┬──┴───┴┬──┴───┴───┤ └┬──┴───┴─┬─┴──┬┴───┴───┴┬─────────┤ + * │Ctrl│GUI │L2 │Alt │ │ │ | L3 │ Alt│ GUI│Menu│Ctrl│ 11 + * └────┴────┴───┴───────┴──────────┘ └────────┴────┴────┴────┴────┴────┘ + */ + [_QWERTY] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_LCTL, KC_LGUI, MO(_NAV), KC_LALT, KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_NAV] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_LEFT, KC_DOWN, KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_SYMB] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, 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, QK_CLEAR_EEPROM, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ) +}; diff --git a/keyboards/pmk/posey_split/v4/keymaps/via/rules.mk b/keyboards/pmk/posey_split/v4/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/pmk/posey_split/v4/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/pmk/posey_split/v4/readme.md b/keyboards/pmk/posey_split/v4/readme.md new file mode 100644 index 00000000000..c4e15656206 --- /dev/null +++ b/keyboards/pmk/posey_split/v4/readme.md @@ -0,0 +1,30 @@ +# posey_split_v4 + +![posey_split_v4](https://i.imgur.com/g3yf6alh.png) + +The Posey split keyboard was designed from the gournd up for gaming. By pushing the left half of your split keyboard out of the way, you'll be able to game with better posture and increase mouse movement. PMK's have additional keys on the right half to make sure you don't need to reach for your other half while gaming. + +Version Changes from v4: +-Changed bottom row on the left half to use standard modifier key sizes + +* Keyboard Maintainer: [Javier Oliver](https://github.com/joliverMI) +* Hardware Supported: posey_split_v4, blizz_sorc_v1 and logic_module_v1 +* Hardware Availability: poseysmechanicalkeyboards.com + +Make example for this keyboard (after setting up your build environment): + + make pmk/posey_split/v4:default + +Flashing example for this keyboard: + + make pmk/posey_split/v4: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 Escape and plug in the keyboard +* **Physical reset button**: Hold the button on the bottom of the keyboard while you plug in the USB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/pmk/posey_split/v4/rules.mk b/keyboards/pmk/posey_split/v4/rules.mk new file mode 100644 index 00000000000..743228e94b6 --- /dev/null +++ b/keyboards/pmk/posey_split/v4/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor \ No newline at end of file diff --git a/keyboards/pmk/posey_split/v5/info.json b/keyboards/pmk/posey_split/v5/info.json new file mode 100644 index 00000000000..9ef7d0af022 --- /dev/null +++ b/keyboards/pmk/posey_split/v5/info.json @@ -0,0 +1,145 @@ +{ + "manufacturer": "Posey's Mechanical Keyboards", + "keyboard_name": "posey_split_v5", + "maintainer": "joliverMI", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "rgblight": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], + "rows": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"] + }, + "processor": "RP2040", + "ws2812": { + "pin": "GP17", + "driver": "vendor" + }, + "rgblight": { + "animations": { + "breathing": true + }, + "layers": { + "enabled": true, + "max": 4 + }, + "led_count": 1, + "sleep": true, + "split": true, + "split_count": [1, 0] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP18" + } + }, + "tags": ["split"], + "url": "poseysmechanicalkeyboards.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0005", + "vid": "0x4A4F" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "LED", "x": 1, "y": 0}, + {"matrix": [0, 2], "label": "F1", "x": 2, "y": 0}, + {"matrix": [0, 3], "label": "F2", "x": 3, "y": 0}, + {"matrix": [0, 4], "label": "F3", "x": 4, "y": 0}, + {"matrix": [0, 5], "label": "F4", "x": 5, "y": 0}, + {"matrix": [0, 6], "label": "F5", "x": 6, "y": 0}, + {"matrix": [0, 7], "label": "F6", "x": 7, "y": 0}, + {"matrix": [6, 0], "label": "Layer", "x": 9.294, "y": 0}, + {"matrix": [6, 1], "label": "F7", "x": 10.294, "y": 0}, + {"matrix": [6, 2], "label": "F8", "x": 11.294, "y": 0}, + {"matrix": [6, 3], "label": "F9", "x": 12.294, "y": 0}, + {"matrix": [6, 4], "label": "F10", "x": 13.294, "y": 0}, + {"matrix": [6, 5], "label": "F11", "x": 14.294, "y": 0}, + {"matrix": [6, 6], "label": "Pause", "x": 15.294, "y": 0}, + {"matrix": [6, 7], "label": "Delete", "x": 16.294, "y": 0}, + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1}, + {"matrix": [1, 1], "label": "1", "x": 1, "y": 1}, + {"matrix": [1, 2], "label": "2", "x": 2, "y": 1}, + {"matrix": [1, 3], "label": "3", "x": 3, "y": 1}, + {"matrix": [1, 4], "label": "4", "x": 4, "y": 1}, + {"matrix": [1, 5], "label": "5", "x": 5, "y": 1}, + {"matrix": [1, 6], "label": "6", "x": 6, "y": 1}, + {"matrix": [1, 7], "label": "7", "x": 7, "y": 1}, + {"matrix": [7, 0], "label": "&", "x": 9.294, "y": 1}, + {"matrix": [7, 1], "label": "*", "x": 10.294, "y": 1}, + {"matrix": [7, 2], "label": "(", "x": 11.294, "y": 1}, + {"matrix": [7, 3], "label": ")", "x": 12.294, "y": 1}, + {"matrix": [7, 4], "label": "_", "x": 13.294, "y": 1}, + {"matrix": [7, 5], "label": "+", "x": 14.294, "y": 1}, + {"matrix": [7, 6], "label": "Backspace", "x": 15.294, "y": 1, "w": 2}, + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2}, + {"matrix": [8, 0], "label": "Y", "x": 8.794, "y": 2}, + {"matrix": [8, 1], "label": "U", "x": 9.794, "y": 2}, + {"matrix": [8, 2], "label": "I", "x": 10.794, "y": 2}, + {"matrix": [8, 3], "label": "O", "x": 11.794, "y": 2}, + {"matrix": [8, 4], "label": "P", "x": 12.794, "y": 2}, + {"matrix": [8, 5], "label": "{", "x": 13.794, "y": 2}, + {"matrix": [8, 6], "label": "}", "x": 14.794, "y": 2}, + {"matrix": [8, 7], "label": "|", "x": 15.794, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3}, + {"matrix": [9, 0], "label": "H", "x": 9.044, "y": 3}, + {"matrix": [9, 1], "label": "J", "x": 10.044, "y": 3}, + {"matrix": [9, 2], "label": "K", "x": 11.044, "y": 3}, + {"matrix": [9, 3], "label": "L", "x": 12.044, "y": 3}, + {"matrix": [9, 4], "label": ":", "x": 13.044, "y": 3}, + {"matrix": [9, 5], "label": "\"", "x": 14.044, "y": 3}, + {"matrix": [9, 6], "label": "Enter", "x": 15.044, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 1], "label": "Z", "x": 2.25, "y": 4}, + {"matrix": [4, 2], "label": "X", "x": 3.25, "y": 4}, + {"matrix": [4, 3], "label": "C", "x": 4.25, "y": 4}, + {"matrix": [4, 4], "label": "V", "x": 5.25, "y": 4}, + {"matrix": [4, 5], "label": "B", "x": 6.25, "y": 4}, + {"matrix": [4, 6], "label": "N", "x": 7.25, "y": 4}, + {"matrix": [10, 0], "label": "B", "x": 8.544, "y": 4}, + {"matrix": [10, 1], "label": "N", "x": 9.544, "y": 4}, + {"matrix": [10, 2], "label": "M", "x": 10.544, "y": 4}, + {"matrix": [10, 3], "label": "<", "x": 11.544, "y": 4}, + {"matrix": [10, 4], "label": ">", "x": 12.544, "y": 4}, + {"matrix": [10, 5], "label": "?", "x": 13.544, "y": 4}, + {"matrix": [10, 6], "label": "Shift", "x": 14.544, "y": 4, "w": 2.75}, + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "label": "Layer", "x": 2.5, "y": 5}, + {"matrix": [5, 3], "label": "Alt", "x": 3.5, "y": 5, "w": 2}, + {"matrix": [5, 6], "label": "Space", "x": 5.5, "y": 5, "w": 2.75}, + {"matrix": [11, 1], "label": "Space", "x": 8.794, "y": 5, "w": 2.25}, + {"matrix": [11, 2], "label": "Arrows", "x": 11.044, "y": 5, "w": 1.25}, + {"matrix": [11, 3], "label": "Ctrl", "x": 12.294, "y": 5, "w": 1.25}, + {"matrix": [11, 4], "label": "Win", "x": 13.544, "y": 5, "w": 1.25}, + {"matrix": [11, 5], "label": "Menu", "x": 14.794, "y": 5, "w": 1.25}, + {"matrix": [11, 7], "label": "Ctrl", "x": 16.044, "y": 5, "w": 1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/pmk/posey_split/v5/keymaps/default/keymap.c b/keyboards/pmk/posey_split/v5/keymaps/default/keymap.c new file mode 100644 index 00000000000..fa7fd018a01 --- /dev/null +++ b/keyboards/pmk/posey_split/v5/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +// Copyright 2024 Javier Oliver (@joliverMI) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _QWERTY, + _NAV, + _SYMB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│LED│F1 │F2 │F3 │F4 │F5 │F6 │ │L1 │F7 │F8 │F9 │F10│F11│PAS│Del│ 16 + * ├───┼───┼───┼───┼───┼───┼───┴───┤ ├───┴───┼───┼───┼───┼───┼───┴───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ │7 │8 │ 9 │ 0 │ - │ = │ Backsp│ 15 + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ 15 + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ │ H │J │ K │ L │ ; │ ' │ Enter │ 14 + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ │ B │ N │ M │ , │ . │ / │ Shift │ 14 + * ├────┬───┴┬──┴─┬─┴───┴┬──┴───┴───┤ └┬──┴───┴─┬─┴──┬┴───┴───┴┬─────────┤ + * │Ctrl│GUI │Alt │L2 │ │ │ | L3 │ Alt│ GUI│Menu│Ctrl│ 11 + * └────┴────┴────┴──────┴──────────┘ └────────┴────┴────┴────┴────┴────┘ + */ + [_QWERTY] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PAUS, KC_DEL, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_LCTL, KC_LGUI, KC_LALT, MO(_NAV), KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN,KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_NAV] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS,KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_LEFT, KC_DOWN, KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_SYMB] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, 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, QK_CLEAR_EEPROM, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ) +}; diff --git a/keyboards/pmk/posey_split/v5/keymaps/via/keymap.c b/keyboards/pmk/posey_split/v5/keymaps/via/keymap.c new file mode 100644 index 00000000000..fa7fd018a01 --- /dev/null +++ b/keyboards/pmk/posey_split/v5/keymaps/via/keymap.c @@ -0,0 +1,73 @@ +// Copyright 2024 Javier Oliver (@joliverMI) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _QWERTY, + _NAV, + _SYMB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│LED│F1 │F2 │F3 │F4 │F5 │F6 │ │L1 │F7 │F8 │F9 │F10│F11│PAS│Del│ 16 + * ├───┼───┼───┼───┼───┼───┼───┴───┤ ├───┴───┼───┼───┼───┼───┼───┴───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ │7 │8 │ 9 │ 0 │ - │ = │ Backsp│ 15 + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ 15 + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ │ H │J │ K │ L │ ; │ ' │ Enter │ 14 + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ │ B │ N │ M │ , │ . │ / │ Shift │ 14 + * ├────┬───┴┬──┴─┬─┴───┴┬──┴───┴───┤ └┬──┴───┴─┬─┴──┬┴───┴───┴┬─────────┤ + * │Ctrl│GUI │Alt │L2 │ │ │ | L3 │ Alt│ GUI│Menu│Ctrl│ 11 + * └────┴────┴────┴──────┴──────────┘ └────────┴────┴────┴────┴────┴────┘ + */ + [_QWERTY] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MO(_SYMB), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PAUS, KC_DEL, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_LCTL, KC_LGUI, KC_LALT, MO(_NAV), KC_SPC, KC_SPC, MO(_NAV), KC_RGUI, KC_LEFT, KC_DOWN,KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_NAV] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_SYMB), KC_TRNS,KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_LEFT, KC_DOWN, KC_RIGHT + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ), + [_SYMB] = LAYOUT( + // ┌────────┐ ┌────────┬────────┬────────┬────────┬────────┬───────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────┐ + KC_ESC, KC_TRNS, KC_TRNS, KC_F12, KC_F13, 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, QK_CLEAR_EEPROM, + //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┬───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴───────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //├─────────────────┼────────┼────────┼────────┼────────┼────────┼───────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_UP, + //├──────────┬──────┴─┬───────┼───────┴────────┼────────┴────────┴───────┤ ├────────┴────────┴────────┼────────┼────────┼────────┼────────────────┤ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DT_PRNT, DT_DOWN, KC_SLEP + //└──────────┴────────┴───────┴────────────────┴─────────────────────────┘ └──────────────────────────┴────────┴────────┴────────┴───────┴────────┘ + ) +}; diff --git a/keyboards/pmk/posey_split/v5/keymaps/via/rules.mk b/keyboards/pmk/posey_split/v5/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/pmk/posey_split/v5/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/pmk/posey_split/v5/readme.md b/keyboards/pmk/posey_split/v5/readme.md new file mode 100644 index 00000000000..57fbf642c3d --- /dev/null +++ b/keyboards/pmk/posey_split/v5/readme.md @@ -0,0 +1,30 @@ +# posey_split_v5 + +![posey_split_v5](https://i.imgur.com/g3yf6al.png) + +The Posey split keyboard was designed from the gournd up for gaming. By pushing the left half of your split keyboard out of the way, you'll be able to game with better posture and increase mouse movement. PMK's have additional keys on the right half to make sure you don't need to reach for your other half while gaming. + +Version Changes from v4: +-Changed bottom row on the left half to use standard modifier key sizes + +* Keyboard Maintainer: [Javier Oliver](https://github.com/joliverMI) +* Hardware Supported: posey_split_v5 and logic_module_v1 +* Hardware Availability: poseysmechanicalkeyboards.com + +Make example for this keyboard (after setting up your build environment): + + make pmk/posey_split/v5:default + +Flashing example for this keyboard: + + make pmk/posey_split/v5: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 Escape and plug in the keyboard +* **Physical reset button**: Hold the button on the bottom of the keyboard while you plug in the USB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/pmk/posey_split/v5/rules.mk b/keyboards/pmk/posey_split/v5/rules.mk new file mode 100644 index 00000000000..743228e94b6 --- /dev/null +++ b/keyboards/pmk/posey_split/v5/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor \ No newline at end of file diff --git a/keyboards/rmi_kb/equator/config.h b/keyboards/rmi_kb/equator/config.h new file mode 100644 index 00000000000..c2a22b66711 --- /dev/null +++ b/keyboards/rmi_kb/equator/config.h @@ -0,0 +1,11 @@ +// Copyright 2024 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* RGB */ +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_EXTERNAL_PULLUP diff --git a/keyboards/rmi_kb/equator/equator.c b/keyboards/rmi_kb/equator/equator.c new file mode 100644 index 00000000000..508eeea9e56 --- /dev/null +++ b/keyboards/rmi_kb/equator/equator.c @@ -0,0 +1,30 @@ +// Copyright 2024 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + led_t state = host_keyboard_led_state(); + uint32_t highest_layer = get_highest_layer(layer_state); + + + if (!(state.compose || state.scroll_lock)) { + RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0); + } + + if (!state.caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0); + } + + if (highest_layer == 0) { + RGB_MATRIX_INDICATOR_SET_COLOR(2, 0, 0, 0); + } + + + return false; +} +#endif diff --git a/keyboards/rmi_kb/equator/halconf.h b/keyboards/rmi_kb/equator/halconf.h new file mode 100644 index 00000000000..e215e323c5d --- /dev/null +++ b/keyboards/rmi_kb/equator/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/rmi_kb/equator/info.json b/keyboards/rmi_kb/equator/info.json new file mode 100644 index 00000000000..9e1ccab0fb5 --- /dev/null +++ b/keyboards/rmi_kb/equator/info.json @@ -0,0 +1,152 @@ +{ + "manufacturer": "Ramon Imbao", + "keyboard_name": "EQUATOR", + "maintainer": "ramonimbao", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A9", "A8", "B2", "B11", "F1", "F0", "C15", "C14", "C13"], + "rows": ["B12", "B10", "A15", "A10", "B1"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xE0A1", + "vid": "0xB16B" + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "digital_rain": true + }, + "driver": "ws2812", + "layout": [ + {"flags": 8, "x":224, "y":8}, + {"flags": 8, "x":224, "y":4}, + {"flags": 8, "x":224, "y":0} + ] + }, + "layouts": { + "LAYOUT": { + "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": 9, "y": 0}, + {"matrix": [0, 8], "x":10, "y": 0}, + {"matrix": [0, 9], "x":11, "y": 0}, + {"matrix": [0,10], "x":12, "y": 0}, + {"matrix": [0,11], "x":13, "y": 0}, + {"matrix": [0,12], "x":14, "y": 0}, + {"matrix": [0,13], "x":15, "y": 0}, + {"matrix": [0,14], "x":16, "y": 0}, + {"matrix": [0,15], "x":17, "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, 7], "x": 8.5, "y": 1}, + {"matrix": [1, 8], "x": 9.5, "y": 1}, + {"matrix": [1, 9], "x":10.5, "y": 1}, + {"matrix": [1,10], "x":11.5, "y": 1}, + {"matrix": [1,11], "x":12.5, "y": 1}, + {"matrix": [1,12], "x":13.5, "y": 1}, + {"matrix": [1,13], "x":14.5, "y": 1}, + {"matrix": [1,14], "x":15.5, "y": 1, "w": 1.5}, + {"matrix": [1,15], "x":17, "y": 1}, + + {"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, 7], "x": 8.75, "y": 2}, + {"matrix": [2, 8], "x": 9.75, "y": 2}, + {"matrix": [2, 9], "x":10.75, "y": 2}, + {"matrix": [2,10], "x":11.75, "y": 2}, + {"matrix": [2,11], "x":12.75, "y": 2}, + {"matrix": [2,12], "x":13.75, "y": 2}, + {"matrix": [2,14], "x":14.75, "y": 2, "w": 2.25}, + {"matrix": [2,15], "x":17, "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": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x":10.25, "y": 3}, + {"matrix": [3,10], "x":11.25, "y": 3}, + {"matrix": [3,11], "x":12.25, "y": 3}, + {"matrix": [3,12], "x":13.25, "y": 3}, + {"matrix": [3,13], "x":14.25, "y": 3, "w": 1.75}, + {"matrix": [3,14], "x":16, "y": 3}, + {"matrix": [3,15], "x":17, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [4, 3], "x": 3.25, "y": 3, "w": 1.25}, + {"matrix": [4, 5], "x": 4.5, "y": 3, "w": 2.75}, + {"matrix": [4, 8], "x": 8.25, "y": 3, "w": 2.25}, + {"matrix": [4, 9], "x":10.5, "y": 3, "w": 1.25}, + {"matrix": [4,11], "x":12.5, "y": 3, "w": 1.25}, + {"matrix": [4,12], "x":13.75, "y": 3, "w": 1.25}, + {"matrix": [4,13], "x":15, "y": 3}, + {"matrix": [4,14], "x":15, "y": 3}, + {"matrix": [4,15], "x":15, "y": 3} + ] + } + } +} diff --git a/keyboards/rmi_kb/equator/keymaps/default/keymap.c b/keyboards/rmi_kb/equator/keymaps/default/keymap.c new file mode 100644 index 00000000000..b5a0cdb458b --- /dev/null +++ b/keyboards/rmi_kb/equator/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rmi_kb/equator/keymaps/via/keymap.c b/keyboards/rmi_kb/equator/keymaps/via/keymap.c new file mode 100644 index 00000000000..b5a0cdb458b --- /dev/null +++ b/keyboards/rmi_kb/equator/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rmi_kb/equator/keymaps/via/rules.mk b/keyboards/rmi_kb/equator/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/rmi_kb/equator/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/rmi_kb/equator/mcuconf.h b/keyboards/rmi_kb/equator/mcuconf.h new file mode 100644 index 00000000000..aceb2e3dfc0 --- /dev/null +++ b/keyboards/rmi_kb/equator/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/rmi_kb/equator/readme.md b/keyboards/rmi_kb/equator/readme.md new file mode 100644 index 00000000000..93755490f43 --- /dev/null +++ b/keyboards/rmi_kb/equator/readme.md @@ -0,0 +1,26 @@ +# EQUATOR + +![EQUATOR](https://i.imgur.com/0zjj6btl.png) + +An ergo 65% keyboard designed in collaboration with ronworks. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: STM32F072 + +Make example for this keyboard (after setting up your build environment): + + make rmi_kb/equator:default + +Flashing example for this keyboard: + + make rmi_kb/equator: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 and hold the button below the right alt and right ctrl keys +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/rmi_kb/equator/rules.mk b/keyboards/rmi_kb/equator/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/rmi_kb/equator/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/sf2040/info.json b/keyboards/sf2040/info.json new file mode 100644 index 00000000000..21acb322af4 --- /dev/null +++ b/keyboards/sf2040/info.json @@ -0,0 +1,105 @@ +{ + "manufacturer": "Strayfade", + "keyboard_name": "sf2040", + "maintainer": "Strayfade", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + }, + "matrix_pins": { + "cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20"], + "rows": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"] + }, + "processor": "RP2040", + "url": "https://strayfade.com/sf2040", + "usb": { + "device_version": "1.0.1", + "pid": "0x0001", + "vid": "0x5346" + }, + "layouts": { + "LAYOUT": { + "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}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4}, + {"matrix": [4, 2], "x": 3.25, "y": 4}, + {"matrix": [4, 3], "x": 4.25, "y": 4}, + {"matrix": [4, 4], "x": 5.25, "y": 4}, + {"matrix": [4, 5], "x": 6.25, "y": 4}, + {"matrix": [4, 6], "x": 7.25, "y": 4}, + {"matrix": [4, 7], "x": 8.25, "y": 4}, + {"matrix": [4, 8], "x": 9.25, "y": 4}, + {"matrix": [4, 9], "x": 10.25, "y": 4}, + {"matrix": [4, 10], "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 2.75}, + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.75, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 4, "y": 5, "w": 6.25}, + {"matrix": [5, 4], "x": 10.25, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 11.5, "y": 5}, + {"matrix": [5, 6], "x": 12.5, "y": 5}, + {"matrix": [5, 7], "x": 13.5, "y": 5, "w": 1.5} + ] + } + } +} diff --git a/keyboards/sf2040/keymaps/default/keymap.c b/keyboards/sf2040/keymaps/default/keymap.c new file mode 100644 index 00000000000..ca5bcce3585 --- /dev/null +++ b/keyboards/sf2040/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Strayfade +// SPDX-License-Identifier: GPL-3.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESCAPE, 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_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH, + KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_ENTER, + KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, MO(1), KC_HOME, KC_END, KC_RIGHT_CTRL + ), + [1] = LAYOUT( + KC_TILDE, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_ENTER, + KC_LEFT_SHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, _______, KC_HOME, KC_END, KC_RIGHT_CTRL + ) + +}; \ No newline at end of file diff --git a/keyboards/sf2040/keymaps/via/keymap.c b/keyboards/sf2040/keymaps/via/keymap.c new file mode 100644 index 00000000000..ca5bcce3585 --- /dev/null +++ b/keyboards/sf2040/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Strayfade +// SPDX-License-Identifier: GPL-3.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESCAPE, 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_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH, + KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_ENTER, + KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, MO(1), KC_HOME, KC_END, KC_RIGHT_CTRL + ), + [1] = LAYOUT( + KC_TILDE, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_ENTER, + KC_LEFT_SHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, _______, KC_HOME, KC_END, KC_RIGHT_CTRL + ) + +}; \ No newline at end of file diff --git a/keyboards/sf2040/keymaps/via/rules.mk b/keyboards/sf2040/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/sf2040/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sf2040/readme.md b/keyboards/sf2040/readme.md new file mode 100644 index 00000000000..fb9ef2efe6e --- /dev/null +++ b/keyboards/sf2040/readme.md @@ -0,0 +1,22 @@ +# sf2040 + +![sf2040 Image](https://i.imgur.com/DZ9N17ph.png) + +The sf2040 is a mechanical 76-key keyboard based on the [RP2040](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf) microcontroller from Raspberry Pi. + +* Keyboard Maintainer: [strayfade](https://github.com/strayfade) +* Hardware Availability: https://github.com/strayfade/sf2040 + +Make example for this keyboard (after setting up your build environment): + + make sf2040:default + +Flashing example for this keyboard: + + make sf2040: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**: To enter the bootloader, hold down the key at (0,0) in the matrix (the top left key or Escape) and plug in the keyboard. diff --git a/keyboards/sf2040/rules.mk b/keyboards/sf2040/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/sf2040/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/smithrune/iron180v2/v2h/info.json b/keyboards/smithrune/iron180v2/v2h/info.json index 67eaf0501b0..a41c9d7e952 100644 --- a/keyboards/smithrune/iron180v2/v2h/info.json +++ b/keyboards/smithrune/iron180v2/v2h/info.json @@ -111,7 +111,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -218,7 +218,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -325,7 +325,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -431,7 +431,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -537,7 +537,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -641,7 +641,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, diff --git a/keyboards/smithrune/iron180v2/v2s/info.json b/keyboards/smithrune/iron180v2/v2s/info.json index aae84fd9566..82744159912 100644 --- a/keyboards/smithrune/iron180v2/v2s/info.json +++ b/keyboards/smithrune/iron180v2/v2s/info.json @@ -229,7 +229,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -336,7 +336,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -443,7 +443,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -549,7 +549,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -655,7 +655,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, @@ -759,7 +759,7 @@ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, diff --git a/keyboards/swiss/info.json b/keyboards/swiss/info.json new file mode 100644 index 00000000000..039153cd7f5 --- /dev/null +++ b/keyboards/swiss/info.json @@ -0,0 +1,97 @@ +{ + "manufacturer": "Bregoli", + "keyboard_name": "swiss", + "maintainer": "Bregoli", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "E6", "B0", "B1", "B4", "B5", "B6", "C6", "C7", "D3"], + "rows": ["D6", "D4", "D5", "B2", "D7"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0420", + "vid": "0x4C43" + }, + "community_layouts": ["60_hhkb"], + "layouts": { + "LAYOUT_60_hhkb": { + "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": 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, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 1.5, "y": 4}, + {"matrix": [4, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + } + } +} diff --git a/keyboards/swiss/keymaps/default/keymap.c b/keyboards/swiss/keymaps/default/keymap.c new file mode 100644 index 00000000000..7f7d2ef6033 --- /dev/null +++ b/keyboards/swiss/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [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_DEL, + 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_LCTL, 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_RCTL + ), + /* FN */ + [1] = LAYOUT_60_hhkb( + 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_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCT, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/swiss/keymaps/via/keymap.c b/keyboards/swiss/keymaps/via/keymap.c new file mode 100644 index 00000000000..7f7d2ef6033 --- /dev/null +++ b/keyboards/swiss/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [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_DEL, + 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_LCTL, 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_RCTL + ), + /* FN */ + [1] = LAYOUT_60_hhkb( + 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_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCT, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/swiss/keymaps/via/rules.mk b/keyboards/swiss/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/swiss/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/swiss/readme.md b/keyboards/swiss/readme.md new file mode 100644 index 00000000000..779f7dcc7fa --- /dev/null +++ b/keyboards/swiss/readme.md @@ -0,0 +1,28 @@ +# Swiss + +![Swiss](https://i.imgur.com/8G6MB5D.png) + +An HHKB that looks like... Cheese? +A fun, not so serious, ridiculously cheesy keyboard. + +* Keyboard Maintainer: [Bregoli](https://geekhack.org/index.php?topic=119509.0) +* Hardware Supported: Custom HHKB PCB and C3 Unified Daughterboard + +Make example for this keyboard (after setting up your build environment): + + make swiss:default + +Flashing example for this keyboard: + + make swiss: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/swiss/rules.mk b/keyboards/swiss/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/swiss/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/takashicompany/ejectix/info.json b/keyboards/takashicompany/ejectix/info.json new file mode 100644 index 00000000000..560c2533263 --- /dev/null +++ b/keyboards/takashicompany/ejectix/info.json @@ -0,0 +1,90 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "Ejectix", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 11 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F4", "F5", "F6", "F7", "B1", "B3"] + }, + "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": 11, + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0049", + "vid": "0x7463" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 3], "x": 1, "y": 0}, + {"matrix": [1, 0], "x": 2, "y": 0}, + {"matrix": [1, 3], "x": 3, "y": 0}, + {"matrix": [2, 0], "x": 4, "y": 0}, + {"matrix": [2, 3], "x": 5, "y": 0}, + {"matrix": [3, 0], "x": 6, "y": 0}, + {"matrix": [3, 3], "x": 7, "y": 0}, + {"matrix": [4, 0], "x": 8, "y": 0}, + {"matrix": [4, 3], "x": 9, "y": 0}, + {"matrix": [4, 5], "x": 10, "y": 0}, + {"matrix": [0, 1], "x": 0.5, "y": 1}, + {"matrix": [0, 4], "x": 1.5, "y": 1}, + {"matrix": [1, 1], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [2, 1], "x": 4.5, "y": 1}, + {"matrix": [2, 4], "x": 5.5, "y": 1}, + {"matrix": [3, 1], "x": 6.5, "y": 1}, + {"matrix": [3, 4], "x": 7.5, "y": 1}, + {"matrix": [4, 1], "x": 8.5, "y": 1}, + {"matrix": [4, 4], "x": 9.5, "y": 1}, + {"matrix": [0, 2], "x": 1, "y": 2}, + {"matrix": [0, 5], "x": 2, "y": 2}, + {"matrix": [1, 2], "x": 3, "y": 2}, + {"matrix": [1, 5], "x": 4, "y": 2}, + {"matrix": [2, 2], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [3, 2], "x": 7, "y": 2}, + {"matrix": [3, 5], "x": 8, "y": 2}, + {"matrix": [4, 2], "x": 9, "y": 2}, + {"matrix": [5, 0], "x": 1.75, "y": 3}, + {"matrix": [5, 1], "x": 3, "y": 3}, + {"matrix": [5, 2], "x": 4.25, "y": 3}, + {"matrix": [5, 3], "x": 5.5, "y": 3}, + {"matrix": [5, 4], "x": 6.75, "y": 3}, + {"matrix": [5, 5], "x": 8, "y": 3} + ] + } + } +} diff --git a/keyboards/takashicompany/ejectix/keymaps/default/keymap.c b/keyboards/takashicompany/ejectix/keymaps/default/keymap.c new file mode 100644 index 00000000000..b2c94317642 --- /dev/null +++ b/keyboards/takashicompany/ejectix/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), + KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_BSPC + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS, + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), + KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(4, KC_SPC), LT(4, KC_LNG1), KC_BSPC + ), + + [4] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, + LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, + KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/takashicompany/ejectix/keymaps/via/keymap.c b/keyboards/takashicompany/ejectix/keymaps/via/keymap.c new file mode 100644 index 00000000000..b2c94317642 --- /dev/null +++ b/keyboards/takashicompany/ejectix/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), + KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_BSPC + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS, + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), + KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(4, KC_SPC), LT(4, KC_LNG1), KC_BSPC + ), + + [4] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, + LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, + KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/takashicompany/ejectix/keymaps/via/rules.mk b/keyboards/takashicompany/ejectix/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/takashicompany/ejectix/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/takashicompany/ejectix/readme.md b/keyboards/takashicompany/ejectix/readme.md new file mode 100644 index 00000000000..3a731808d60 --- /dev/null +++ b/keyboards/takashicompany/ejectix/readme.md @@ -0,0 +1,33 @@ +# Ejectix + +![takashicompany/ejectix](https://i.imgur.com/gGk5UVdh.jpg) + +Ejectix is a 36-key, low-staggered keyboard. +Its layout is similar to that of a conventional keyboard, making it suitable for an introductory keyboard of 30% size. +Its relatively simple structure makes it easy to assemble, and it is recommended for those who are just starting to build their own keyboards. +Since the firmware is VIA-compatible, it is possible to write the firmware and change the keymap from a web browser by using Remap. +The MX socket is also supported, making it easy to replace the keyswitch for long-lasting use. +Underglow LEDs can also be used to decorate your desk. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: Ejectix PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/ejectix + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/ejectix:default + + +Flashing example for this keyboard: + + make takashicompany/ejectix: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/ejectix/rules.mk b/keyboards/takashicompany/ejectix/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/takashicompany/ejectix/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/viktus/osav2/keymaps/default/keymap.c b/keyboards/viktus/osav2/keymaps/default/keymap.c index 41533f136ca..9efc093864a 100644 --- a/keyboards/viktus/osav2/keymaps/default/keymap.c +++ b/keyboards/viktus/osav2/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_split_normal_split( - KC_DEL, 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_TILD, + KC_DEL, 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_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_BSPC, KC_PGDN, 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_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), diff --git a/keyboards/viktus/osav2/keymaps/via/keymap.c b/keyboards/viktus/osav2/keymaps/via/keymap.c index 41533f136ca..9efc093864a 100644 --- a/keyboards/viktus/osav2/keymaps/via/keymap.c +++ b/keyboards/viktus/osav2/keymaps/via/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_split_normal_split( - KC_DEL, 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_TILD, + KC_DEL, 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_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_BSPC, KC_PGDN, 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_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), diff --git a/keyboards/viktus/osav2_topre/ec.c b/keyboards/viktus/osav2_topre/ec.c index fd2e8fa0ec5..076ffc0ba86 100644 --- a/keyboards/viktus/osav2_topre/ec.c +++ b/keyboards/viktus/osav2_topre/ec.c @@ -151,16 +151,16 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { switch(row) { case 0: switch(col) { - case 14: // lower threshold for split backspace: left 1U( rest, btm) - case 15: // lower threshold for 2U backspace: 2U(38 rest, 60 btm) - reset_pt = 44; - actuation_pt = 48; + case 14: // lower threshold for split backspace: left 1U + case 15: // lower threshold for 2U backspace: 2U + reset_pt = 48; + actuation_pt = 53; break; } break; case 3: switch(col) { - case 14: // Lower threshold for right shift: 1.75U(40 rest, 70 btm) + case 14: // Lower threshold for right shift: 1.75U reset_pt = 48; actuation_pt = 53; break; @@ -168,17 +168,17 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { break; case 4: switch(col) { - case 3: // Lower threshold for left space: col3( rest, btm) - case 4: // Lower threshold for left space: col4(38 rest, 88 btm) + case 3: // Lower threshold for left space: col3 + case 4: // Lower threshold for left space: col4 reset_pt = 50; actuation_pt = 60; break; - case 5: // Lower threshold for left space: col5( rest, btm) - case 6: // Lower threshold for left space: col6(40 rest, 80 btm) + case 5: // Lower threshold for left space: col5 + case 6: // Lower threshold for left space: col6 reset_pt = 48; actuation_pt = 58; break; - case 14: // Lower threshold for right shift: 2.75U( rest, btm) + case 14: // Lower threshold for right shift: 2.75U reset_pt = 48; actuation_pt = 53; break; diff --git a/keyboards/viktus/osav2_topre/keymaps/default/keymap.c b/keyboards/viktus/osav2_topre/keymaps/default/keymap.c index b9561c9b325..bb7bc014744 100644 --- a/keyboards/viktus/osav2_topre/keymaps/default/keymap.c +++ b/keyboards/viktus/osav2_topre/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_split_back_175u_shift( - KC_DEL, 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_TILDE, + KC_DEL, 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_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_BSPC, 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), diff --git a/keyboards/viktus/osav2_topre/keymaps/via/keymap.c b/keyboards/viktus/osav2_topre/keymaps/via/keymap.c index b9561c9b325..bb7bc014744 100644 --- a/keyboards/viktus/osav2_topre/keymaps/via/keymap.c +++ b/keyboards/viktus/osav2_topre/keymaps/via/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_split_back_175u_shift( - KC_DEL, 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_TILDE, + KC_DEL, 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_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_BSPC, 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), diff --git a/keyboards/wilba_tech/wt65_g3/info.json b/keyboards/wilba_tech/wt65_g3/info.json new file mode 100644 index 00000000000..bf0e0ed9d06 --- /dev/null +++ b/keyboards/wilba_tech/wt65_g3/info.json @@ -0,0 +1,395 @@ +{ + "manufacturer": "wilba.tech", + "keyboard_name": "WT65-G3", + "maintainer": "Wilba", + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F5", "D5", "B1", "B2", "B3", "D3", "D2", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["F0", "F1", "F4", "F6", "F7"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x003A", + "vid": "0x6582" + }, + "layouts": { + "LAYOUT_65_ansi_rwkl": { + "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, "w": 2}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_rwkl_split_bs": { + "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": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_rwkl": { + "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, "w": 2}, + {"matrix": [0, 14], "x": 15, "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.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, 14], "x": 15, "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_rwkl_split_bs": { + "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": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "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.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, 14], "x": 15, "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "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": [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": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/wilba_tech/wt65_g3/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_g3/keymaps/default/keymap.c new file mode 100644 index 00000000000..159c2b0be26 --- /dev/null +++ b/keyboards/wilba_tech/wt65_g3/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +// Default layout for WT65-G3 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + // Fn1 Layer + [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_TRNS, KC_TRNS, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/wilba_tech/wt65_g3/keymaps/via/keymap.c b/keyboards/wilba_tech/wt65_g3/keymaps/via/keymap.c new file mode 100644 index 00000000000..4fc052443e4 --- /dev/null +++ b/keyboards/wilba_tech/wt65_g3/keymaps/via/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2024 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "../default/keymap.c" diff --git a/keyboards/wilba_tech/wt65_g3/keymaps/via/rules.mk b/keyboards/wilba_tech/wt65_g3/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/wilba_tech/wt65_g3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/wilba_tech/wt65_g3/readme.md b/keyboards/wilba_tech/wt65_g3/readme.md new file mode 100644 index 00000000000..12744874d75 --- /dev/null +++ b/keyboards/wilba_tech/wt65_g3/readme.md @@ -0,0 +1,19 @@ +# wilba.tech WT65-G3 + +WT65-G3 is a keyboard PCB supporting 65% ANSI/ISO layout, 6.25U/7U bottom row (no blocker) and full/split backspace. + +Initially designed for the [HIBI HIBIKI](https://hibi.mx/products/hibiki) + +- Keyboard Maintainer: [wilba](https://github.com/wilba) +- Hardware Supported: wilba.tech WT65-G3-HIBI +- Hardware Availability: [HIBI](https://hibi.mx/products/hibiki) + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt65_g3:default + +Flashing example for this keyboard: + + make wilba_tech/wt65_g3: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). diff --git a/keyboards/wilba_tech/wt65_g3/rules.mk b/keyboards/wilba_tech/wt65_g3/rules.mk new file mode 100644 index 00000000000..c80812f6e0a --- /dev/null +++ b/keyboards/wilba_tech/wt65_g3/rules.mk @@ -0,0 +1 @@ +# This file is intentionally blank diff --git a/keyboards/wilba_tech/wt65_h3/info.json b/keyboards/wilba_tech/wt65_h3/info.json new file mode 100644 index 00000000000..7cef91a68c1 --- /dev/null +++ b/keyboards/wilba_tech/wt65_h3/info.json @@ -0,0 +1,390 @@ +{ + "manufacturer": "wilba.tech", + "keyboard_name": "WT65-H3", + "maintainer": "Wilba", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "build": { + "lto": true + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F5", "D5", "B1", "B2", "B3", "D3", "D2", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["F0", "F1", "F4", "F6", "F7"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x0036", + "vid": "0x6582" + }, + "layouts": { + "LAYOUT_65_ansi_rwkl": { + "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, "w": 2}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_rwkl_split_bs": { + "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": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_wkl": { + "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, "w": 2}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 3, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_wkl_split_bs": { + "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": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 3, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "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": [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": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "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": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"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, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/wilba_tech/wt65_h3/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_h3/keymaps/default/keymap.c new file mode 100644 index 00000000000..3fd505a748d --- /dev/null +++ b/keyboards/wilba_tech/wt65_h3/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2024 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +// Default layout for WT65-H3 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + // Fn1 Layer + [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_TRNS, KC_TRNS, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/wilba_tech/wt65_h3/keymaps/via/keymap.c b/keyboards/wilba_tech/wt65_h3/keymaps/via/keymap.c new file mode 100644 index 00000000000..4fc052443e4 --- /dev/null +++ b/keyboards/wilba_tech/wt65_h3/keymaps/via/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2024 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "../default/keymap.c" diff --git a/keyboards/wilba_tech/wt65_h3/keymaps/via/rules.mk b/keyboards/wilba_tech/wt65_h3/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/wilba_tech/wt65_h3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/wilba_tech/wt65_h3/readme.md b/keyboards/wilba_tech/wt65_h3/readme.md new file mode 100644 index 00000000000..7e57842e8f2 --- /dev/null +++ b/keyboards/wilba_tech/wt65_h3/readme.md @@ -0,0 +1,19 @@ +# wilba.tech WT65-H3 + +WT65-H3 is a keyboard PCB supporting 65% ANSI layout, 6.25U/7U bottom row (no blocker) and full/split backspace. + +Initially designed for the [HIBI HIBIKI](https://hibi.mx/products/hibiki) + +- Keyboard Maintainer: [wilba](https://github.com/wilba) +- Hardware Supported: wilba.tech WT65-H3-HIBI +- Hardware Availability: [HIBI](https://hibi.mx/products/hibiki) + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt65_h3:default + +Flashing example for this keyboard: + + make wilba_tech/wt65_h3: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). diff --git a/keyboards/wilba_tech/wt65_h3/rules.mk b/keyboards/wilba_tech/wt65_h3/rules.mk new file mode 100644 index 00000000000..c80812f6e0a --- /dev/null +++ b/keyboards/wilba_tech/wt65_h3/rules.mk @@ -0,0 +1 @@ +# This file is intentionally blank diff --git a/keyboards/xiudi/xd96/info.json b/keyboards/xiudi/xd96/info.json index 98ebfcb4831..2b4ee4aad0a 100644 --- a/keyboards/xiudi/xd96/info.json +++ b/keyboards/xiudi/xd96/info.json @@ -1,373 +1,373 @@ { - "keyboard_name": "XD96", - "manufacturer": "KPrepublic", - "url": "", - "maintainer": "qmk", - "usb": { - "vid": "0x7844", - "pid": "0x9696", - "device_version": "0.0.1" - }, - "backlight": { - "pin": "B5", - "levels": 10 - }, - "rgblight": { - "led_count": 16, - "max_brightness": 50, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "indicators": { - "caps_lock": "B6", - "num_lock": "C6", - "on_state": 0 - }, - "ws2812": { - "pin": "C7" - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_96_ansi": { - "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": [5, 6], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [0, 15], "x": 16, "y": 0}, - {"matrix": [0, 16], "x": 17, "y": 0}, - {"matrix": [0, 17], "x": 18, "y": 0}, + "keyboard_name": "XD96", + "manufacturer": "KPrepublic", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x7844", + "pid": "0x9696", + "device_version": "0.0.1" + }, + "backlight": { + "pin": "B5", + "levels": 10 + }, + "rgblight": { + "led_count": 16, + "max_brightness": 50, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "indicators": { + "caps_lock": "B6", + "num_lock": "C6", + "on_state": 0 + }, + "ws2812": { + "pin": "C7" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT_96_ansi": { + "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": [5, 6], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [0, 15], "x": 16, "y": 0}, + {"matrix": [0, 16], "x": 17, "y": 0}, + {"matrix": [0, 17], "x": 18, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [1, 15], "x": 16, "y": 1}, - {"matrix": [1, 16], "x": 17, "y": 1}, - {"matrix": [1, 17], "x": 18, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1}, + {"matrix": [1, 16], "x": 17, "y": 1}, + {"matrix": [1, 17], "x": 18, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [2, 15], "x": 16, "y": 2}, - {"matrix": [2, 16], "x": 17, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [3, 15], "x": 16, "y": 3}, - {"matrix": [3, 16], "x": 17, "y": 3}, - {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [3, 15], "x": 16, "y": 3}, + {"matrix": [3, 16], "x": 17, "y": 3}, + {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4}, - {"matrix": [4, 15], "x": 16, "y": 4}, - {"matrix": [4, 16], "x": 17, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + {"matrix": [4, 15], "x": 16, "y": 4}, + {"matrix": [4, 16], "x": 17, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 13, "y": 5}, - {"matrix": [5, 13], "x": 14, "y": 5}, - {"matrix": [5, 14], "x": 15, "y": 5}, - {"matrix": [5, 15], "x": 16, "y": 5}, - {"matrix": [5, 16], "x": 17, "y": 5}, - {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} - ] - }, - "LAYOUT_96_iso": { - "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": [5, 6], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [0, 15], "x": 16, "y": 0}, - {"matrix": [0, 16], "x": 17, "y": 0}, - {"matrix": [0, 17], "x": 18, "y": 0}, + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5}, + {"matrix": [5, 15], "x": 16, "y": 5}, + {"matrix": [5, 16], "x": 17, "y": 5}, + {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} + ] + }, + "LAYOUT_96_iso": { + "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": [5, 6], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [0, 15], "x": 16, "y": 0}, + {"matrix": [0, 16], "x": 17, "y": 0}, + {"matrix": [0, 17], "x": 18, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [1, 15], "x": 16, "y": 1}, - {"matrix": [1, 16], "x": 17, "y": 1}, - {"matrix": [1, 17], "x": 18, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1}, + {"matrix": [1, 16], "x": 17, "y": 1}, + {"matrix": [1, 17], "x": 18, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [2, 15], "x": 16, "y": 2}, - {"matrix": [2, 16], "x": 17, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [3, 15], "x": 16, "y": 3}, - {"matrix": [3, 16], "x": 17, "y": 3}, - {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [3, 15], "x": 16, "y": 3}, + {"matrix": [3, 16], "x": 17, "y": 3}, + {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4}, - {"matrix": [4, 15], "x": 16, "y": 4}, - {"matrix": [4, 16], "x": 17, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + {"matrix": [4, 15], "x": 16, "y": 4}, + {"matrix": [4, 16], "x": 17, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 13, "y": 5}, - {"matrix": [5, 13], "x": 14, "y": 5}, - {"matrix": [5, 14], "x": 15, "y": 5}, - {"matrix": [5, 15], "x": 16, "y": 5}, - {"matrix": [5, 16], "x": 17, "y": 5}, - {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} - ] - }, - "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": [5, 6], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [0, 15], "x": 16, "y": 0}, - {"matrix": [0, 16], "x": 17, "y": 0}, - {"matrix": [0, 17], "x": 18, "y": 0}, + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5}, + {"matrix": [5, 15], "x": 16, "y": 5}, + {"matrix": [5, 16], "x": 17, "y": 5}, + {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} + ] + }, + "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": [5, 6], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [0, 15], "x": 16, "y": 0}, + {"matrix": [0, 16], "x": 17, "y": 0}, + {"matrix": [0, 17], "x": 18, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1}, - {"matrix": [5, 3], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [1, 15], "x": 16, "y": 1}, - {"matrix": [1, 16], "x": 17, "y": 1}, - {"matrix": [1, 17], "x": 18, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1}, + {"matrix": [5, 9], "x": 14, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1}, + {"matrix": [1, 16], "x": 17, "y": 1}, + {"matrix": [1, 17], "x": 18, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [2, 15], "x": 16, "y": 2}, - {"matrix": [2, 16], "x": 17, "y": 2}, - {"matrix": [2, 17], "x": 18, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2}, + {"matrix": [2, 17], "x": 18, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [3, 15], "x": 16, "y": 3}, - {"matrix": [3, 16], "x": 17, "y": 3}, - {"matrix": [3, 17], "x": 18, "y": 3}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [3, 15], "x": 16, "y": 3}, + {"matrix": [3, 16], "x": 17, "y": 3}, + {"matrix": [3, 17], "x": 18, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4}, - {"matrix": [4, 15], "x": 16, "y": 4}, - {"matrix": [4, 16], "x": 17, "y": 4}, - {"matrix": [4, 17], "x": 18, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + {"matrix": [4, 15], "x": 16, "y": 4}, + {"matrix": [4, 16], "x": 17, "y": 4}, + {"matrix": [4, 17], "x": 18, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 13, "y": 5}, - {"matrix": [5, 13], "x": 14, "y": 5}, - {"matrix": [5, 14], "x": 15, "y": 5}, - {"matrix": [5, 15], "x": 16, "y": 5}, - {"matrix": [5, 16], "x": 17, "y": 5}, - {"matrix": [5, 17], "x": 18, "y": 5} - ] + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5}, + {"matrix": [5, 15], "x": 16, "y": 5}, + {"matrix": [5, 16], "x": 17, "y": 5}, + {"matrix": [5, 17], "x": 18, "y": 5} + ] + } } - } } diff --git a/keyboards/xiudi/xd96/keymaps/default/keymap.c b/keyboards/xiudi/xd96/keymaps/default/keymap.c index 3d904759caa..d0cfbe23b16 100644 --- a/keyboards/xiudi/xd96/keymaps/default/keymap.c +++ b/keyboards/xiudi/xd96/keymaps/default/keymap.c @@ -4,35 +4,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_PMNS, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_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_P4, KC_P5, KC_P6, KC_PPLS, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_P1, KC_P2, KC_P3, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [0] = LAYOUT_96_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + 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_PMNS, + 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_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_P4, KC_P5, KC_P6, KC_PPLS, + 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_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_96_ansi( + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) - [1] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ) }; diff --git a/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c b/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c index 7c26664b0ec..a485d2f9ef4 100644 --- a/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c +++ b/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c @@ -4,35 +4,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_96_iso( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - 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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_PMNS, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_P7, KC_P8, KC_P9, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────├─────────├─────────├ ┤ */ - 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_P4, KC_P5, KC_P6, KC_PPLS, -/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_UP, KC_P1, KC_P2, KC_P3, -/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [0] = LAYOUT_96_iso( + 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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + 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_PMNS, + 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_P7, KC_P8, KC_P9, + 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_P4, KC_P5, KC_P6, KC_PPLS, + 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_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_96_iso( + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) - [1] = LAYOUT_96_iso( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ) }; diff --git a/keyboards/xiudi/xd96/keymaps/via/keymap.c b/keyboards/xiudi/xd96/keymaps/via/keymap.c index 8fdb8efe210..2d6524958dc 100644 --- a/keyboards/xiudi/xd96/keymaps/via/keymap.c +++ b/keyboards/xiudi/xd96/keymaps/via/keymap.c @@ -2,67 +2,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_PMNS, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_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_P4, KC_P5, KC_P6, KC_PPLS, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - 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_P1, KC_P2, KC_P3, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [0] = LAYOUT_96_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + 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_PMNS, + 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_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_P4, KC_P5, KC_P6, KC_PPLS, + 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_P1, KC_P2, KC_P3, + 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_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [1] = LAYOUT_96_ansi( + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), - [2] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [2] = LAYOUT_96_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_96_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), - [3] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), }; diff --git a/keyboards/xiudi/xd96/matrix_diagram.md b/keyboards/xiudi/xd96/matrix_diagram.md new file mode 100644 index 00000000000..ba4181b0c78 --- /dev/null +++ b/keyboards/xiudi/xd96/matrix_diagram.md @@ -0,0 +1,42 @@ +# Matrix Diagram for KPrepublic XD96 + +``` +Spaced Function Row ────────────────────────────────────────┐ +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ +│00 │ │01 │02 │03 │04 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ + ┌───────┐ ┌───────┐ + 2u Function Row Backspace │0D │ │0G │ + └───────┘ └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │56 │0E │0F │0G │0H │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ ┌───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │59 │1E │1F │1G │1H │ │1D │ 2u Backspace │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌─────┐ │1H │ ┌───┐ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │2F │2G │2H │ │2D │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┼───┼───┼───┤ ┌──┴─────┤ ┌──┴┐3D │ ├───┤ │2H │ 2u Numpad Plus +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │3F │3G │3H │ │3D │ │3C │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┼───┼───┼───┤ └────────┘ └───┴────┘ ┌───────┐ │3H │ ├───┤ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │4F │4G │4H │ ANSI ISO │4E │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┼───┼───┼───┤ Enter Enter └───────┘ └───┘ │4H │ 2u Numpad Enter +│50 │51 │52 │55 │5A │58 │5C │5D │5E │5F │5G │5H │ 2u Zero │ │ +└────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┴───┴───┴───┘ on Shift Row └───┘ +┌────────┐ ┌───┬──────────┬───────┐ +│40 │ 2.25u LShift 1u/2.75u RShift │4B │4D │5E │ 2u Numpad Zero +└────────┘ └───┴──────────┴───────┘ + ┌────┬────┬────┐ + 3x 1.25u RShift │4B │4C │4D │ + └────┴────┴────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│50 │51 │52 │55 │5A │58 │5C │5D │ ANSI +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐ +│50 │51 │52 │55 │5A │58 │5C │5D │ Tsangan +└─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┬───┬───┐ +│50 │51 │55 │5A │58 │5C │5D │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┴───┴───┘ + ┌───┬─────┬───────────────────────────┬─────┬───┐ + │51 │52 │55 │58 │5C │ HHKB + └───┴─────┴───────────────────────────┴─────┴───┘ +``` diff --git a/keyboards/xiudi/xd96/readme.md b/keyboards/xiudi/xd96/readme.md index 5f4038ef3fd..47a91c834d1 100644 --- a/keyboards/xiudi/xd96/readme.md +++ b/keyboards/xiudi/xd96/readme.md @@ -9,7 +9,7 @@ Keyboard with 96 Keys & RGB LED Underglow * Keyboard Maintainer: QMK Community * Hardware Supported: XD96 -* Hardware Availability: [KPrepublic](https://kprepublic.com/products/xd96-pcb-90-custom-mechanical-keyboard-supports-tkg-tools-underglow-rgb-programmed); [AliExpress](https://aliexpress.com/item/cospad-Custom-Mechanical-Keyboard-Kit-up-tp-24-keys-Supports-TKG-TOOLS-Underglow-RGB-PCB-20/32818383873.html) +* Hardware Availability: [KPrepublic](https://kprepublic.com/products/xd96-pcb-90-custom-mechanical-keyboard-supports-tkg-tools-underglow-rgb-programmed); [AliExpress](https://www.aliexpress.com/i/2251832661406145.html) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/zlabkeeb/6pad/info.json b/keyboards/zlabkeeb/6pad/info.json new file mode 100644 index 00000000000..cd37d4ca023 --- /dev/null +++ b/keyboards/zlabkeeb/6pad/info.json @@ -0,0 +1,65 @@ +{ + "keyboard_name": "ZLABKEEB 6PAD", + "manufacturer": "zlabkeeb", + "maintainer": "zlabkeeb", + "development_board": "promicro", + "features": { + "bootmagic": true, + "extrakey": true, + "encoder": true, + "mousekey": true, + "rgblight": true + }, + "build": { + "lto": true + }, + "url": "https://github.com/zlabkeeb", + "usb": { + "device_version": "1.0.0", + "vid": "0x4154", + "pid": "0x7A77" + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 4, + "max_brightness": 180, + "saturation_steps": 8, + "sleep": true + }, + "ws2812": { + "pin": "B6" + }, + "encoder": { + "rotary": [ + {"pin_a": "B4", "pin_b": "B5"} + ] + }, + "matrix_pins": { + "direct": [ + ["D1", "D0", "D4"], + ["C6", "D7", "E6"] + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 0, "y": 1, "matrix": [1, 0]}, + {"x": 1, "y": 1, "matrix": [1, 1]}, + {"x": 2, "y": 1, "matrix": [1, 2]} + ] + } + } +} diff --git a/keyboards/zlabkeeb/6pad/keymaps/default/keymap.c b/keyboards/zlabkeeb/6pad/keymaps/default/keymap.c new file mode 100644 index 00000000000..d0048cd88df --- /dev/null +++ b/keyboards/zlabkeeb/6pad/keymaps/default/keymap.c @@ -0,0 +1,50 @@ +/* +Copyright 2024 zlabkeeb (zlabkeeb@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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌─────────┌─────────┌─────────┐ + * │ 1 │ layer 1 │ 3 │ + * ├─────────┼─────────┼─────────| + * │ 4 │ 5 │ 6 | + * ├─────────┼─────────┼─────────┘ + */ + [0] = LAYOUT( + KC_1, TO(1), KC_2, + KC_3, KC_4, KC_5 + ), + /* + * ┌─────────┌─────────┌─────────┐ + * │ A │ layer O │ B │ + * ├─────────┼─────────┼─────────| + * │ C │ D │ E | + * ├─────────┼─────────┼─────────┘ + */ + [1] = LAYOUT( + KC_A, TO(0), KC_B, + KC_C, KC_D, KC_E + ) +}; + +#if defined (ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP)} +}; +#endif diff --git a/keyboards/zlabkeeb/6pad/keymaps/default/rules.mk b/keyboards/zlabkeeb/6pad/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/zlabkeeb/6pad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/zlabkeeb/6pad/keymaps/via/keymap.c b/keyboards/zlabkeeb/6pad/keymaps/via/keymap.c new file mode 100644 index 00000000000..d958bfb5bdf --- /dev/null +++ b/keyboards/zlabkeeb/6pad/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2024 zlabkeeb (zlabkeeb@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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌─────────┌─────────┌─────────┐ + * │ 1 │ 2 │ 3 │ + * ├─────────┼─────────┼─────────| + * │ 4 │ 5 │ 6 | + * ├─────────┼─────────┼─────────┘ + */ + [0] = LAYOUT( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6 + ) +}; + +#if defined (ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)} +}; +#endif diff --git a/keyboards/zlabkeeb/6pad/keymaps/via/rules.mk b/keyboards/zlabkeeb/6pad/keymaps/via/rules.mk new file mode 100644 index 00000000000..f1adcab005e --- /dev/null +++ b/keyboards/zlabkeeb/6pad/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/zlabkeeb/6pad/readme.md b/keyboards/zlabkeeb/6pad/readme.md new file mode 100644 index 00000000000..9470ee1d6d9 --- /dev/null +++ b/keyboards/zlabkeeb/6pad/readme.md @@ -0,0 +1,26 @@ +# 6PAD + +![6PAD](https://i.imgur.com/yt3dKCBh.jpeg) + +6PAD is a Simple Yet Elegant Macropad, 5 Keys & Single Rotary Encoder, Designed And Manufactured In INDONESIA. + +- Support RGB light UnderGlow +- Keyboard Maintainer: [zlabkeeb](https://github.com/zlabkeeb) +- Hardware Supported: 6Pad PCB, Promicro +- Hardware Availability: (INDONESIA Only) Will be available at [Tokopedia](https://www.tokopedia.com/zahranetid) + +Make example for this keyboard (after setting up your build environment): + + make zlabkeeb/6pad:default + +Flashing example for this keyboard: + + make zlabkeeb/6pad: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 1 way: + +- **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/zlabkeeb/6pad/rules.mk b/keyboards/zlabkeeb/6pad/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/zlabkeeb/6pad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py index ce956d0ce14..cb50acf8bb9 100644 --- a/lib/python/qmk/cli/new/keyboard.py +++ b/lib/python/qmk/cli/new/keyboard.py @@ -15,7 +15,7 @@ from qmk.json_schema import load_jsonschema from qmk.path import keyboard from qmk.json_encoders import InfoJSONEncoder from qmk.json_schema import deep_update, json_load -from qmk.constants import MCU2BOOTLOADER +from qmk.constants import MCU2BOOTLOADER, QMK_FIRMWARE COMMUNITY = Path('layouts/default/') TEMPLATE = Path('data/templates/keyboard/') @@ -254,6 +254,6 @@ def new_keyboard(cli): augment_community_info(community_info, keyboard(kb_name) / community_info.name) cli.log.info(f'{{fg_green}}Created a new keyboard called {{fg_cyan}}{kb_name}{{fg_green}}.{{fg_reset}}') - cli.log.info(f'To start working on things, `cd` into {{fg_cyan}}keyboards/{kb_name}{{fg_reset}},') - cli.log.info('or open the directory in your preferred text editor.') - cli.log.info(f"And build with {{fg_yellow}}qmk compile -kb {kb_name} -km default{{fg_reset}}.") + cli.log.info(f"Build Command: {{fg_yellow}}qmk compile -kb {kb_name} -km default{{fg_reset}}.") + cli.log.info(f'Project Location: {{fg_cyan}}{QMK_FIRMWARE}/{keyboard(kb_name)}{{fg_reset}},') + cli.log.info("{{fg_yellow}}Now update the config files to match the hardware!{{fg_reset}}") diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 13588abdb85..815b8514742 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -78,7 +78,7 @@ def _find_invalid_encoder_index(info_data): return ret -def _validate_layouts(keyboard, info_data): +def _validate_layouts(keyboard, info_data): # noqa C901 """Non schema checks """ col_num = info_data.get('matrix_size', {}).get('cols', 0) @@ -92,6 +92,11 @@ def _validate_layouts(keyboard, info_data): if len(layouts) == 0 or all(not layout.get('json_layout', False) for layout in layouts.values()): _log_error(info_data, 'No LAYOUTs defined! Need at least one layout defined in info.json.') + # Make sure all layouts are DD + for layout_name, layout_data in layouts.items(): + if layout_data.get('c_macro', False): + _log_error(info_data, f'{layout_name}: Layout macro should not be defined within ".h" files.') + # Make sure all matrix values are in bounds for layout_name, layout_data in layouts.items(): for index, key_data in enumerate(layout_data['layout']): diff --git a/lib/python/qmk/json_schema.py b/lib/python/qmk/json_schema.py index b00df749ccf..1d5f863807f 100644 --- a/lib/python/qmk/json_schema.py +++ b/lib/python/qmk/json_schema.py @@ -7,6 +7,7 @@ from collections.abc import Mapping from functools import lru_cache from typing import OrderedDict from pathlib import Path +from copy import deepcopy from milc import cli @@ -22,7 +23,8 @@ def _dict_raise_on_duplicates(ordered_pairs): return d -def json_load(json_file, strict=True): +@lru_cache(maxsize=20) +def _json_load_impl(json_file, strict=True): """Load a json file from disk. Note: file must be a Path object. @@ -42,7 +44,11 @@ def json_load(json_file, strict=True): exit(1) -@lru_cache(maxsize=0) +def json_load(json_file, strict=True): + return deepcopy(_json_load_impl(json_file=json_file, strict=strict)) + + +@lru_cache(maxsize=20) def load_jsonschema(schema_name): """Read a jsonschema file from disk. """ @@ -57,7 +63,7 @@ def load_jsonschema(schema_name): return json_load(schema_path) -@lru_cache(maxsize=0) +@lru_cache(maxsize=1) def compile_schema_store(): """Compile all our schemas into a schema store. """ @@ -73,7 +79,7 @@ def compile_schema_store(): return schema_store -@lru_cache(maxsize=0) +@lru_cache(maxsize=20) def create_validator(schema): """Creates a validator for the given schema id. """ diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py index 74364ee04b0..bb588d2e1c3 100644 --- a/lib/python/qmk/path.py +++ b/lib/python/qmk/path.py @@ -12,11 +12,19 @@ from qmk.errors import NoSuchKeyboardError def is_keyboard(keyboard_name): """Returns True if `keyboard_name` is a keyboard we can compile. """ - if keyboard_name: - keyboard_path = QMK_FIRMWARE / 'keyboards' / keyboard_name - rules_mk = keyboard_path / 'rules.mk' + if not keyboard_name: + return False + + # keyboard_name values of 'c:/something' or '/something' trigger append issues + # due to "If the argument is an absolute path, the previous path is ignored" + # however it should always be a folder located under qmk_firmware/keyboards + if Path(keyboard_name).is_absolute(): + return False + + keyboard_path = QMK_FIRMWARE / 'keyboards' / keyboard_name + rules_mk = keyboard_path / 'rules.mk' - return rules_mk.exists() + return rules_mk.exists() def under_qmk_firmware(path=Path(os.environ['ORIG_CWD'])): diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk index aef449cadf7..a625f2e5d01 100644 --- a/platforms/avr/platform.mk +++ b/platforms/avr/platform.mk @@ -201,17 +201,17 @@ else ifeq ($(strip $(BOOTLOADER)), qmk-hid) QMK_BOOTLOADER_TYPE = HID endif -bootloader: +bootloader: cpfirmware ifeq ($(strip $(QMK_BOOTLOADER_TYPE)),) $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,Please set BOOTLOADER to "qmk-dfu" or "qmk-hid" first!) else - make -C lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/ clean + make -C lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/ clean TARGET=Bootloader$(QMK_BOOTLOADER_TYPE) $(QMK_BIN) generate-dfu-header --quiet --keyboard $(KEYBOARD) --output lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/Keyboard.h $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) platforms/avr/bootloader_size.c 2> /dev/null | sed -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0)) $(eval PROGRAM_SIZE_KB=$(shell n=`expr $(MAX_SIZE) / 1024` && echo $$(($$n)) || echo 0)) $(eval BOOT_SECTION_SIZE_KB=$(shell n=`expr $(BOOTLOADER_SIZE) / 1024` && echo $$(($$n)) || echo 0)) $(eval FLASH_SIZE_KB=$(shell n=`expr $(PROGRAM_SIZE_KB) + $(BOOT_SECTION_SIZE_KB)` && echo $$(($$n)) || echo 0)) - make -C lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/ MCU=$(MCU) ARCH=$(ARCH) F_CPU=$(F_CPU) FLASH_SIZE_KB=$(FLASH_SIZE_KB) BOOT_SECTION_SIZE_KB=$(BOOT_SECTION_SIZE_KB) + make -C lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/ MCU=$(MCU) ARCH=$(ARCH) F_CPU=$(F_CPU) FLASH_SIZE_KB=$(FLASH_SIZE_KB) BOOT_SECTION_SIZE_KB=$(BOOT_SECTION_SIZE_KB) TARGET=Bootloader$(QMK_BOOTLOADER_TYPE) printf "Bootloader$(QMK_BOOTLOADER_TYPE).hex copied to $(TARGET)_bootloader.hex\n" cp lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/Bootloader$(QMK_BOOTLOADER_TYPE).hex $(TARGET)_bootloader.hex endif diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 759ac6943ba..8f46fe07360 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -108,6 +108,11 @@ # if defined(STM32F1XX) || defined(STM32F2XX) || defined(STM32F4XX) || defined(STM32L1XX) # define USE_I2CV1 # endif + +# if defined(STM32G0XX) || defined(STM32G4XX) || defined(STM32L5XX) || defined(STM32H7XX) +# define USE_USARTV3 +# endif + #endif // GD32 compatibility diff --git a/platforms/chibios/drivers/uart_sio.c b/platforms/chibios/drivers/uart_sio.c index ebf51ae5a81..442df1c54d8 100644 --- a/platforms/chibios/drivers/uart_sio.c +++ b/platforms/chibios/drivers/uart_sio.c @@ -16,7 +16,7 @@ static SIOConfig sioConfig = { #else static SIOConfig sioConfig = { .baud = SIO_DEFAULT_BITRATE, -# if defined(MCU_STM32) && defined(CHIBIOS_HAL_USARTv3) +# if defined(MCU_STM32) && defined(USE_USARTV3) .presc = USART_PRESC1, # endif .cr1 = UART_CR1, diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index a2178412f3f..b13eed39be8 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -329,17 +329,6 @@ ifeq ($(strip $(USE_CHIBIOS_CONTRIB)),yes) EXTRAINCDIRS += $(PLATFORMINC_CONTRIB) $(HALINC_CONTRIB) $(CHIBIOS_CONTRIB)/os/various endif -# -# Extract supported HAL drivers -############################################################################## - -define add_lld_driver_define - $(eval driver := $(word 2,$(subst /LLD/, ,$(1)))) - $(eval OPT_DEFS += -DCHIBIOS_HAL_$(driver)) -endef - -$(foreach dir,$(EXTRAINCDIRS),$(if $(findstring /LLD/,$(dir)),$(call add_lld_driver_define,$(dir)))) - # # Project, sources and paths ############################################################################## @@ -413,6 +402,17 @@ ifeq ($(strip $(MCU)), risc-v) -mabi=$(MCU_ABI) \ -mcmodel=$(MCU_CMODEL) \ -mstrict-align + + # Deal with different arch revisions and gcc renaming them + ifneq ($(shell echo 'int main() { asm("csrc 0x300,8"); return 0; }' | $(TOOLCHAIN)gcc $(MCUFLAGS) $(TOOLCHAIN_CFLAGS) -x c -o /dev/null - 2>/dev/null >/dev/null; echo $$?),0) + MCUFLAGS = -march=$(MCU_ARCH)_zicsr \ + -mabi=$(MCU_ABI) \ + -mcmodel=$(MCU_CMODEL) \ + -mstrict-align + ifneq ($(shell echo 'int main() { asm("csrc 0x300,8"); return 0; }' | $(TOOLCHAIN)gcc $(MCUFLAGS) $(TOOLCHAIN_CFLAGS) -x c -o /dev/null - 2>/dev/null >/dev/null; echo $$?),0) + $(call CATASTROPHIC_ERROR,Incompatible toolchain,No compatible RISC-V toolchain found. Can't work out correct architecture.) + endif + endif else # ARM toolchain specific configuration TOOLCHAIN ?= arm-none-eabi- diff --git a/quantum/encoder.c b/quantum/encoder.c index 735eb1cd71f..0a48ac9a07b 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -15,34 +15,39 @@ __attribute__((weak)) bool should_process_encoder(void) { } static encoder_events_t encoder_events; +static bool signal_queue_drain = false; void encoder_init(void) { memset(&encoder_events, 0, sizeof(encoder_events)); encoder_driver_init(); } -static bool encoder_handle_queue(void) { - bool changed = false; - while (encoder_events.tail != encoder_events.head) { - encoder_event_t event = encoder_events.queue[encoder_events.tail]; - encoder_events.tail = (encoder_events.tail + 1) % MAX_QUEUED_ENCODER_EVENTS; +static void encoder_queue_drain(void) { + encoder_events.tail = encoder_events.head; + encoder_events.dequeued = encoder_events.enqueued; +} +static bool encoder_handle_queue(void) { + bool changed = false; + uint8_t index; + bool clockwise; + while (encoder_dequeue_event(&index, &clockwise)) { #ifdef ENCODER_MAP_ENABLE // The delays below cater for Windows and its wonderful requirements. - action_exec(event.clockwise ? MAKE_ENCODER_CW_EVENT(event.index, true) : MAKE_ENCODER_CCW_EVENT(event.index, true)); + action_exec(clockwise ? MAKE_ENCODER_CW_EVENT(index, true) : MAKE_ENCODER_CCW_EVENT(index, true)); # if ENCODER_MAP_KEY_DELAY > 0 wait_ms(ENCODER_MAP_KEY_DELAY); # endif // ENCODER_MAP_KEY_DELAY > 0 - action_exec(event.clockwise ? MAKE_ENCODER_CW_EVENT(event.index, false) : MAKE_ENCODER_CCW_EVENT(event.index, false)); + action_exec(clockwise ? MAKE_ENCODER_CW_EVENT(index, false) : MAKE_ENCODER_CCW_EVENT(index, false)); # if ENCODER_MAP_KEY_DELAY > 0 wait_ms(ENCODER_MAP_KEY_DELAY); # endif // ENCODER_MAP_KEY_DELAY > 0 #else // ENCODER_MAP_ENABLE - encoder_update_kb(event.index, event.clockwise ? true : false); + encoder_update_kb(index, clockwise); #endif // ENCODER_MAP_ENABLE @@ -61,6 +66,11 @@ bool encoder_task(void) { } #endif // SPLIT_KEYBOARD + if (signal_queue_drain) { + signal_queue_drain = false; + encoder_queue_drain(); + } + // Let the encoder driver produce events encoder_driver_task(); @@ -72,39 +82,71 @@ bool encoder_task(void) { return changed; } -bool encoder_queue_event(uint8_t index, bool clockwise) { +bool encoder_queue_full_advanced(encoder_events_t *events) { + return events->head == (events->tail - 1) % MAX_QUEUED_ENCODER_EVENTS; +} + +bool encoder_queue_full(void) { + return encoder_queue_full_advanced(&encoder_events); +} + +bool encoder_queue_empty_advanced(encoder_events_t *events) { + return events->head == events->tail; +} + +bool encoder_queue_empty(void) { + return encoder_queue_empty_advanced(&encoder_events); +} + +bool encoder_queue_event_advanced(encoder_events_t *events, uint8_t index, bool clockwise) { // Drop out if we're full - if ((encoder_events.head + 1) % MAX_QUEUED_ENCODER_EVENTS == encoder_events.tail) { + if (encoder_queue_full_advanced(events)) { return false; } // Append the event - encoder_event_t new_event = {.index = index, .clockwise = clockwise ? 1 : 0}; - encoder_events.queue[encoder_events.head] = new_event; + encoder_event_t new_event = {.index = index, .clockwise = clockwise ? 1 : 0}; + events->queue[events->head] = new_event; // Increment the head index - encoder_events.head = (encoder_events.head + 1) % MAX_QUEUED_ENCODER_EVENTS; + events->head = (events->head + 1) % MAX_QUEUED_ENCODER_EVENTS; + events->enqueued++; return true; } -void encoder_retrieve_events(encoder_events_t *events) { - memcpy(events, &encoder_events, sizeof(encoder_events)); +bool encoder_dequeue_event_advanced(encoder_events_t *events, uint8_t *index, bool *clockwise) { + if (encoder_queue_empty_advanced(events)) { + return false; + } + + // Retrieve the event + encoder_event_t event = events->queue[events->tail]; + *index = event.index; + *clockwise = event.clockwise; + + // Increment the tail index + events->tail = (events->tail + 1) % MAX_QUEUED_ENCODER_EVENTS; + events->dequeued++; + + return true; } -#ifdef SPLIT_KEYBOARD -void encoder_set_tail_index(uint8_t tail_index) { - encoder_events.tail = tail_index; +bool encoder_queue_event(uint8_t index, bool clockwise) { + return encoder_queue_event_advanced(&encoder_events, index, clockwise); } -void encoder_handle_slave_events(encoder_events_t *events) { - while (events->tail != events->head) { - encoder_event_t event = events->queue[events->tail]; - events->tail = (events->tail + 1) % MAX_QUEUED_ENCODER_EVENTS; - encoder_queue_event(event.index, event.clockwise ? true : false); - } +bool encoder_dequeue_event(uint8_t *index, bool *clockwise) { + return encoder_dequeue_event_advanced(&encoder_events, index, clockwise); +} + +void encoder_retrieve_events(encoder_events_t *events) { + memcpy(events, &encoder_events, sizeof(encoder_events)); +} + +void encoder_signal_queue_drain(void) { + signal_queue_drain = true; } -#endif // SPLIT_KEYBOARD __attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return true; diff --git a/quantum/encoder.h b/quantum/encoder.h index 90414a43a06..317a91f1da5 100644 --- a/quantum/encoder.h +++ b/quantum/encoder.h @@ -29,6 +29,7 @@ __attribute__((weak)) bool should_process_encoder(void); void encoder_init(void); bool encoder_task(void); bool encoder_queue_event(uint8_t index, bool clockwise); +bool encoder_dequeue_event(uint8_t *index, bool *clockwise); bool encoder_update_kb(uint8_t index, bool clockwise); bool encoder_update_user(uint8_t index, bool clockwise); @@ -82,6 +83,8 @@ typedef struct encoder_event_t { } encoder_event_t; typedef struct encoder_events_t { + uint8_t enqueued; + uint8_t dequeued; uint8_t head; uint8_t tail; encoder_event_t queue[MAX_QUEUED_ENCODER_EVENTS]; @@ -90,10 +93,12 @@ typedef struct encoder_events_t { // Get the current queued events void encoder_retrieve_events(encoder_events_t *events); -# ifdef SPLIT_KEYBOARD -void encoder_set_tail_index(uint8_t tail_index); -void encoder_handle_slave_events(encoder_events_t *events); -# endif // SPLIT_KEYBOARD +// Encoder event queue management +bool encoder_queue_event_advanced(encoder_events_t *events, uint8_t index, bool clockwise); +bool encoder_dequeue_event_advanced(encoder_events_t *events, uint8_t *index, bool *clockwise); + +// Reset the queue to be empty +void encoder_signal_queue_drain(void); # ifdef ENCODER_MAP_ENABLE # define NUM_DIRECTIONS 2 diff --git a/quantum/split_common/transaction_id_define.h b/quantum/split_common/transaction_id_define.h index 05b3bf7b625..5bfbe2aec79 100644 --- a/quantum/split_common/transaction_id_define.h +++ b/quantum/split_common/transaction_id_define.h @@ -31,7 +31,7 @@ enum serial_transaction_id { #ifdef ENCODER_ENABLE GET_ENCODERS_CHECKSUM, GET_ENCODERS_DATA, - PUT_ENCODER_TAIL, + CMD_ENCODER_DRAIN, #endif // ENCODER_ENABLE #ifndef DISABLE_SYNC_TIMER diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index 2cfa83e7a3f..33bc9e9f575 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -14,6 +14,7 @@ * along with this program. If not, see . */ +#include #include #include @@ -80,8 +81,12 @@ { 0, 0, sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), cb } #define trans_target2initiator_initializer(member) trans_target2initiator_initializer_cb(member, NULL) +#define trans_initiator2target_cb(cb) \ + { 0, 0, 0, 0, cb } + #define transport_write(id, data, length) transport_execute_transaction(id, data, length, NULL, 0) #define transport_read(id, data, length) transport_execute_transaction(id, NULL, 0, data, length) +#define transport_exec(id) transport_execute_transaction(id, NULL, 0, NULL, 0) #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) // Forward-declare the RPC callback handlers @@ -234,14 +239,26 @@ static void master_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_ro #ifdef ENCODER_ENABLE static bool encoder_handlers_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { - static uint32_t last_update = 0; + static uint32_t last_update = 0; + static uint8_t last_checksum = 0; encoder_events_t temp_events; bool okay = read_if_checksum_mismatch(GET_ENCODERS_CHECKSUM, GET_ENCODERS_DATA, &last_update, &temp_events, &split_shmem->encoders.events, sizeof(temp_events)); if (okay) { - encoder_handle_slave_events(&split_shmem->encoders.events); - transport_write(PUT_ENCODER_TAIL, &split_shmem->encoders.events.tail, sizeof(split_shmem->encoders.events.tail)); - split_shmem->encoders.checksum = crc8(&split_shmem->encoders.events, sizeof(split_shmem->encoders.events)); + if (last_checksum != split_shmem->encoders.checksum) { + bool actioned = false; + uint8_t index; + bool clockwise; + while (okay && encoder_dequeue_event_advanced(&split_shmem->encoders.events, &index, &clockwise)) { + okay &= encoder_queue_event(index, clockwise); + actioned = true; + } + + if (actioned) { + okay &= transport_exec(CMD_ENCODER_DRAIN); + } + last_checksum = split_shmem->encoders.checksum; + } } return okay; } @@ -253,9 +270,8 @@ static void encoder_handlers_slave(matrix_row_t master_matrix[], matrix_row_t sl split_shmem->encoders.checksum = crc8(&split_shmem->encoders.events, sizeof(split_shmem->encoders.events)); } -static void encoder_handlers_slave_reset(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { - uint8_t tail_index = *(uint8_t *)initiator2target_buffer; - encoder_set_tail_index(tail_index); +static void encoder_handlers_slave_drain(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + encoder_signal_queue_drain(); } // clang-format off @@ -264,7 +280,7 @@ static void encoder_handlers_slave_reset(uint8_t initiator2target_buffer_size, c # define TRANSACTIONS_ENCODERS_REGISTRATIONS \ [GET_ENCODERS_CHECKSUM] = trans_target2initiator_initializer(encoders.checksum), \ [GET_ENCODERS_DATA] = trans_target2initiator_initializer(encoders.events), \ - [PUT_ENCODER_TAIL] = trans_initiator2target_initializer_cb(encoders.events.tail, encoder_handlers_slave_reset), + [CMD_ENCODER_DRAIN] = trans_initiator2target_cb(encoder_handlers_slave_drain), // clang-format on #else // ENCODER_ENABLE